chore(dev): make the dev stack reachable through the Pangolin tunnel #20

Merged
luckberg merged 2 commits from chore/dev-stack-config into main 2026-06-14 21:09:27 -04:00
Owner

Dev-only environment config so this dev box's stack is reachable and usable through the Pangolin/newt tunnel. No production code, image, or compose is touched.

Changes

  • docker-compose.dev.yml — set DEV_AUTH_BYPASS: 'true' on the api service. The dev stack ran NODE_ENV=development but without the bypass, so it enforced OIDC even though no Authelia is reachable on the dev box. Guarded by NODE_ENV !== 'production', and the production image bakes NODE_ENV=production, so it can never activate in a shipped image.
  • apps/pwa/vite.config.ts — add allowedHosts: true and host: true. Vite's default host check returned 403 ("Blocked request") for the tunnel's Host header, which newt read as unhealthy on / and /health. Now the dev server accepts the tunnel hostname and listens on all interfaces.

Verification

  • pnpm format:check, pnpm lint, pnpm typecheck all green locally.
  • Foreign-Host request to Vite now returns 200 on /, /health (proxied to the API), and /api/me.

🤖 Generated with Claude Code

Dev-only environment config so this dev box's stack is reachable and usable through the Pangolin/newt tunnel. No production code, image, or compose is touched. ## Changes - **docker-compose.dev.yml** — set `DEV_AUTH_BYPASS: 'true'` on the `api` service. The dev stack ran `NODE_ENV=development` but without the bypass, so it enforced OIDC even though no Authelia is reachable on the dev box. Guarded by `NODE_ENV !== 'production'`, and the production image bakes `NODE_ENV=production`, so it can never activate in a shipped image. - **apps/pwa/vite.config.ts** — add `allowedHosts: true` and `host: true`. Vite's default host check returned 403 ("Blocked request") for the tunnel's Host header, which newt read as unhealthy on `/` and `/health`. Now the dev server accepts the tunnel hostname and listens on all interfaces. ## Verification - `pnpm format:check`, `pnpm lint`, `pnpm typecheck` all green locally. - Foreign-Host request to Vite now returns 200 on `/`, `/health` (proxied to the API), and `/api/me`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
luckberg added 2 commits 2026-06-14 19:18:17 -04:00
The api service in docker-compose.dev.yml ran with NODE_ENV=development but
without DEV_AUTH_BYPASS, so the dockerized dev stack enforced OIDC even though
no Authelia is reachable on the dev box. Set DEV_AUTH_BYPASS=true on the dev
override only; guarded by NODE_ENV!='production' and the production image bakes
NODE_ENV=production, so it can never reach a shipped image.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(dev): allow tunnel host + all interfaces in Vite dev server
CI / changes (pull_request) Successful in 1s
CI / fast-checks (pull_request) Successful in 1m26s
CI / api (pull_request) Successful in 1m5s
CI / harness (pull_request) Successful in 4m16s
CI / security (pull_request) Successful in 39s
CI / gate (pull_request) Successful in 1s
cc875de0eb
Reaching the dev PWA through the Pangolin/newt tunnel failed: Vite's default
host check 403s any non-localhost Host header ('Blocked request'), which the
tunnel health checks on / and /health read as unhealthy. Add allowedHosts:true
and host:true so the dev server accepts the tunnel hostname and listens on all
interfaces. Dev-only config; the production image serves the built PWA itself.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
luckberg merged commit 6d50f7f41c into main 2026-06-14 21:09:27 -04:00
luckberg deleted branch chore/dev-stack-config 2026-06-14 21:09:28 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: luckberg/familysync#20