Skip to content

docs: Phase 3 plan (auth + per-site hosting) - #22

Open
euoia wants to merge 2 commits into
mainfrom
docs/phase3-auth-hosting-plan
Open

docs: Phase 3 plan (auth + per-site hosting)#22
euoia wants to merge 2 commits into
mainfrom
docs/phase3-auth-hosting-plan

Conversation

@euoia

@euoia euoia commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Adds the Phase 3 implementation plan for the 3-sites rollout (hosted editor + auth).

Key finding from auditing the code: the auth substrate is already ~90% built — argon2id credentials (timing-safe), /api/login|logout|session, requireAuth on every /api/* route, prod SQLite session store, rate limiting, weak-config warnings, and a hash-password CLI. So Phase 3 is mostly hosting/ops, not auth code:

  • per-site NixOS instances — systemd units for the admin server + a localhost astro dev preview;
  • Caddy auto-TLS at admin.<domain>;
  • per-repo write deploy keys for push;
  • small hardening (commit --no-verify/hooks-off, session regeneration on login, a stricter login limiter).

Decisions confirmed: dedicated NixOS host (systemd, not Docker), live astro dev preview, Caddy. Codenamed per the public-repo convention — concrete client/host bindings are in the private ops repo.

euoia added 2 commits June 25, 2026 11:50
Phase 3 of the 3-sites rollout. Records that the auth substrate is
already ~90% built (argon2 creds, login/session, requireAuth on all
/api, prod SQLite session store, rate limiting, hash-password CLI), so
the remaining work is mostly hosting/ops: per-site NixOS instances
(systemd admin + astro dev preview), Caddy auto-TLS at admin.<domain>,
write deploy keys, and small commit/auth hardening. Decisions confirmed:
NixOS host (systemd), live astro dev preview, Caddy. Codenamed —
concrete bindings live in the private ops repo.
Reflect the confirmed approach: nginx + security.acme (HTTP-01) instead
of Caddy, sops-nix for secrets, nixos-infect for provisioning, and the
host flake living in the private ops repo. Records the NixOS module as
built and flags browser-reachable preview routing as the one open
integration item. Kept generic (no business/client specifics) per the
public-repo convention.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant