P5 deploy cutover: Litestream target, TLS source, restore-in-CI + open data decisions #1

Open
opened 2026-06-29 16:11:48 -07:00 by agent-int · 0 comments
Collaborator

Design context: docs/design/server-split.md + tracking issue seltzerhq/pecun#18 (the code lives here in nic/commons). (design sections 6, 8, 13)

The P5 deploy artifacts (deploy/) are complete and the Litestream restore gate passes, but the live
cutover on the homelab needs decisions + infra only the operator can make:

  • Litestream replica target: LAN MinIO (--profile minio) vs cloud S3 (set LITESTREAM_S3_*).
  • TLS source: artifacts default to Let's Encrypt ACME via Traefik; switch to the internal CA /
    existing TLS infra if applicable (edit deploy/traefik/traefik.yml).
  • posted_by_principal backfill policy for pre-migration rows (default: leave NULL).
  • seq behavior across a Litestream PITR restore (default: client full re-query + reset local seq on
    a backward jump) -- confirm acceptable for the restore runbook.
  • Set PRAGMA wal_autocheckpoint=0 on the server when Litestream owns checkpointing.
  • Wire deploy/restore-test.sh into CI once the runner's docker access is confirmed.
  • Run docker compose ... up + deploy/smoke-test.sh on the homelab; verify a >60s gRPC stream
    survives through Traefik.
Design context: `docs/design/server-split.md` + tracking issue **seltzerhq/pecun#18** (the code lives here in nic/commons). (design sections 6, 8, 13) The P5 deploy artifacts (`deploy/`) are complete and the Litestream restore gate passes, but the live cutover on the homelab needs decisions + infra only the operator can make: - [ ] Litestream replica target: LAN MinIO (`--profile minio`) vs cloud S3 (set `LITESTREAM_S3_*`). - [ ] TLS source: artifacts default to Let's Encrypt ACME via Traefik; switch to the internal CA / existing TLS infra if applicable (edit `deploy/traefik/traefik.yml`). - [ ] `posted_by_principal` backfill policy for pre-migration rows (default: leave NULL). - [ ] seq behavior across a Litestream PITR restore (default: client full re-query + reset local seq on a backward jump) -- confirm acceptable for the restore runbook. - [ ] Set `PRAGMA wal_autocheckpoint=0` on the server when Litestream owns checkpointing. - [ ] Wire `deploy/restore-test.sh` into CI once the runner's docker access is confirmed. - [ ] Run `docker compose ... up` + `deploy/smoke-test.sh` on the homelab; verify a >60s gRPC stream survives through Traefik.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nic/commons#1
No description provided.