2.6 KiB
2.6 KiB
Cutover checklist — Phase 6: apps/105 → Docker stack on mac-mini
Status: [x] = done, [ ] = pending
Pre-cutover
- Backup:
pg_dump oikos > backups/pre-cutover-20260707.sql(145K) - CI green: pushed to main,
.gitea/workflows/ci.ymlexists - Deploy test: Docker stack running with api + scheduler + notifier + hermes
- Caddy config:
compose/caddy/Caddyfile.oikospushed todtoro/caddy-conf(ed20908). Auto-deploys to caddy (121). - DNS:
oikos.hubris.networkalready resolves to 192.168.8.175 (mac-mini mesh) - Secrets: Infisical bootstrapped 2026-07-07 — running on
:8080(profile: full+infisical). Admin:oikos@hubris.network. Project:oikos(a436936f). Machine identity:oikos-api(UA: 82e6e362-bbee-...). ENCRYPTION_KEY must be 32-char raw string (Infisical docs incorrectly say hex). Env vars wired in.env: OIKOS_INFISICAL_SITE_URL/CLIENT_ID/CLIENT_SECRET/PROJECT_ID/ENV + OIKOS_SECRET_BACKEND=infisical. SOPS fallback preserved. - Watchdog: crontab entry added (every 2 min →
scripts/watchdog.sh). Path fixed 2026-07-07 (was stale worktree path).
Cutover
- Stop apps/105 services: homelab-mcp-deploy, secrets-issuance, secrets-issuance-deploy, oikos-console, oikos-console-deploy
- Disable apps/105 services: all 5 units disabled
- Deploy to mac-mini: Docker stack running (
docker compose --profile full up -d) - Caddy reload: pushed to
dtoro/caddy-conf— auto-deploy triggers on LXC 121. - DNS verify:
oikos.hubris.network→ 192.168.8.175
Post-cutover verification
- ./scripts/verify-phase6.sh — all 14 checks pass
- Hermes query:
curl http://localhost:8092/query -d '{"query":"fleet health"}'→ HTTP 200 - Agent activity:
curl http://localhost:8090/api/v1/agent-activity→ returns data - Scheduler ticking: 30s ticks logged
- Notifier polling: running
- Watchdog tested: 2026-07-07 — full cycle verified. API down → failure counting → Matrix alert sent (!alerts:hubris.network) → API recovery → counter reset. Crontab path fixed (was stale worktree path, now /Users/dtoro/Projects/oikos). MATRIX_TOKEN wired in crontab env.
Rollback drill
- ./scripts/rollback.sh — pending rehearsal
- Verify health: pending
- Re-deploy latest: pending
Cleanup
- Remove Gitea webhooks for apps/105 (ids 10, 11) from
dtoro/Homelab-Docs - Archive apps/105 LXC (keep for 30 days, then destroy)
- Update auto-deploy docs — apps/105 entries marked deprecated