mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
First commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
"""Settings de production : secrets et hôtes fournis par l'environnement."""
|
||||
import os
|
||||
|
||||
from .base import * # noqa: F401,F403
|
||||
|
||||
SECRET_KEY = os.environ['DJANGO_SECRET_KEY']
|
||||
DEBUG = False
|
||||
ALLOWED_HOSTS = [h for h in os.environ.get('DJANGO_ALLOWED_HOSTS', '').split(',') if h]
|
||||
CSRF_TRUSTED_ORIGINS = [o for o in os.environ.get('DJANGO_CSRF_TRUSTED_ORIGINS', '').split(',') if o]
|
||||
|
||||
# DB_ENGINE=mariadb (opt-in, voir "sudo ./install.sh install-mariadb") bascule
|
||||
# vers MariaDB/MySQL via PyMySQL (pas de mysqlclient : évite une dépendance de
|
||||
# compilation C côté paquets système) ; sqlite reste le défaut, sans rien à
|
||||
# installer/configurer en plus.
|
||||
#
|
||||
# DB_ENGINE=postgresql (opt-in) : contrairement à mariadb, pas de
|
||||
# sous-commande install.sh dédiée pour l'instant — provisionner le serveur
|
||||
# PostgreSQL/la base/l'utilisateur reste manuel, puis renseigner DB_*
|
||||
# ci-dessous dans .env. Driver requirements-postgresql.txt
|
||||
# (psycopg[binary], pas de compilation C nécessaire non plus) à installer
|
||||
# à la main dans le venv (pip install -r requirements-postgresql.txt)
|
||||
# avant de basculer DB_ENGINE.
|
||||
DB_ENGINE = os.environ.get('DB_ENGINE', 'sqlite')
|
||||
if DB_ENGINE == 'mariadb':
|
||||
import pymysql
|
||||
pymysql.install_as_MySQLdb()
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': os.environ.get('DB_NAME', 'fail2ban_emitter'),
|
||||
'USER': os.environ.get('DB_USER', 'fail2ban_emitter'),
|
||||
'PASSWORD': os.environ.get('DB_PASSWORD', ''),
|
||||
'HOST': os.environ.get('DB_HOST', '127.0.0.1'),
|
||||
'PORT': os.environ.get('DB_PORT', '3306'),
|
||||
}
|
||||
}
|
||||
elif DB_ENGINE == 'postgresql':
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql',
|
||||
'NAME': os.environ.get('DB_NAME', 'fail2ban_emitter'),
|
||||
'USER': os.environ.get('DB_USER', 'fail2ban_emitter'),
|
||||
'PASSWORD': os.environ.get('DB_PASSWORD', ''),
|
||||
'HOST': os.environ.get('DB_HOST', '127.0.0.1'),
|
||||
'PORT': os.environ.get('DB_PORT', '5432'),
|
||||
}
|
||||
}
|
||||
else:
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': os.environ.get('DJANGO_DB_PATH', str(BASE_DIR / 'db.sqlite3')),
|
||||
}
|
||||
}
|
||||
|
||||
STATIC_ROOT = BASE_DIR / 'staticfiles'
|
||||
STORAGES = {
|
||||
'staticfiles': {
|
||||
'BACKEND': 'whitenoise.storage.CompressedManifestStaticFilesStorage',
|
||||
},
|
||||
}
|
||||
MIDDLEWARE = ['whitenoise.middleware.WhiteNoiseMiddleware'] + MIDDLEWARE
|
||||
|
||||
# Pas de TLS géré ici (pas de reverse proxy devant l'émetteur pour l'instant) :
|
||||
# forcer le HTTPS casserait l'accès (redirection en boucle, cookies rejetés).
|
||||
# À activer (DJANGO_SECURE_SSL=true) une fois un reverse proxy TLS en place.
|
||||
DJANGO_SECURE_SSL = os.environ.get('DJANGO_SECURE_SSL', 'false').lower() == 'true'
|
||||
SECURE_SSL_REDIRECT = DJANGO_SECURE_SSL
|
||||
SESSION_COOKIE_SECURE = DJANGO_SECURE_SSL
|
||||
CSRF_COOKIE_SECURE = DJANGO_SECURE_SSL
|
||||
# Daphne ne voit que la connexion interne en clair depuis nginx (proxy_pass
|
||||
# http://127.0.0.1:8050) : sans ceci, request.is_secure() est toujours faux
|
||||
# côté Django, qui redirige alors indéfiniment (SECURE_SSL_REDIRECT actif
|
||||
# mais jamais satisfait) — le gabarit generic/nginx/fail2ban-emitter.example.conf
|
||||
# pose bien X-Forwarded-Proto, encore faut-il que Django lui fasse confiance.
|
||||
if DJANGO_SECURE_SSL:
|
||||
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
|
||||
Reference in New Issue
Block a user