diff --git a/.env.example b/.env.example index 3dd0ea9..16f212f 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,10 @@ +# Django (Produktion) +DJANGO_DEBUG=False +DJANGO_SECRET_KEY=change-me +ALLOWED_HOSTS=faktenkompass.example.com +CSRF_TRUSTED_ORIGINS=https://faktenkompass.example.com +USE_HTTPS=True + # OpenAI API-Schlüssel für den Fakten-Assistenten im Admin OPENAI_API_KEY=sk-... diff --git a/README.md b/README.md index 2bceb98..2bea465 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,8 @@ DJANGO_SETTINGS_MODULE=faktenkompass.settings DJANGO_DEBUG=False DJANGO_SECRET_KEY=lange-zufaellige-zeichenkette ALLOWED_HOSTS=faktenkompass.example.com,www.faktenkompass.example.com +CSRF_TRUSTED_ORIGINS=https://faktenkompass.example.com,https://www.faktenkompass.example.com +USE_HTTPS=True DB_ENGINE=django.db.backends.postgresql DB_NAME=faktenkompass @@ -104,14 +106,9 @@ DB_PORT=5432 OPENAI_API_KEY=sk-... ``` -Optional in `faktenkompass/settings.py` für HTTPS hinter Nginx ergänzen: +`CSRF_TRUSTED_ORIGINS` muss die **exakte URL** sein, mit der Sie die Seite aufrufen (Schema + Domain, ohne Pfad). Bei HTTP statt HTTPS z. B. `http://192.168.178.10` setzen und `USE_HTTPS=False`. -```python -SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') -CSRF_TRUSTED_ORIGINS = ['https://faktenkompass.example.com'] -``` - -`SECRET_KEY`, `DEBUG` und `ALLOWED_HOSTS` sollten in der Produktion aus Umgebungsvariablen gelesen werden. +`USE_HTTPS=True` aktiviert Proxy-Header und sichere Cookies hinter Nginx mit HTTPS. ### 2. Deployment vorbereiten diff --git a/faktenkompass/settings.py b/faktenkompass/settings.py index 7565ffc..9f6c727 100644 --- a/faktenkompass/settings.py +++ b/faktenkompass/settings.py @@ -35,6 +35,18 @@ ALLOWED_HOSTS = [ if host.strip() ] +CSRF_TRUSTED_ORIGINS = [ + origin.strip() + for origin in os.environ.get('CSRF_TRUSTED_ORIGINS', '').split(',') + if origin.strip() +] + +USE_HTTPS = os.environ.get('USE_HTTPS', '').lower() in ('true', '1', 'yes') +if USE_HTTPS: + SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') + CSRF_COOKIE_SECURE = True + SESSION_COOKIE_SECURE = True + # Application definition