infra: tito operator queue + cutover checklist
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+37
−0
infra/tito/README.md+37 −0
diff --git a/infra/tito/README.md b/infra/tito/README.md| new file mode 100644 |
| index 000000000..467d290a6 |
| --- /dev/null |
| +++ b/infra/tito/README.md |
| @@ -0,0 +1,37 @@ |
| +# 🤖 Tito deployment — operator notes |
| + |
| +> 🤖 Written by an LLM (Claude), per factor X. |
| + |
| +AWS account **665106592142** (Tito's own; self-hosted deployment), profile |
| +`titogo`, eu-west-1 (IE) first. State: `s3://carlos-tfstate-665106592142/tito/`. |
| + |
| +## Operator queue |
| + |
| +1. **Apply the stack** (21 resources, plan reviewed — buckets, IE box, |
| + svc/pdf Gotenberg, `ie.go.tito.io` alias; does NOT touch `go.tito.io` |
| + or the wildcard): |
| + |
| + ``` |
| + cd infra/tito && tofu apply plan.out |
| + ``` |
| + |
| + (Re-plan first if stale. Everything is `carlos-tito-*` named; the |
| + litestream bucket and Hetzner DNS are untouched.) |
| + |
| +2. **Set svc/pdf basic-auth** via SSM session: write a |
| + `user bcrypt-hash` line to `/etc/caddy/pdf-basicauth` on the svc-pdf |
| + box and `systemctl restart caddy`. |
| + |
| +## Hetzner cutover go/no-go checklist (Plan C task C4) |
| + |
| +- [ ] titogo canary green at `https://platform.ie.go.tito.io` |
| + (full canary checklist: magic-link sign-in, seeded event, checkout) |
| +- [ ] Fleet restore rehearsed from `titogo-litestream-…/hetzner/`; |
| + duration recorded (= freeze window) |
| +- [ ] `carlos ops restore-verify` green against `carlos-tito-ie-…/titogo/` |
| +- [ ] Rollback rehearsed: Route53 `go.tito.io` + `*.go.tito.io` back to |
| + 62.238.45.61 + restart Hetzner units |
| + |
| +Cutover: stop `titogo-router` + `titogo@*` on Hetzner → final litestream |
| +delta restore on IE → start under carlos → smoke via `--resolve` → flip |
| +Route53 A records (TTL 60) → watch. Hetzner box frozen 30 days. |