mirror of
https://github.com/ae-utbm/sith.git
synced 2025-02-21 23:17:14 +00:00
simplify .env.example
La plupart des variables du `.env.example` n'ont pas besoin d'être modifiées régulièrement et ont déjà des valeurs par défaut dans le `settings.py` qui sont adaptées à un environnement local. En gardant uniquement les variables qui seront régulièrement modifiées, on rend le fichier plus compréhensible et plus simple à maintenir.
This commit is contained in:
parent
59e90ec754
commit
9945993f0b
81
.env.example
81
.env.example
@ -1,86 +1,11 @@
|
|||||||
HTTPS=off
|
HTTPS=off
|
||||||
DEBUG=true
|
SITH_DEBUG=true
|
||||||
|
|
||||||
# This is not the real key used in prod
|
# This is not the real key used in prod
|
||||||
SECRET_KEY=(4sjxvhz@m5$0a$j0_pqicnc$s!vbve)z+&++m%g%bjhlz4+g2
|
SECRET_KEY=(4sjxvhz@m5$0a$j0_pqicnc$s!vbve)z+&++m%g%bjhlz4+g2
|
||||||
|
|
||||||
# comma-separated values
|
# comment the sqlite line and uncomment the postgres one to switch the dbms
|
||||||
CSRF_TRUSTED_ORIGINS=
|
|
||||||
|
|
||||||
DATABASE_URL=sqlite:///db.sqlite3
|
DATABASE_URL=sqlite:///db.sqlite3
|
||||||
# uncomment the next line if you want to use a postgres database
|
|
||||||
#DATABASE_URL=postgres://user:password@127.0.0.1:5432/sith
|
#DATABASE_URL=postgres://user:password@127.0.0.1:5432/sith
|
||||||
|
|
||||||
CACHE_URL=redis://127.0.0.1:6379/0
|
CACHE_URL=redis://127.0.0.1:6379/0
|
||||||
|
|
||||||
MEDIA_ROOT=data
|
|
||||||
STATIC_ROOT=static
|
|
||||||
|
|
||||||
DEFAULT_FROM_EMAIL=bibou@git.an
|
|
||||||
SITH_COM_EMAIL=bibou_com@git.an
|
|
||||||
|
|
||||||
HONEYPOT_VALUE=content
|
|
||||||
HONEYPOT_FIELD_NAME=body2
|
|
||||||
HONEYPOT_FIELD_NAME_FORUM=message2
|
|
||||||
|
|
||||||
EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
|
|
||||||
EMAIL_HOST=localhost
|
|
||||||
EMAIL_PORT=25
|
|
||||||
|
|
||||||
SITH_URL=127.0.0.1:8000
|
|
||||||
SITH_NAME="AE UTBM"
|
|
||||||
|
|
||||||
SITH_MAIN_CLUB_ID=1
|
|
||||||
|
|
||||||
SITH_GROUP_ROOT_ID=1
|
|
||||||
SITH_GROUP_PUBLIC_ID=2
|
|
||||||
SITH_GROUP_SUBSCRIBERS_ID=3
|
|
||||||
SITH_GROUP_OLD_SUBSCRIBERS_ID=4
|
|
||||||
SITH_GROUP_ACCOUNTING_ADMIN_ID=5
|
|
||||||
SITH_GROUP_COM_ADMIN_ID=6
|
|
||||||
SITH_GROUP_COUNTER_ADMIN_ID=7
|
|
||||||
SITH_GROUP_SAS_ADMIN_ID=8
|
|
||||||
SITH_GROUP_FORUM_ADMIN_ID=9
|
|
||||||
SITH_GROUP_PEDAGOGY_ADMIN_ID=10
|
|
||||||
|
|
||||||
SITH_GROUP_BANNED_ALCOHOL_ID=11
|
|
||||||
SITH_GROUP_BANNED_COUNTER_ID=12
|
|
||||||
SITH_GROUP_BANNED_SUBSCRIPTION_ID=13
|
|
||||||
|
|
||||||
SITH_CLUB_REFOUND_ID=89
|
|
||||||
SITH_COUNTER_REFOUND_ID=38
|
|
||||||
SITH_PRODUCT_REFOUND_ID=5
|
|
||||||
|
|
||||||
# Counter
|
|
||||||
|
|
||||||
SITH_COUNTER_ACCOUNT_DUMP_ID=39
|
|
||||||
|
|
||||||
# Defines which product type is the refilling type, and thus increases the account amount
|
|
||||||
SITH_COUNTER_PRODUCTTYPE_REFILLING=3
|
|
||||||
|
|
||||||
SITH_ECOCUP_CONS=1152
|
|
||||||
SITH_ECOCUP_DECO=1151
|
|
||||||
|
|
||||||
# Defines which product is the one year subscription and which one is the six month subscription
|
|
||||||
SITH_PRODUCT_SUBSCRIPTION_ONE_SEMESTER=1
|
|
||||||
SITH_PRODUCT_SUBSCRIPTION_TWO_SEMESTERS=2
|
|
||||||
SITH_PRODUCTTYPE_SUBSCRIPTION=2
|
|
||||||
|
|
||||||
# Defines which clubs let its members the ability to see users subscription history
|
|
||||||
SITH_CAN_CREATE_SUBSCRIPTION_HISTORY=1
|
|
||||||
SITH_CAN_READ_SUBSCRIPTION_HISTORY=1
|
|
||||||
|
|
||||||
# SAS variables
|
|
||||||
SITH_SAS_ROOT_DIR_ID=4
|
|
||||||
|
|
||||||
# ET variables
|
|
||||||
SITH_EBOUTIC_CB_ENABLED=true
|
|
||||||
SITH_EBOUTIC_ET_URL="https://preprod-tpeweb.e-transactions.fr/cgi/MYchoix_pagepaiement.cgi"
|
|
||||||
SITH_EBOUTIC_PBX_SITE=1999888
|
|
||||||
SITH_EBOUTIC_PBX_RANG=32
|
|
||||||
SITH_EBOUTIC_PBX_IDENTIFIANT=2
|
|
||||||
SITH_EBOUTIC_HMAC_KEY=0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
|
|
||||||
SITH_EBOUTIC_PUB_KEY_PATH=sith/et_keys/pubkey.pem
|
|
||||||
|
|
||||||
SITH_MAILING_FETCH_KEY=IloveMails
|
|
||||||
SENTRY_DSN=
|
|
||||||
SENTRY_ENV=production
|
|
@ -8,7 +8,7 @@ Cette variable est composée d'un lien complet vers votre projet sentry.
|
|||||||
## Récupérer les statiques
|
## Récupérer les statiques
|
||||||
|
|
||||||
Nous utilisons du SCSS dans le projet.
|
Nous utilisons du SCSS dans le projet.
|
||||||
En environnement de développement (`DEBUG=true`),
|
En environnement de développement (`SITH_DEBUG=true`),
|
||||||
le SCSS est compilé à chaque fois que le fichier est demandé.
|
le SCSS est compilé à chaque fois que le fichier est demandé.
|
||||||
Pour la production, le projet considère
|
Pour la production, le projet considère
|
||||||
que chacun des fichiers est déjà compilé.
|
que chacun des fichiers est déjà compilé.
|
||||||
|
@ -212,7 +212,7 @@ Puis lancez ou relancez nginx :
|
|||||||
sudo systemctl restart nginx
|
sudo systemctl restart nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
Dans votre `.env`, remplacez `DEBUG=true` par `DEBUG=false`.
|
Dans votre `.env`, remplacez `SITH_DEBUG=true` par `SITH_DEBUG=false`.
|
||||||
|
|
||||||
Enfin, démarrez le serveur Django :
|
Enfin, démarrez le serveur Django :
|
||||||
|
|
||||||
@ -224,7 +224,7 @@ uv run ./manage.py runserver 8001
|
|||||||
Et c'est bon, votre reverse-proxy est prêt à tourner devant votre serveur.
|
Et c'est bon, votre reverse-proxy est prêt à tourner devant votre serveur.
|
||||||
Nginx écoutera sur le port 8000.
|
Nginx écoutera sur le port 8000.
|
||||||
Toutes les requêtes vers des fichiers statiques et les medias publiques
|
Toutes les requêtes vers des fichiers statiques et les medias publiques
|
||||||
seront seront servies directement par nginx.
|
seront servies directement par nginx.
|
||||||
Toutes les autres requêtes seront transmises au serveur django.
|
Toutes les autres requêtes seront transmises au serveur django.
|
||||||
|
|
||||||
|
|
||||||
@ -238,3 +238,64 @@ un cron pour la mettre à jour au moins une fois par jour.
|
|||||||
```bash
|
```bash
|
||||||
python manage.py update_spam_database
|
python manage.py update_spam_database
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Personnaliser l'environnement
|
||||||
|
|
||||||
|
Le site utilise beaucoup de variables configurables via l'environnement.
|
||||||
|
Cependant, pour des raisons de maintenabilité et de simplicité
|
||||||
|
pour les nouveaux développeurs, nous n'avons mis dans le fichier
|
||||||
|
`.env.example` que celles qui peuvent nécessiter d'être fréquemment modifiées
|
||||||
|
(par exemple, l'url de connexion à la db, ou l'activation du mode debug).
|
||||||
|
|
||||||
|
Cependant, il en existe beaucoup d'autres, que vous pouvez trouver
|
||||||
|
dans le `settings.py` en recherchant `env.`
|
||||||
|
(avec `grep` ou avec un ++ctrl+f++ dans votre éditeur).
|
||||||
|
|
||||||
|
Si le besoin de les modifier se présente, c'est chose possible.
|
||||||
|
Il suffit de rajouter la paire clef-valeur correspondante dans le `.env`.
|
||||||
|
|
||||||
|
!!!tip
|
||||||
|
|
||||||
|
Si vous utilisez nushell,
|
||||||
|
vous pouvez automatiser le processus avec
|
||||||
|
avec le script suivant, qui va parser le `settings.py`
|
||||||
|
pour récupérer toutes les variables d'environnement qui ne sont pas
|
||||||
|
définies dans le .env puis va les rajouter :
|
||||||
|
|
||||||
|
```nu
|
||||||
|
# si le fichier .env n'existe pas, on le crée
|
||||||
|
if not (".env" | path exists) {
|
||||||
|
cp .env.example .env
|
||||||
|
}
|
||||||
|
|
||||||
|
# puis on récupère les variables d'environnement déjà existantes
|
||||||
|
let existing = open .env
|
||||||
|
|
||||||
|
# on récupère toutes les variables d'environnement utilisées
|
||||||
|
# dans le settings.py qui ne sont pas encore définies dans le .env,
|
||||||
|
# on les convertit dans un format .env,
|
||||||
|
# puis on les ajoute à la fin du .env
|
||||||
|
let regex = '(env\.)(?<method>\w+)\(\s*"(?<env_name>\w+)"(\s*(, default=)(?<value>.+))?\s*\)';
|
||||||
|
let content = open sith/settings.py;
|
||||||
|
let vars = $content
|
||||||
|
| parse --regex $regex
|
||||||
|
| filter { |i| $i.env_name not-in $existing }
|
||||||
|
| each { |i|
|
||||||
|
let parsed_value = match [$i.method, $i.value] {
|
||||||
|
["str", "None"] => ""
|
||||||
|
["bool", $val] => ($val | str downcase)
|
||||||
|
["list", $val] => ($val | str trim -c '[' | str trim -c ']')
|
||||||
|
["path", $val] => ($val | str replace 'BASE_DIR / "' $'"(pwd)/')
|
||||||
|
[_, $val] => $val
|
||||||
|
}
|
||||||
|
$"($i.env_name)=($parsed_value)"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($vars | is-not-empty) {
|
||||||
|
# on ajoute les nouvelles valeurs,
|
||||||
|
# en mettant une ligne vide de séparation avec les anciennes
|
||||||
|
["", ...$vars] | save --append .env
|
||||||
|
}
|
||||||
|
|
||||||
|
print $"($vars | length) values added to .env"
|
||||||
|
```
|
@ -157,6 +157,7 @@ markdown_extensions:
|
|||||||
- md_in_html
|
- md_in_html
|
||||||
- pymdownx.details
|
- pymdownx.details
|
||||||
- pymdownx.inlinehilite
|
- pymdownx.inlinehilite
|
||||||
|
- pymdownx.keys
|
||||||
- pymdownx.superfences:
|
- pymdownx.superfences:
|
||||||
custom_fences:
|
custom_fences:
|
||||||
- name: mermaid
|
- name: mermaid
|
||||||
|
@ -59,7 +59,7 @@ BASE_DIR = Path(__file__).parent.parent.resolve()
|
|||||||
SECRET_KEY = env.str("SECRET_KEY")
|
SECRET_KEY = env.str("SECRET_KEY")
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = env.bool("DEBUG", default=False)
|
DEBUG = env.bool("SITH_DEBUG", default=False)
|
||||||
TESTING = "pytest" in sys.modules
|
TESTING = "pytest" in sys.modules
|
||||||
INTERNAL_IPS = ["127.0.0.1"]
|
INTERNAL_IPS = ["127.0.0.1"]
|
||||||
|
|
||||||
@ -711,7 +711,7 @@ SITH_MAILING_FETCH_KEY = env.str("SITH_MAILING_FETCH_KEY", default="ILoveMails")
|
|||||||
|
|
||||||
SITH_GIFT_LIST = [("AE Tee-shirt", _("AE tee-shirt"))]
|
SITH_GIFT_LIST = [("AE Tee-shirt", _("AE tee-shirt"))]
|
||||||
|
|
||||||
SENTRY_DSN = env.str("SENRY_DSN", default=None)
|
SENTRY_DSN = env.str("SENTRY_DSN", default=None)
|
||||||
SENTRY_ENV = env.str("SENTRY_ENV", default="production")
|
SENTRY_ENV = env.str("SENTRY_ENV", default="production")
|
||||||
|
|
||||||
TOXIC_DOMAINS_PROVIDERS = [
|
TOXIC_DOMAINS_PROVIDERS = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user