- PushOptIn now accepts vapidKey as a prop from its server-component parent (settings page reads VAPID_PUBLIC_KEY at runtime) — eliminates the NEXT_PUBLIC_* build-time dependency so pre-built GHCR images work without a build arg. - deploy/compose.yaml: famapp exposes 3010:3000, authentik-server exposes 9200:9000 so the existing Caddy stack can proxy by IP, matching every other service in the homelab. NEXT_PUBLIC_APP_URL replaced by AUTH_URL (correct next-auth v5 var). - deploy/Caddyfile.snippet: updated to 192.168.1.69:3010 / :9200. - .env.production.example: AUTH_URL, ntfy pre-wired to ntfy.ginnoir.com, VAPID_SUBJECT prefilled with real email. - typecheck and pnpm build both pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
849 B
849 B
Changelog
One line per release. "What's in prod" = the highest tag listed under a date that's been deployed.
Format: ## vX.Y.Z — YYYY-MM-DD
Unreleased
- Production deployment scaffolding: tag-based release workflow (GHCR), migration entrypoint in container, prod-side dev-login startup assertion, image-pinned compose, pre-deploy checklist.
- famapp/authentik-server now expose host ports (3010/9200) so existing Caddy stack can proxy by IP, matching the existing homelab pattern.
- Auth.js: replaced
NEXT_PUBLIC_APP_URLwithAUTH_URLin compose (correct next-auth v5 var). - Push opt-in: VAPID public key now passed as prop from server component instead of
NEXT_PUBLIC_*so pre-built images work without a build-time env var. - ntfy integration wired to existing
ntfy.ginnoir.cominstance viaNTFY_URL/NTFY_TOPICenv vars.