Noethysweb

Application de gestion multi-activités

Outils pour utilisateurs

Outils du site


settings_production_detail

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
settings_production_detail [2023/09/17 11:11] – [BASE DE DONNEES] baalthsettings_production_detail [2023/12/08 22:40] (Version actuelle) – voir aussi fred.th
Ligne 1: Ligne 1:
 ====== Détails du fichier settings_production.py ====== ====== Détails du fichier settings_production.py ======
  
-===== Valeurs à personnaliser impérativement avant une mise en ligne =====+===== Valeurs à personnaliser =====
 <code python> <code python>
 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. 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.
Ligne 9: Ligne 9:
 </code> </code>
  
-===== Aucun besoin de modifier ces sections =====+===== Sections a ne pas modifier =====
  
 <code python> <code python>
Ligne 24: Ligne 24:
  
  
-===== URLS =====+===== Urls =====
    
-URLS : à personnaliser selon les souhaits +URLS : à personnaliser selon les souhaits \\ 
-Il est fortement conseillé de définir une URL aléatoire pour le URL_GESTION +Il est fortement conseillé de définir une URL aléatoire pour l'URL_GESTION \\ 
-Et de définir une URL un peu plus complexe pour le URL_BUREAU+Et de définir une URL un peu plus complexe pour le URL_BUREAU \\
  
 <code python> <code python>
Ligne 38: Ligne 38:
  
  
-===== HOSTS =====+===== 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.  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. 
Ligne 49: Ligne 49:
 </code> </code>
  
-===== BASE DE DONNEES =====+===== Base de données =====
  
 Modifier si besoin (en cas d'utilisation de MySQL par exemple) Modifier si besoin (en cas d'utilisation de MySQL par exemple)
Ligne 60: Ligne 60:
     'default': {     'default': {
         'ENGINE': 'django.db.backends.mysql',         'ENGINE': 'django.db.backends.mysql',
-        'NAME': 'poly', +        'NAME': 'nom_de_la_base_de_donnée', 
-        'USER': 'myuser', +        'USER': 'mon_utilisateur', 
-        'PASSWORD': 'mypass',  +        'PASSWORD': 'mon_mot_de_passe',  
-        'HOST': 'localhost',+        'HOST': 'mon_hôte',
         'PORT': 3306,         'PORT': 3306,
     }     }
Ligne 70: Ligne 70:
  
  
-===== SAUVEGARDES =====+===== Sauvegardes =====
  
 Permet de générer et envoyer des sauvegardes chiffrées des données Permet de générer et envoyer des sauvegardes chiffrées des données
Ligne 76: Ligne 76:
 Pour plus d'infos, consulter https://django-dbbackup.readthedocs.io/en/master/ Pour plus d'infos, consulter https://django-dbbackup.readthedocs.io/en/master/
 <code python> <code python>
-ID de la clé GPG pour le chiffrement de la sauvegarde nécessaire pour effectuer la sauvegarde.+ID de la clé GPG pour le chiffrement de la sauvegarde nécessaire pour effectuer la sauvegarde.
  
 DBBACKUP_GPG_RECIPIENT = "" 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"}
 +</code>
 +
 +===== 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
 +<code python>
 +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"
 +</code>
 +
 +===== 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 :
 +<code 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
 +]
 +</code>
 +
 +===== Sécurité =====
 +Les paramètres par défaut conviendront généralement. \\
 +Nota : Lorsque vous voulez utiliser un serveur dédié en passthrough permettant notamment de passer en production. il est conseillé de désactiver l'ensemble des variables de sécurité. \\
 +En effet, le mode ProxyPass des serveurs n’autorise pas de transit de flux brut. \\
 +
 +<code python>
 +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')
 +</code>
 +
 +===== Exemple de fichier =====
 +
 +
 +<file python settings_production.py>
 +#  Copyright (c) 2019-2021 Ivan LUCAS.
 +#  Noethysweb, application de gestion multi-activités.
 +#  Distribué sous licence GNU GPL.
 +
 +#########################################################################################
 +#              FICHIER DE CONFIGURATION A MODIFIER SELON LES BESOINS
 +#
 +# Valeurs à personnaliser impérativement avant une mise en ligne :
 +# SECRET_KEY, ALLOWED_HOSTS, URL_GESTION, DATABASES
 +#
 +#########################################################################################
 +
 +import os
 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 +
 +#########################################################################################
 +# CLE SECRETE : Saisissez une clé aléatoire complexe de votre choix (50 caract. minimum)
 +#########################################################################################
 +
 +SECRET_KEY = 'ceciestlaclédesécuritéutiliséepourmonsitenoethysweb!'
 +
 +#########################################################################################
 +# MODE DEMO : Pour désactiver des fonctionnalités
 +#########################################################################################
 +
 +MODE_DEMO = False
 +
 +#########################################################################################
 +# MODE DEBUG : Conserver False en production impérativement
 +#########################################################################################
 +
 +DEBUG = False
 +
 +#########################################################################################
 +# 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 : Saisissez les hosts autorisés (IP ou urls du serveur).
 +# Obligatoire pour fonctionner sur un serveur.
 +# Exemple : ALLOWED_HOSTS = ["127.0.0.1", "www.monsite.com"]
 +#########################################################################################
 +
 +ALLOWED_HOSTS = ["www.monsite.fr","localhost","127.0.0.1"]
 +
 +#########################################################################################
 +# BASE DE DONNEES : Modifier si besoin (en cas d'utilisation de MySQL par exemple)
 +# Le moteur ici est MySql.
 +# Exemple : https://docs.djangoproject.com/fr/4.0/ref/databases/#connection-management
 +#########################################################################################
 +
 +DATABASES = {
 +    'default': {
 +        'ENGINE': 'django.db.backends.mysql',
 +        'NAME': 'bdd',
 +        'USER': 'user',
 +        'PASSWORD': 'pass', 
 +        'HOST': 'localhost',
 +        '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/
 +#########################################################################################
 +
 +PLUGINS = ["monpluginperso"]
 +
 +# ID de la clé GPG pour le chiffrement de la sauvegarde
 +DBBACKUP_GPG_RECIPIENT = "TESTESTESTESTESTESTESTESTEST"
  
 # Pour un stockage de la sauvegarde sur le disque dur (Renseigner ci-dessous un répertoire existant) # Pour un stockage de la sauvegarde sur le disque dur (Renseigner ci-dessous un répertoire existant)
Ligne 108: Ligne 262:
 # Si l'un des champs ci-dessus utilise Dropbox, renseignez le token Dropbox ci-dessous : # Si l'un des champs ci-dessus utilise Dropbox, renseignez le token Dropbox ci-dessous :
 # DROPBOX_OAUTH2_TOKEN = "XXXXXXXXXXXXXXX" # DROPBOX_OAUTH2_TOKEN = "XXXXXXXXXXXXXXX"
-</code> 
-===== 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 (tâches planifiées) ===== +CRONTAB_PYTHON_EXECUTABLE = "/usr/bin/python3.9" 
-  +CRONTAB_COMMAND_SUFFIX = '2>&1' 
-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 : +CRONJOBS = [ 
-<code python> +#     ("* * * * *", "noethysweb.cron.Test_cron", ">> " + os.path.join(BASE_DIR, "debug_cron.log")) # Pour des tests 
-CRONTAB_PYTHON_EXECUTABLE = "/usr/bin/python3.9" +#     ("00 23 * * *", "noethysweb.cron.Sauvegarder_db", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour sauvegarder la base de données 
-CRONTAB_COMMAND_SUFFIX = '2>&1' +#     ("25 23 * * *", "noethysweb.cron.Vider_rep_temp", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour purger le répertoire temp 
-CRONJOBS = [ +#     ("30 23 * * *", "noethysweb.cron.Sauvegarder_media", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour sauvegarde le répertoire media 
-("* * * * *", "noethysweb.cron.Test_cron", ">> " + os.path.join(BASE_DIR, "debug_cron.log")) # Pour des tests +#     ("45 23 * * *", "noethysweb.cron.Traiter_attentes", ">> " + os.path.join(BASE_DIR, "debug_cron.log")), # Pour traiter les réservations en attente 
-("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. 
-+#########################################################################################
-</code>+
  
-===== SECURITE ===== 
-Les paramètres par défaut conviendront généralement. 
-<code python> 
 CSRF_COOKIE_SECURE = False CSRF_COOKIE_SECURE = False
 CSRF_COOKIE_SAMESITE = 'Strict' CSRF_COOKIE_SAMESITE = 'Strict'
Ligne 144: Ligne 296:
 SESSION_EXPIRE_AT_BROWSER_CLOSE = False SESSION_EXPIRE_AT_BROWSER_CLOSE = False
 AXES_META_PRECEDENCE_ORDER = ('HTTP_X_FORWARDED_FOR', 'X_FORWARDED_FOR', 'REMOTE_ADDR') AXES_META_PRECEDENCE_ORDER = ('HTTP_X_FORWARDED_FOR', 'X_FORWARDED_FOR', 'REMOTE_ADDR')
-</code>+</file> 
 + 
 +=====Voir aussi===== 
 +Dans la rubrique installation-hébergement :  
 +  * [[autohebergement]] 
 +  * [[installation_apache]] 
 +  * [[settings_production_detail]] 
 +  * [[noethysweb_easy]]
settings_production_detail.1694941919.txt.gz · Dernière modification : 2023/09/17 11:11 de baalth