From c5139851b8c87c633ceecb725ee5793eca0c1213 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 16 May 2026 00:18:38 +0200 Subject: [PATCH] =?UTF-8?q?ci(obs):=20GitOps=20obs=20env=20split=20in=20ni?= =?UTF-8?q?ghtly=20=E2=80=94=20obs.env=20in=20git,=20secrets=20fresh=20fro?= =?UTF-8?q?m=20Gitea?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/nightly.yml | 37 +++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/nightly.yml b/.gitea/workflows/nightly.yml index d4af264d..ce45d991 100644 --- a/.gitea/workflows/nightly.yml +++ b/.gitea/workflows/nightly.yml @@ -78,12 +78,6 @@ jobs: APP_MAIL_FROM=noreply@staging.raddatz.cloud IMPORT_HOST_DIR=/srv/familienarchiv-staging/import POSTGRES_USER=archiv - PORT_GRAFANA=3003 - PORT_GLITCHTIP=3002 - PORT_PROMETHEUS=9090 - GRAFANA_ADMIN_PASSWORD=${{ secrets.GRAFANA_ADMIN_PASSWORD }} - GLITCHTIP_SECRET_KEY=${{ secrets.GLITCHTIP_SECRET_KEY }} - GLITCHTIP_DOMAIN=https://glitchtip.archiv.raddatz.cloud SENTRY_DSN=${{ secrets.SENTRY_DSN }} EOF @@ -136,30 +130,43 @@ jobs: # into /opt/familienarchiv/ — the permanent location that persists # between CI runs. Containers started in the next step bind-mount # from there, so a future workspace wipe cannot corrupt a running - # config file. Secrets are read from /opt/familienarchiv/.env (managed - # separately on the server; not written or deleted by CI). + # config file. + # + # obs-secrets.env is written fresh from Gitea secrets on every run so + # Gitea is always the single source of truth for secret rotation. + # Non-secret config lives in infra/observability/obs.env (tracked in git). run: | mkdir -p /opt/familienarchiv/infra cp -r infra/observability /opt/familienarchiv/infra/ cp docker-compose.observability.yml /opt/familienarchiv/ + cat > /opt/familienarchiv/obs-secrets.env <