204. The hub is reached privately over the tailnet first; a public ingress is a deployment target, never an application change
Kontext
2026-09-11: the owner rejected free PaaS hosting, named Lundra (behind NAT) and a Cloudflare account, and asked to use a Tailscale name now and majordomus.dev later. The control surface can run commands on a workstation.
Rozhodnutí
Lundra is the persistent hub. Phase 1 serves it tailnet-only over HTTPS on its ts.net name (no Funnel); phase 2 adds a Cloudflare Tunnel with access in front over the same origin, which listens on loopback. Both may coexist; switching is deployment configuration. Network privacy is not authorisation: edge identity plus application authorisation (ADR 0126, web-sign-in).
Zamítnuté alternativy
- Free PaaS tiers
- Router port-forwarding
- Tailscale Funnel by default
- An anonymous public Cockpit
Důsledky
the-hub-is-reached-from-any-device (I3195..I3197).
Sources
Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner's acceptance is at chatgpt-majordomus:c118#6; accepting this record is still the owner's act.
chatgpt-majordomus:c118#5chatgpt-majordomus:c118#9