Commit Graph
279 Commits
Author SHA1 Message Date
Gitea CI e919887507 ci: update polymarket-bot images to eb4f6741 [skip ci] 2026-07-02 12:16:24 +00:00
Gitea CI 0b01cab53d ci: update polymarket-bot images to 117d2b33 [skip ci] 2026-07-02 07:17:48 +00:00
chemavxandClaude Opus 4.8 71c552f3d5 chore(n8n): remove vestigial ignoreDifferences (secret now Infisical-managed)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 08:01:51 +00:00
chemavxandClaude Opus 4.8 9bcb84ebc8 fix(cloudflare-ddns): add theexclusionzone.com zone with per-domain PROXIED
The theexclusionzone.com (Ghost EN) zone was never in DOMAINS, so favonia
never updated its origin A records. When the ISP rotated the public IP, the
EN records went stale and Cloudflare returned 522 (apex+www are proxied).

Add all three EN records to DOMAINS and use favonia 1.16.2's per-domain
PROXIED expression so apex+www stay orange while the wildcard and the
chemavx/zona zones stay grey, all from one DDNS instance.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 07:01:23 +00:00
Gitea CI 4d8585ddb1 ci: update researchowl image to b1c5bc73 [skip ci] 2026-06-27 10:18:50 +00:00
Gitea CI 319c685040 ci: update researchowl image to c0b0c1ba [skip ci] 2026-06-26 21:02:32 +00:00
Gitea CI 002e05969c ci: update polymarket-bot images to 9e21ecac [skip ci] 2026-06-26 15:15:57 +00:00
Gitea CI 303c0876cf ci: update polymarket-bot images to af0d1fbc [skip ci] 2026-06-26 08:09:30 +00:00
Gitea CI ce3545084d ci: update researchowl image to 72766229 [skip ci] 2026-06-26 06:13:04 +00:00
chemavx c7e8e28abd feat(researchowl): enable SEO autofill (SEO_AUTOFILL=on)
Activates the autofill publish path in production. Drafts now get
meta/OG/Twitter/tags/internal-links best-effort; status stays draft.
2026-06-25 15:02:29 +00:00
Gitea CI 77c07a9b5d ci: update researchowl image to 6d39875f [skip ci] 2026-06-25 14:49:40 +00:00
Gitea CI 9507b4b566 ci: update researchowl image to 7a995da8 [skip ci] 2026-06-25 14:14:56 +00:00
Gitea CI 43b8fa9b1a ci: update researchowl image to b6dc5192 [skip ci] 2026-06-24 07:46:25 +00:00
chemavxandClaude Opus 4.8 48ed88cc8d zona-exclusion: serve www + 301 redirect to apex, add www to TLS SAN
Adds www.zonadeexclusion.com to the Ingress (rules + tls hosts) so cert-manager
re-issues zona-exclusion-tls covering apex + www via HTTP-01, and a Traefik
redirectRegex Middleware that 301s www -> apex (ES canonical = apex). Mirrors the
EN redirect-to-www-https middleware, inverted. DNS for www was fixed in Phase 1
(stale explicit A removed; now resolves via the favonia wildcard).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 06:55:56 +00:00
chemavxandClaude Opus 4.8 81745dee4b n8n: decommission old n8n-secret (remove empty stub + ignoreDifferences)
3c: n8n now sources the encryption key from n8n-secret-infisical (Infisical).
Remove the empty CreateOnly stub manifest and the now-dead ignoreDifferences
/data stanza so ArgoCD prunes the old out-of-band n8n-secret.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:35:46 +00:00
chemavxandClaude Opus 4.8 77f55fb100 n8n: repoint encryption-key secretKeyRef to n8n-secret-infisical + Recreate
Cut n8n over to the Infisical-synced encryption key (byte-identical, key never
changes -> credentials stay decryptable) and switch RollingUpdate -> Recreate
(485MB SQLite + WAL on RWO must not have two writers during a roll).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:31:10 +00:00
chemavxandClaude Opus 4.8 5c7323c533 n8n: add InfisicalStaticSecret for n8n-secret (centralize N8N_ENCRYPTION_KEY)
Out-of-band Secret -> Infisical homelab/prod /n8n. Parallel-name target
n8n-secret-infisical (Owner), passthrough of the single key encryption-key
(n8n's irrecoverable credentials-encryption root, lifted byte-identical).
Old secret stays live until decommission. ArgoCD-managed -> git->sync.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:30:28 +00:00
chemavxandClaude Opus 4.8 88cab601b2 authentik: repoint server+worker secretKeyRefs to authentik-secrets-infisical
Both AUTHENTIK_SECRET_KEY and AUTHENTIK_POSTGRESQL__PASSWORD (env) -> key
POSTGRES_PASSWORD now sourced from the Infisical-synced secret. Stateless re: DB
(media PVC only), DB-retry logic -> stay RollingUpdate, no Recreate flip.
Applied via kubectl (not ArgoCD-managed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:16:24 +00:00
chemavxandClaude Opus 4.8 77b0b2385d authentik: repoint postgres sts POSTGRES_PASSWORD to authentik-secrets-infisical
Postgres-first cutover step. Already-initialized PG17 ignores POSTGRES_PASSWORD
on restart (role pw in pg_authid), so this byte-identical roll is benign.
StatefulSet RollingUpdate is ordered terminate-then-create (no two-postmaster
surge), so no Recreate flip. Applied via kubectl (not ArgoCD-managed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:14:52 +00:00
chemavxandClaude Opus 4.8 26871ef0c3 authentik: add InfisicalStaticSecret for authentik-secrets (centralize SSO secret)
Out-of-band Secret -> Infisical homelab/prod /authentik. Parallel-name target
authentik-secrets-infisical (Owner), passthrough of the 2 LIVE keys
(AUTHENTIK_SECRET_KEY, POSTGRES_PASSWORD). The dead orphan key
AUTHENTIK_POSTGRESQL__PASSWORD is intentionally dropped. Old secret stays live
until decommission. Applied via kubectl (not ArgoCD-managed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 11:14:18 +00:00
chemavxandClaude Opus 4.8 74c00cc7b7 vaultwarden: repoint envFrom to vaultwarden-secret-infisical + Recreate strategy
Cut the Deployment over to the Infisical-synced Secret and switch to Recreate
(SQLite/WAL on a RWO PVC must not have two writers during a roll). Applied via
kubectl (not ArgoCD-managed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 10:57:13 +00:00
chemavxandClaude Opus 4.8 f87f03d542 vaultwarden: add InfisicalStaticSecret for vaultwarden-secret (centralize ADMIN_TOKEN/DOMAIN/SIGNUPS_ALLOWED)
Out-of-band Secret -> Infisical homelab/prod /vaultwarden. Parallel-name
target vaultwarden-secret-infisical (Owner), passthrough. Old vaultwarden-secret
stays live until decommission. Applied via kubectl (not ArgoCD-managed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 10:56:13 +00:00
chemavxandClaude Opus 4.8 184c5f4815 umami: drop dead umami-secrets ignoreDifferences stanza (3c)
Old out-of-band umami-secrets deleted (kubectl); the /data ignoreDifferences
stanza referencing it is now dead. Removed from both the registered app
manifest and the in-dir duplicate. umami-secrets-infisical is Owner-managed
by the operator, not a git-tracked Secret, so no ignore rule is needed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:58:20 +00:00
chemavxandClaude Opus 4.8 b566fe3d96 umami: repoint umami app to Infisical secret (3b-ii)
DATABASE_URL + APP_SECRET now reference umami-secrets-infisical. Postgres
(3b-i) already healthy on the same secret; umami's wait-for-postgres
initContainer enforces ordering. Old umami-secrets stays live until 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:56:37 +00:00
chemavxandClaude Opus 4.8 9e2971f1bc umami: repoint postgres to Infisical secret + flip to Recreate (3b-i)
POSTGRES_PASSWORD now references umami-secrets-infisical. Adds strategy:
Recreate (single-replica RWO PVC — avoids two postmasters racing PGDATA
during a roll), permanent. Data dir already initialized, so the
byte-identical POSTGRES_PASSWORD is never re-applied on restart (benign).
umami still on old umami-secrets (both live in parallel = zero gap).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:55:59 +00:00
chemavxandClaude Opus 4.8 a86934c264 umami: add Infisical StaticSecret (/umami passthrough, parallel name)
3a of the umami-secrets centralization. Adds umami-secrets-infisical synced
from homelab/prod /umami (3 lowercase-hyphenated keys, passthrough).
Parallel name — old out-of-band umami-secrets stays live until 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:55:11 +00:00
chemavxandClaude Opus 4.8 384c3e4542 researchowl: repoint to Infisical secret + flip to Recreate
3b of the centralization. All 5 secretKeyRefs now reference
researchowl-secrets-infisical (synced from /researchowl). Also adds
strategy: Recreate (single-replica RWO SQLite/WAL — avoids two pods
briefly sharing /data/researchowl.db during a roll), permanent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:40:21 +00:00
chemavxandClaude Opus 4.8 428f708fe2 researchowl: add Infisical StaticSecret (/researchowl passthrough, parallel name)
3a of the researchowl-secrets centralization. Adds researchowl-secrets-infisical
synced from homelab/prod /researchowl (5 lowercase-hyphenated keys, passthrough).
Parallel name — old out-of-band researchowl-secrets stays live until 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 06:38:59 +00:00
chemavxandClaude Opus 4.8 1dbedead2f zona-exclusion: drop dead zona-exclusion-secrets ignoreDifferences (3c)
Old out-of-band zona-exclusion-secrets deleted (kubectl); SMTP now sourced from
Infisical-backed zona-exclusion-secrets-infisical. Remove the obsolete /data
ignoreDifferences stanza from both app manifests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:12:57 +00:00
chemavxandClaude Opus 4.8 fd207da3cc zona-exclusion: repoint SMTP to Infisical secret + Recreate strategy (3b)
- mail__options__auth__user/pass secretKeyRef
    zona-exclusion-secrets -> zona-exclusion-secrets-infisical (remapped keys)
- strategy RollingUpdate -> Recreate (single-replica RWO SQLite Ghost; avoids
    two-pods-on-one-ghost.db overlap during rolls)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:11:34 +00:00
chemavxandClaude Opus 4.8 6043e7d66c zona-exclusion: stage Infisical-backed SMTP secret with key remap (3a)
InfisicalStaticSecret syncs shared /smtp-gmail -> zona-exclusion-secrets-infisical,
template-remapping UPPER_SNAKE -> hyphenated lowercase smtp-user/smtp-pass to match
the deployment secretKeyRef. Old secret stays live until 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:10:48 +00:00
chemavxandClaude Opus 4.8 dd28956d76 ghost-en: drop dead ghost-en-smtp ignoreDifferences (3c)
Old out-of-band ghost-en-smtp secret deleted (kubectl); SMTP now sourced from
Infisical-backed ghost-en-smtp-infisical. Remove the now-obsolete /data
ignoreDifferences stanza from both app manifests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:09:15 +00:00
chemavxandClaude Opus 4.8 bafbdc8a3b ghost-en: repoint SMTP to Infisical-backed secret (3b)
mail__options__auth__user/pass secretKeyRef
  ghost-en-smtp -> ghost-en-smtp-infisical
Recreate roll picks up the Infisical-synced credentials.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:06:41 +00:00
chemavxandClaude Opus 4.8 d3bd1a3503 ghost-en: stage Infisical-backed SMTP secret (3a)
InfisicalStaticSecret syncs shared /smtp-gmail -> ghost-en-smtp-infisical
(parallel name, passthrough SMTP_USER/SMTP_PASS). Old secret stays live until 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:06:04 +00:00
chemavxandClaude Opus 4.8 29d817547b gitea-runner: repoint token to Infisical-backed secret (3b, out-of-band)
env GITEA_RUNNER_REGISTRATION_TOKEN secretKeyRef
  gitea-runner-secret -> gitea-runner-secret-infisical
Rolls the pod: fresh emptyDir -> act_runner re-registers with same-value token.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 21:49:16 +00:00
chemavxandClaude Opus 4.8 8e162130dd gitea-runner: stage Infisical-backed secret (3a, out-of-band)
InfisicalStaticSecret syncs /gitea-runner -> gitea-runner-secret-infisical
(parallel name). Out-of-band: created via kubectl apply; commit is for record.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 21:48:46 +00:00
chemavxandClaude Opus 4.8 41a4f13bc3 Repoint cloudflare-ddns deployment to cloudflare-ddns-secret-infisical (cloudflare-ddns 3b)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:58:14 +00:00
chemavxandClaude Opus 4.8 c6efbdc469 Add cloudflare-ddns InfisicalStaticSecret from /cloudflare-ddns (cloudflare-ddns 3a, out-of-band)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:57:49 +00:00
chemavxandClaude Opus 4.8 48a2577f2a Repoint renovate cronjob to renovate-token-infisical (renovate 3b)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:52:41 +00:00
chemavxandClaude Opus 4.8 442e329c89 Add renovate-token InfisicalStaticSecret from /renovate (renovate 3a)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:51:53 +00:00
chemavxandClaude Opus 4.8 f5364500f6 Remove plaintext grafana-telegram Secret from git (monitoring 3c)
7th and final copy of the Telegram bot token leaving git. monitoring is
out-of-band (not ArgoCD-managed), so the live secret is pruned manually with
kubectl. Grafana already reads grafana-telegram-infisical (from /telegram).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:34:08 +00:00
chemavxandClaude Opus 4.8 e1fd0c9283 Repoint grafana TELEGRAM_* env to grafana-telegram-infisical (monitoring 3b, out-of-band)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:30:24 +00:00
chemavxandClaude Opus 4.8 a89d6e9a9a Add grafana-telegram InfisicalStaticSecret from /telegram (monitoring 3a, out-of-band)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:28:51 +00:00
chemavxandClaude Opus 4.8 07aacc6878 Remove plaintext bot-secrets Secret from git (polymarket-bot 3c)
Last plaintext secret leaving git; the 6th/last copy of the Telegram token.
ArgoCD prunes the live bot-secrets Secret (and its cleartext
last-applied-configuration annotation). Consumers already on bot-secrets-infisical.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:21:53 +00:00
chemavxandClaude Opus 4.8 dc0d24ded6 Repoint api/bot envFrom + cronjob to bot-secrets-infisical + bot-config (polymarket-bot 3b)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:18:35 +00:00
chemavxandClaude Opus 4.8 fb9170ec5b Add bot-secrets InfisicalStaticSecret + bot-config ConfigMap (parallel, polymarket-bot 3a)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:16:24 +00:00
chemavxandClaude Opus 4.8 318d66303a Remove plaintext htpasswd Secret from git (filebrowser)
Phase 3c of migration #2: drop the Secret stanza from auth.yaml; the Middleware
stays and references filebrowser-auth-infisical (synced from homelab/prod
/filebrowser). ArgoCD prunes the old plaintext filebrowser-auth secret — the
bcrypt htpasswd leaves git. Completes migration #2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 20:52:24 +00:00
chemavxandClaude Opus 4.8 7e9ee295e4 Repoint filebrowser Traefik Middleware to filebrowser-auth-infisical
Phase 3b of migration #2: Middleware.spec.basicAuth.secret now references the
Infisical-managed secret. Secret stanza in auth.yaml left in place as fallback
until 3b is verified (401 w/o creds, 200 w/ creds), then removed in 3c.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 20:46:46 +00:00
chemavxandClaude Opus 4.8 58851adf9a Add filebrowser InfisicalStaticSecret for basic-auth (parallel)
Phase 3a of migration #2: syncs FILEBROWSER_USERS from homelab/prod /filebrowser
via read-only infisical-operator/infisical-auth, template-remapped to the
lowercase 'users' key Traefik basic-auth requires, into parallel-name
filebrowser-auth-infisical. Old plaintext filebrowser-auth secret + the Traefik
Middleware untouched (repoint=3b, removal of the Secret stanza=3c).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 20:45:12 +00:00
chemavxandClaude Opus 4.8 0e50d88b54 Remove plaintext telegram-notify secrets from git (n8n/portfolio/openclaw/polymarket-bot)
Phase 3c: hooks now read telegram-notify-infisical (synced from homelab/prod
/telegram). Deleting these 4 manifests prunes the old plaintext secrets — the
bot token leaves git for the remaining 4 namespaces. Completes migration #1.

NOTE: polymarket-bot/bot-secrets still embeds the same token (migration #3).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 20:34:16 +00:00