IXG Platform
DEBUG was on in production, so an error rendered a full traceback and the DEBUG-only media route served /media/ixg-documents/... publicly, bypassing the document permission checks. Set DJANGO_DEBUG=False in the env files (untracked) and add friendly 500/404/403 templates. With DEBUG off Django no longer serves /static/, so nginx does: the static root moves to /var/www/ixg-platform-static (mounted into the app container) because /root is not traversable by www-data. HSTS (max-age 1y, includeSubDomains) is added to every HTTPS host, and a pragmatic CSP to the app/ops/portal locations. 'unsafe-inline' is required by the inline scripts/styles; self-hosting the CDN assets and nonces is a follow-up. |
||
|---|---|---|
| apps | ||
| docs | ||
| dsp_platform | ||
| nginx | ||
| scripts | ||
| templates | ||
| .dockerignore | ||
| .gitignore | ||
| create_agent.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| manage.py | ||
| requirements.txt | ||
| SESSION_CHECKPOINT.md | ||