Aller au contenu

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