Ceci est une ancienne révision du document !
Table des matières
Détails du fichier settings_production.py
Valeurs à personnaliser impérativement avant une mise en ligne
SECRET_KEY : # Saisissez une clé aléatoire complexe de votre choix 50 caractères minimum, vous pouvez utiliser un générateur, tels que KeePass ou encore BitWarden. ALLOWED_HOSTS : # Ce sont les hôtes pouvant accéder à Django URL_GESTION : # Il s'agit de l'URL d'administration du site, permettant la gestion des utilisateurs, des groupes et des comptes bloqués. DATABASES : # C'est la configuration de l'accès à la base de donnée utilisée par noethysweb.
Aucun besoin de modifier ces sections
import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Ces deux valeurs sont à conserver à False en production. Nota: il est possible d'utiliser le mode DEBUG en cas de dysfocntionnement uniquement.
MODE_DEMO = False DEBUG = False
URLS
URLS : à personnaliser selon les souhaits Il est fortement conseillé de définir une URL aléatoire pour le URL_GESTION Et de définir une URL un peu plus complexe pour le URL_BUREAU
URL_GESTION = "administrateur/" URL_BUREAU = "utilisateur/" URL_PORTAIL = "portail/" PORTAIL_ACTIF = True
HOSTS
Cette variable ALLOWED_HOSTS défini les hôtes autorisés à accéder a Django, soit le localhost, mais aussi le nom de domaine du site de la structure.
On note que trois hôtes sont définis mon-association.org est le nom de domaine de l'association, qui peut dont accéder a à Django localhost et 127.0.0.1 représentent la même entité, à savoir l'hôte du serveur.
ALLOWED_HOSTS = ["mon-association.org","localhost","127.0.0.1"]
BASE DE DONNEES
Modifier si besoin (en cas d'utilisation de MySQL par exemple) Le moteur par défaut SQLITE est à utiliser uniquement pour des tests en local.
Exemple : Django#connection-management
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'nom_de_la_base_de_donnée', 'USER': 'mon_utilisateur', 'PASSWORD': 'mon_mot_de_passe', 'HOST': 'mon_hôte', 'PORT': 3306, } }
SAUVEGARDES
Permet de générer et envoyer des sauvegardes chiffrées des données vers un répertoire du serveur ou vers Dropbox. Pour plus d'infos, consulter https://django-dbbackup.readthedocs.io/en/master/
# ID de la clé GPG pour le chiffrement de la sauvegarde nécessaire pour effectuer la sauvegarde. DBBACKUP_GPG_RECIPIENT = "" # Pour un stockage de la sauvegarde sur le disque dur (Renseigner ci-dessous un répertoire existant) # DBBACKUP_STORAGE = "django.core.files.storage.FileSystemStorage" # DBBACKUP_STORAGE_OPTIONS = {"location": "C:/Users/XXXXXX/Desktop/sauvegardes/"} # DBBACKUP_CONNECTORS = {"default": {"dump_suffix": "--hex-blob"}} # Pour un stockage de la sauvegarde sur Dropbox (Renseigner ci-dessous le token de Dropbox) # 1. Connectez-vous à Dropbox et accédez à Developper Apps : https://www.dropbox.com/developers/apps # 2. Cliquez sur le bouton 'Create app' et saisissez un nom de votre choix. Ex : "Mes sauvegardes". # 3. Une fois l'appli créée, cochez les permissions files.metadata et files.content. # 4. Générez le token et copiez-le ci-dessous. # DBBACKUP_STORAGE = "storages.backends.dropbox.DropBoxStorage" # DBBACKUP_STORAGE_OPTIONS = {"oauth2_access_token": "Token Dropbox à coller ici"} ######################################################################################### # STOCKAGE DE DOCUMENTS # Indiquer le type de stockage souhaité pour chaque information : # Pour un stockage sur le disque dur (par défaut) : django.core.files.storage.FileSystemStorage # Pour un stockage sur Dropbox : storages.backends.dropbox.DropBoxStorage ######################################################################################### # STORAGE_PROBLEME = "django.core.files.storage.FileSystemStorage" # STORAGE_PIECE = "django.core.files.storage.FileSystemStorage" # STORAGE_QUOTIENT = "django.core.files.storage.FileSystemStorage" # STORAGE_ASSURANCE = "django.core.files.storage.FileSystemStorage" # STORAGE_PHOTO = "django.core.files.storage.FileSystemStorage" # Si l'un des champs ci-dessus utilise Dropbox, renseignez le token Dropbox ci-dessous : # DROPBOX_OAUTH2_TOKEN = "XXXXXXXXXXXXXXX"
PLUGINS
PLUGINS = [“monpluginperso”]
CRONTAB (tâches planifiées)
Décommentez les lignes ci-dessous pour activer les tâches automatisées et modifiez si besoin les horaires de déclenchement et le path python :
CRONTAB_PYTHON_EXECUTABLE = "/usr/bin/python3.9" CRONTAB_COMMAND_SUFFIX = '2>&1' CRONJOBS = [ ("* * * * *", "noethysweb.cron.Test_cron", ">> " + os.path.join(BASE_DIR, "debug_cron.log")) # Pour des tests ("00 23 * * *", "noethysweb.cron.Sauvegarder_db", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour sauvegarder la base de données ("25 23 * * *", "noethysweb.cron.Vider_rep_temp", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour purger le répertoire temp ("30 23 * * *", "noethysweb.cron.Sauvegarder_media", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour sauvegarde le répertoire media ("45 23 * * *", "noethysweb.cron.Traiter_attentes", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour traiter les réservations en attente ]
SECURITE
Les paramètres par défaut conviendront généralement.
CSRF_COOKIE_SECURE = False CSRF_COOKIE_SAMESITE = 'Strict' SESSION_COOKIE_SECURE = False SECURE_BROWSER_XSS_FILTER = False SECURE_CONTENT_TYPE_NOSNIFF = False SECURE_SSL_REDIRECT = False X_FRAME_OPTIONS = 'DENY' SECURE_HSTS_SECONDS = 15768000 SECURE_HSTS_INCLUDE_SUBDOMAINS = False SECURE_HSTS_PRELOAD = False SESSION_COOKIE_AGE = 60*60*12 # 12 heures SESSION_EXPIRE_AT_BROWSER_CLOSE = False AXES_META_PRECEDENCE_ORDER = ('HTTP_X_FORWARDED_FOR', 'X_FORWARDED_FOR', 'REMOTE_ADDR')