soulsync/Support
BoulderBadgeDad aa3aae695d Security: opt-in reverse-proxy mode (ProxyFix + Secure cookie) + nginx guide
Tier 1 of "secure behind a reverse proxy". STRICTLY opt-in so direct/LAN installs
are byte-for-byte unchanged.

- core/security/reverse_proxy.py: apply_reverse_proxy_mode(app, config_get) — a
  no-op unless security.trust_reverse_proxy=true. When OFF (default), the app is
  untouched: no ProxyFix, X-Forwarded-* stays UNtrusted (a direct client can't
  spoof its IP/scheme), session cookie keeps Flask defaults. When ON (operator is
  behind nginx/Caddy/Traefik with TLS): trust one proxy hop's X-Forwarded-*, and
  mark the session cookie Secure + SameSite=Lax. Any config error → safe no-op,
  never breaks startup.
- Wired once at app init.
- Support/REVERSE-PROXY.md: nginx (with the Socket.IO Upgrade headers people
  always miss) / Caddy / Traefik configs, the setting, and the "put auth in front
  (Authelia/Authentik/oauth2-proxy)" recommendation + the off-for-plain-HTTP note.

Tests: off (and missing-key, and a config exception) is a strict no-op — not
ProxyFix-wrapped, cookie defaults intact; on wraps ProxyFix + secures the cookie;
and the real web_server app is NOT in proxy mode by default. 5 tests pass.
2026-06-10 20:36:49 -07:00
..
API.md Update API.md 2026-03-04 14:13:22 -08:00
AUTOMATIONS.md update readme and include automation docs 2026-03-05 18:45:00 -08:00
DOCKER-OAUTH-FIX.md Reverse proxy fix 2026-03-03 12:04:53 -08:00
DOCKER-TRANSFER-GUIDE.md organization 2026-01-27 12:23:19 -08:00
DOCKER.md organization 2026-01-27 12:23:19 -08:00
DOCKER_PERMISSIONS.md organization 2026-01-27 12:23:19 -08:00
IMPORT-STAGING-GUIDE.md Create IMPORT-STAGING-GUIDE.md 2026-03-01 16:53:40 -08:00
METADATA-FALLBACK-IMPLEMENTATION.md organization 2026-01-27 12:23:19 -08:00
README-Docker.md Document dev/nightly release channels and contributor workflow 2026-04-21 14:40:24 -07:00
REVERSE-PROXY.md Security: opt-in reverse-proxy mode (ProxyFix + Secure cookie) + nginx guide 2026-06-10 20:36:49 -07:00
UNRAID.md organization 2026-01-27 12:23:19 -08:00