Variables d'environnement¶
Toutes les variables sont documentées dans le fichier .env.example à la racine du dépôt.
Les valeurs sensibles ne doivent jamais être commitées.
Backend (apps/backend)¶
| Variable | Requis | Exemple / défaut | Description |
|---|---|---|---|
NODE_ENV |
non | production |
Environnement d'exécution. |
PORT |
non | 4000 |
Port exposé au reverse-proxy. |
OIDC_ISSUER |
oui | https://auth.mesmy.fr |
Issuer OIDC (identité du SSO). |
PORTAL_URL |
oui | https://apps.mesmy.fr |
Origine du portail (CORS + liens emails). |
COOKIE_DOMAIN |
oui | .mesmy.fr |
Domaine de partage des cookies. |
DATABASE_URL |
oui | postgresql://mesmy:…@postgres:5432/mesmy |
Connexion PostgreSQL. |
REDIS_URL |
oui | redis://redis:6379 |
Connexion Redis. |
OIDC_JWKS_PATH |
oui | /run/secrets/oidc-jwks.json |
Chemin du fichier JWKS (clés RS256). |
OIDC_COOKIE_KEYS |
oui (prod) | clé1,clé2 |
Clés de signature des cookies (rotation). |
APP_ENCRYPTION_KEY |
oui | base64 (32 octets) | Chiffre secrets clients OIDC et secrets TOTP. |
MAILJET_API_KEY |
oui (prod) | — | Clé API Mailjet. |
MAILJET_API_SECRET |
oui (prod) | — | Secret API Mailjet. |
MAIL_FROM_EMAIL |
non | no-reply@mesmy.fr |
Expéditeur des emails. |
MAIL_FROM_NAME |
non | MesMy |
Nom d'expéditeur. |
ARGON2_MEMORY_COST |
non | 19456 |
Coût mémoire Argon2id (KiB). |
ARGON2_TIME_COST |
non | 2 |
Itérations Argon2id. |
ARGON2_PARALLELISM |
non | 1 |
Parallélisme Argon2id. |
BOOTSTRAP_ADMIN_EMAIL |
non | — | Superadmin créé au db:seed. |
BOOTSTRAP_ADMIN_PASSWORD |
non | — | Mot de passe du superadmin de bootstrap. |
Clé de chiffrement
APP_ENCRYPTION_KEY doit être une clé de 32 octets encodée en base64. La perdre
rend illisibles les secrets clients et les secrets TOTP. Le backend refuse de démarrer
si elle est absente ou mal formée.
Frontend (apps/frontend)¶
| Variable | Requis | Exemple | Description |
|---|---|---|---|
NEXT_PUBLIC_API_URL |
oui | https://auth.mesmy.fr |
Base des appels API (côté navigateur). |
PostgreSQL (conteneur)¶
| Variable | Exemple |
|---|---|
POSTGRES_USER |
mesmy |
POSTGRES_PASSWORD |
(secret) |
POSTGRES_DB |
mesmy |
Générer les secrets¶
# APP_ENCRYPTION_KEY (32 octets base64)
openssl rand -base64 32
# Clés de cookies OIDC
openssl rand -hex 32
# JWKS (clés de signature RS256)
pnpm --filter @mesmy/backend jwks:generate ./oidc-jwks.json