Data flows
The three paths that matter: visitors → apps, nightly backups, and recovery.
Public request path
How a visitor reaches a public side project.
- Visitor → DNS: app.yourdomain.com (or photos.yourdomain.com)
- Router :443 — the only open inbound port
- Pangolin edge: TLS termination + Google OAuth2 login (SSO / RBAC)
- WireGuard tunnel to NAS 1
- Dokploy routes to the app container — or Immich serves photos
- Response flows back the same way
Nightly backup chain
restic, multi-target, every night.
- Cron on NAS 1: pg_dump the Immich database
- restic backup → NAS 2 (LAN, minutes)
- restic backup → NAS 3 (over the mesh, small delta)
- Brother’s box: restic copy NAS 3 → NAS 4 (his LAN)
- Healthcheck ping — alert on any failure
Restore path
Recovery order and expectations.
- NAS 2: LAN restore — hours
- NAS 3 / NAS 4: offsite restore — disaster case, days
- Order: restore DB dump first, then the library
- Verify: Immich check + spot-check photos
- Drill quarterly — a backup never restored is a hope