Configuration¶
Toute la configuration runtime est injectée via des variables d'environnement
chargées depuis backend.env et .env.
Référence complète en anglais
La référence complète de toutes les variables est disponible en anglais : Variables d'environnement →
Variables essentielles (backend.env)¶
Sécurité et authentification¶
| Variable | Type | Obligatoire | Description |
|---|---|---|---|
JWT_SECRET_KEY |
string | Oui | Clé de signature HMAC-SHA256 pour les tokens JWT. Générer avec openssl rand -hex 32. L'application refuse de démarrer si vide en production. |
JWT_EXPIRE_MINUTES |
integer | Non | Durée de vie des tokens en minutes (défaut : 60). |
ADMIN_USERNAME |
string | Non | Nom d'utilisateur du compte admin initial (défaut : admin). |
ADMIN_PASSWORD_HASH |
string | Oui | Hash bcrypt du mot de passe admin. Chaque $ doit être doublé en $$ dans le fichier. |
CORS_ORIGINS |
string | Non | Origines CORS autorisées (ex. https://repod.example.com). |
TRUSTED_PROXIES |
string | Non | IPs de confiance pour X-Forwarded-For (défaut : 127.0.0.1,172.16.0.0/12). |
Comportement runtime¶
| Variable | Valeurs | Description |
|---|---|---|
ENV |
development / production |
production active le mode strict (refuse JWT_SECRET_KEY faible, désactive Swagger). |
APP_VERSION |
string | Version retournée par /health. |
Variables frontend (.env, build-time)¶
Build-time uniquement
Les variables REACT_APP_* sont intégrées dans le bundle JavaScript au moment
du docker build. Toute modification nécessite une reconstruction de l'image.
| Variable | Défaut | Description |
|---|---|---|
REACT_APP_API_URL |
http://localhost:8000 |
URL publique du backend. En production derrière un reverse proxy : https://repod.example.com/api. |
REACT_APP_REPO_URL |
http://localhost:80 |
URL du serveur de dépôts affichée aux utilisateurs. |
BIND_HOST |
0.0.0.0 |
Interface d'écoute des conteneurs. Mettre 127.0.0.1 en production derrière un reverse proxy. |
Exemple backend.env de production¶
backend.env
# ── Sécurité ──────────────────────────────────────────────────────────────────
JWT_SECRET_KEY=a3f8c2e1d4b7a9f0e2c5d8b1a4f7e0c3d6b9a2f5e8c1d4b7a0f3e6c9d2b5a8f1
JWT_EXPIRE_MINUTES=60
ADMIN_USERNAME=admin
ADMIN_PASSWORD_HASH=$$2b$$12$$exampleHashHere...
# ── Environnement ─────────────────────────────────────────────────────────────
ENV=production
APP_VERSION=v1.2.0
# ── Reverse proxy ─────────────────────────────────────────────────────────────
TRUSTED_PROXIES=127.0.0.1
CORS_ORIGINS=https://repod.example.com
# ── LDAP (optionnel) ──────────────────────────────────────────────────────────
LDAP_URL=ldaps://dc.example.com:636
LDAP_BIND_DN=CN=repod-svc,OU=ServiceAccounts,DC=example,DC=com
LDAP_BIND_PASSWORD=mot-de-passe-service
LDAP_BASE_DN=OU=Users,DC=example,DC=com
LDAP_USER_ATTR=sAMAccountName
# ── SMTP (optionnel) ──────────────────────────────────────────────────────────
SMTP_HOST=smtp.example.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=mot-de-passe-smtp
[email protected]