fix(config): require PLATFORM_URL explicitly, no hardcoded domain default
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled
The previous fix defaulted PLATFORM_URL to this deployment's own domain directly in docker-compose.prod.yml — any other deployment of this repo would silently inherit it if they forgot to set their own. Now there is no default at all: the compose file requires the env var to be set, and the backend refuses to start in production if PLATFORM_URL still equals the dev value, mirroring the existing SECRET_KEY enforcement.
This commit is contained in:
+3
-2
@@ -41,8 +41,9 @@ FRONTEND_PORT=80
|
|||||||
|
|
||||||
# ── Emails ────────────────────────────────────────────────────────────────────
|
# ── Emails ────────────────────────────────────────────────────────────────────
|
||||||
# Base URL used to build links in outbound emails (set-password, etc).
|
# Base URL used to build links in outbound emails (set-password, etc).
|
||||||
# Must match your real public frontend URL — the app falls back to
|
# REQUIRED in production — must be THIS deployment's real public frontend
|
||||||
# http://localhost:5173 (dev default) if this is not set.
|
# URL. There is no safe default (it's unique per deployment); the backend
|
||||||
|
# refuses to start without it when AEGIS_ENV=production.
|
||||||
PLATFORM_URL=https://your-domain.com
|
PLATFORM_URL=https://your-domain.com
|
||||||
|
|
||||||
# ── Environment flag ─────────────────────────────────────────────────────────
|
# ── Environment flag ─────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -211,3 +211,14 @@ if _is_production:
|
|||||||
f"Set a strong value via the {name} environment variable "
|
f"Set a strong value via the {name} environment variable "
|
||||||
f"before running in production."
|
f"before running in production."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# PLATFORM_URL has no safe production default — it's baked into every
|
||||||
|
# emailed link (set-password, notifications). Falling back silently to
|
||||||
|
# the dev value (or to some other deployment's hardcoded domain) would
|
||||||
|
# ship broken/wrong links without anyone noticing.
|
||||||
|
if settings.PLATFORM_URL == "http://localhost:5173":
|
||||||
|
raise RuntimeError(
|
||||||
|
"CRITICAL: PLATFORM_URL is not configured. Set it to this "
|
||||||
|
"deployment's real public frontend URL via the PLATFORM_URL "
|
||||||
|
"environment variable before running in production."
|
||||||
|
)
|
||||||
|
|||||||
@@ -91,8 +91,9 @@ services:
|
|||||||
REDIS_CACHE_DB: ${REDIS_CACHE_DB:-2}
|
REDIS_CACHE_DB: ${REDIS_CACHE_DB:-2}
|
||||||
CORS_ORIGINS: ${CORS_ORIGINS:-}
|
CORS_ORIGINS: ${CORS_ORIGINS:-}
|
||||||
# Base URL used to build links in outbound emails (set-password, etc).
|
# Base URL used to build links in outbound emails (set-password, etc).
|
||||||
# Must be the real public frontend URL, not the dev default.
|
# No default on purpose — every deployment has a different domain;
|
||||||
PLATFORM_URL: ${PLATFORM_URL:-http://aegis.undiamagico.es}
|
# the backend refuses to start in production without this set.
|
||||||
|
PLATFORM_URL: ${PLATFORM_URL:?Set PLATFORM_URL in your .env file to this deployment's real public frontend URL}
|
||||||
AEGIS_ENV: ${AEGIS_ENV:-production}
|
AEGIS_ENV: ${AEGIS_ENV:-production}
|
||||||
SECURE_COOKIES: ${SECURE_COOKIES:-false}
|
SECURE_COOKIES: ${SECURE_COOKIES:-false}
|
||||||
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
|
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
|
||||||
|
|||||||
Reference in New Issue
Block a user