feat: add Django project scaffold, configuration and container

Environment-variable configuration that fails fast, database-only health
check, JSON request logs with a request id, security headers with a strict
CSP, and a multi-stage non-root Docker image with compose file. Ticket 1.1.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sk72AxLwQnYttF6VFSxQLt
This commit is contained in:
Ebbe Baß
2026-10-15 13:44:07 +02:00
co-authored by Claude Sonnet 5.5
parent 24de5878ed
commit f8b0584687
31 changed files with 1134 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
# Copy to .env and edit. Never commit .env.
# Required. At least 32 random characters.
# Generate: python -c "import secrets; print(secrets.token_urlsafe(64))"
SECRET_KEY=
# Required. Comma-separated host names the portal answers to.
ALLOWED_HOSTS=portal.example.test
# Optional. Directory for the database. Default /data (the container volume).
# DATA_DIR=/data
# Optional. true or false. Default false. Never true in production.
# DEBUG=false
# Optional. Comma-separated IP addresses or networks of reverse proxies. Default empty.
# Reserved for the client-IP rule in a later entry; currently has no effect.
# TRUSTED_PROXIES=
# Optional. DEBUG, INFO, WARNING, ERROR or CRITICAL. Default INFO.
# LOG_LEVEL=INFO
# Optional. IANA time zone used for display. Default Europe/Berlin.
# DEFAULT_TIMEZONE=Europe/Berlin