Skip to content

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]