deytenit
984dd04fe1
ci: streamline docs workflows, migrate scripts to ci/scripts and update www image
services/docs - next/required / Setup - Hugo (push) Failing after 0s
services/docs - next/required / Build - Hugo Site (push) Skipped
services/docs - next/required / Release - Docker Image (push) Skipped
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Skipped
services/docs - next/required / Verify - Production Rollout (push) Skipped
services/static - next/required / Setup - Stage (push) Successful in 42s
services/www - next/required / Setup - Stage (push) Successful in 41s
services/static - next/required / Build - Configs (push) Successful in 24s
services/www - next/required / Build - Configs (push) Successful in 26s
services/static - next/required / Typecheck - Static (push) Successful in 21s
services/static - next/required / Build - Static Site (push) Successful in 23s
services/www - next/required / Typecheck - WWW (push) Successful in 21s
services/www - next/required / Build - Storybook (push) Successful in 27s
services/static - next/required / Lint - Static (push) Successful in 23s
services/www - next/required / Lint - WWW (push) Successful in 26s
services/www - next/required / Test - Unit (push) Successful in 21s
services/static - next/required / Deploy - S3 (push) Canceled after 0s
services/www - next/required / Test - Storybook (push) Canceled after 0s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
services/www - next/required / Build - WWW Service (push) Canceled after 35s
2026-11-08 01:21:48 +03:00
Codex
dc0793cc7b
fix: use upstream third-party container images [skip ci]
2026-11-06 09:22:54 +03:00
Codex
7cae60bbe6
ci: migrate workflows and dependencies to Gitea
2026-11-05 23:02:12 +03:00
adam-at-deytenit
c9e26c5600
chore(release): deploy www sha-84772ff [skip ci]
2026-11-01 18:21:05 +00:00
adam-at-deytenit
594637b2b5
chore(release): deploy docs sha-84772ff [skip ci]
2026-11-01 18:16:37 +00:00
deytenit
84772ffdd6
fix(analytics): serve umami via /trace/trace.js and add privacy policy with opt-out switch ( #71 )
2026-11-01 21:15:39 +03:00
adam-at-deytenit
bdd9fc4602
chore(release): deploy www sha-9200529 [skip ci]
2026-10-29 21:15:44 +00:00
adam-at-deytenit
d8b20fd513
chore(release): deploy docs sha-9200529 [skip ci]
2026-10-29 21:06:42 +00:00
adam-at-deytenit
649d6c3fd0
chore(release): deploy docs sha-0e77ea1 [skip ci]
2026-10-26 11:22:28 +00:00
adam-at-deytenit
47c70471e1
chore(release): deploy www sha-24f3311 [skip ci]
2026-10-25 18:22:13 +00:00
adam-at-deytenit
9a175925b6
chore(release): deploy www sha-b3638f4 [skip ci]
2026-10-25 12:27:46 +00:00
adam-at-deytenit
716cc5f6f1
chore(release): deploy docs sha-b3638f4 [skip ci]
2026-10-25 12:22:10 +00:00
adam-at-deytenit
cc7f09fa22
chore(release): deploy www sha-968f41d [skip ci]
2026-10-24 17:57:44 +00:00
adam-at-deytenit
c1a17a262a
chore(release): deploy www sha-fcf6895 [skip ci]
2026-10-24 15:08:51 +00:00
adam-at-deytenit
3444265473
chore(release): deploy docs sha-fcf6895 [skip ci]
2026-10-24 15:00:21 +00:00
adam-at-deytenit
5bd12dab15
chore(release): deploy www sha-9ee6725 [skip ci]
2026-10-24 14:25:55 +00:00
adam-at-deytenit
7472b2c761
chore(release): deploy docs sha-9ee6725 [skip ci]
2026-10-24 13:53:49 +00:00
deytenit
9ee672504f
fix: PageHead header alignment, analytics proxy, and infra improvements ( #64 )
...
🤖 Pull request created from `various-fixes` containing PageHead
breadcrumbs and navigation alignment fixes, Umami analytics proxy, and
infrastructure updates.
2026-10-24 16:52:49 +03:00
adam-at-deytenit
68dcfc303c
chore(release): deploy www sha-2bf21cd [skip ci]
2026-09-18 18:15:32 +00:00
adam-at-deytenit
115c077439
chore(release): deploy docs sha-4e4cac0 [skip ci]
2026-08-29 21:27:27 +00:00
adam-at-deytenit
49d7d58635
chore(release): deploy www sha-a60b095 [skip ci]
2026-08-23 17:56:15 +00:00
adam-at-deytenit
a5b71bbb5c
chore(release): deploy docs sha-ea805c7 [skip ci]
2026-08-23 17:29:28 +00:00
deytenit
c8beec4d47
chore(gitops): clean up kustomization formatting and set-image syntax ( #48 )
...
Clean up Kustomize formatting in docs application and set-image syntax
in deploy-gitops.sh
2026-08-23 19:31:25 +03:00
adam-at-deytenit
a31f75fb98
chore(release): deploy docs sha-7181cdd [skip ci]
2026-08-23 16:09:25 +00:00
deytenit
6037a558dd
fix(sops): set encrypted_regex to data/stringData and configure DNS fallback resolvers ( #33 )
...
### Summary of Changes
1. **SOPS Secret Encryption Scope**:
- Configured `encrypted_regex: '^(data|stringData)$'` in `.sops.yaml`.
- Re-encrypted PostgreSQL and Umami secrets so `apiVersion`, `kind`, and
`metadata.name` remain in clean plaintext.
- Prevents Kustomize controller panic on encrypted metadata during Flux
GitOps reconciliation.
2. **Reliable DNS Fallback**:
- Added standard fallback DNS resolvers (`1.1.1.1`, `8.8.8.8`,
`77.88.8.8`) to `03-cleanup.sh` and `bootstrap-cluster.sh`.
2026-08-23 16:27:25 +03:00
deytenit
502ef94bb2
feat(infra): update SOPS configuration, cloud-init templates, and secondary disk automation ( #26 )
...
### Summary of Changes
This PR incorporates the final infrastructure optimizations following
the initial merge of PR #25 :
1. **SOPS & Secrets Management**:
- Generated dedicated Age keypair
(`age1jpa7hqyzzdfq7lvnw3l8qy6648mtjgpcqnljl5jz92dcqjrnsqfsn7m0fl`) and
updated `.sops.yaml`.
- Added SOPS-encrypted production secrets for PostgreSQL
(`ci/k8s/apps/postgres/secret.sops.yaml`) and Umami Analytics
(`ci/k8s/apps/umami/secret.sops.yaml`).
- Verified 100% clean round-trip decryption.
2. **Cloud-Init Template & Git Safety**:
- Converted `user-data.yaml` into `user-data.template.yaml` with clear
stubs for public SSH keys and private Age keys.
- Added `ci/cloud-init/user-data.yaml` to `.gitignore` to prevent
accidental secret leaks.
3. **Persistent Secondary Storage**:
- Added automated detection, ext4 formatting, and mounting of secondary
persistent disk (`/dev/vdb`) to `/var/lib/rancher/k3s/storage` with
`noatime` in `user-data.template.yaml`.
4. **Golden Image Naming & Workflows**:
- Updated image naming convention to include hyphenated UTC timestamps:
`com-ermnvldmr-debian-12-k3s-amd64-YYYY-MM-DD-HH-MM-SS-sha-<short_sha>.qcow2`.
- Verified successful CI golden image build and S3 upload.
2026-08-23 14:02:08 +03:00
deytenit
710873e72c
feat(infra): add K3s GitOps infrastructure and Packer golden image build ( #25 )
...
### Summary of Changes
This PR introduces a declarative, GitOps-managed cloud infrastructure
for the monorepo using K3s, Flux v2, and HashiCorp Packer:
1. **Packer Golden Image Builder (`ci/packer/`)**:
- Automated Debian 12 minimal base OS image creation using QEMU builder,
UEFI firmware, GPT partition scheme, and 2M cluster size `.qcow2`
conversion.
- Cloud-init, `virtio` kernel drivers, and serial console (`ttyS0`,
115200 baud).
- Pre-installed K3s binary (`v1.31.2+k3s1`) with isolated first-boot
token and cert generation.
- Full identity sanitization (`machine-id` and SSH host key resets).
2. **First-Boot Cloud-Init Bootstrapping
(`ci/cloud-init/user-data.yaml`)**:
- Configures K3s with `servicelb` disabled and TLS SANs for custom
domains and static IP.
- Waits for API readiness, initializes `flux-system` namespace, injects
`sops-age` secret, and triggers Flux sync.
3. **SOPS & GitOps Root Orchestration (`.sops.yaml`,
`ci/k8s/clusters/production/`)**:
- SOPS encryption configuration targeting Kubernetes secrets with `age`
key recipient.
- Flux v2 `GitRepository` and `Kustomization` manifests tracking `next`.
4. **Infrastructure & Networking (`ci/k8s/base/`,
`ci/k8s/infrastructure/`)**:
- Dedicated `com-ermnvldmr` namespace.
- `cert-manager` HTTP-01 `ClusterIssuer` (`letsencrypt-prod` &
`letsencrypt-staging`).
- Traefik Ingress routing for `ermnvldmr.com`, `www.ermnvldmr.com`,
`docs.ermnvldmr.com`, and `analytics.ermnvldmr.com`.
5. **PostgreSQL & Applications (`ci/k8s/apps/`)**:
- PostgreSQL 16 StatefulSet on 5Gi `local-path` persistent storage with
low-memory tuning.
- Deployments for `www` (pinned `sha-6d33b71`), `docs` (pinned
`sha-91f5245`), and `umami` (pinned `postgresql-v2.14.0`) with
zero-downtime rolling update strategy.
6. **CI/CD Workflows (`.github/workflows/`)**:
- `ci - next/build-golden-image`: Workflow to build and upload
`com-ermnvldmr-debian-12-k3s-amd64-<tag>.qcow2` to static S3
`/dev/images/`.
- Updated `services-www-releases-dispatch-release.yml` and
`services-docs-next-required.yml` with GitOps deployment steps.
2026-08-23 02:11:54 +03:00