Variables d'environnement
Copiez .env.example en .env.local (dev local) ou .env (Docker Compose) et adaptez les valeurs.
Base de données
| Variable | Défaut | Requis | Description |
|---|---|---|---|
POSTGRES_DB | patrimo | Docker uniquement | Nom de la base PostgreSQL |
POSTGRES_USER | patrimo | Docker uniquement | Utilisateur PostgreSQL |
POSTGRES_PASSWORD | — | ✅ | Mot de passe PostgreSQL |
DATABASE_URL | — | ✅ | URL de connexion Prisma |
Format DATABASE_URL :
postgresql://<user>:<password>@<host>:<port>/<db>
En Docker Compose, l'URL est construite automatiquement :
postgresql://patrimo:<POSTGRES_PASSWORD>@db:5432/patrimo
Authentification (NextAuth v5)
| Variable | Défaut | Requis | Description |
|---|---|---|---|
AUTH_SECRET | — | ✅ | Clé de signature JWT (≥ 32 octets aléatoires) |
AUTH_URL | http://localhost:3000 | ✅ prod | URL publique de l'app |
ADMIN_EMAIL | — | ⚠️ | Email de l'utilisateur admin (utilisé par certains seeds) |
ADMIN_PASSWORD_HASH | — | ⚠️ | Hash bcrypt du mot de passe admin |
Générer AUTH_SECRET :
npm run generate-secret
# ou
openssl rand -base64 32
Générer ADMIN_PASSWORD_HASH :
npm run hash-password votre_mot_de_passe
AUTH_URL doit correspondre exactement à l'URL publique de l'application (avec https://). Une valeur incorrecte entraîne des redirections d'authentification cassées.
Authentik OIDC
Ces trois variables activent le provider Authentik (provider d'authentification principal). Sans elles, seul le formulaire credentials est disponible.
| Variable | Défaut | Requis | Description |
|---|---|---|---|
AUTHENTIK_CLIENT_ID | — | ✅ | Identifiant du client OAuth2/OIDC créé dans Authentik |
AUTHENTIK_CLIENT_SECRET | — | ✅ | Secret associé au client Authentik |
AUTHENTIK_ISSUER | — | ✅ | URL de l'issuer OIDC Authentik |
Format de AUTHENTIK_ISSUER :
https://auth.ton-domaine.com/application/o/patrimo/
Comment obtenir ces valeurs depuis Authentik
- Ouvrez l'interface d'administration Authentik (
https://auth.ton-domaine.com/if/admin/). - Allez dans Applications > Providers > Créer > choisissez OAuth2/OpenID Provider.
- Configurez le provider :
- Name :
patrimo - Client type :
Confidential - Redirect URIs :
{AUTH_URL}/api/auth/callback/authentik(ex.https://patrimo.ton-domaine.com/api/auth/callback/authentik) - Scopes :
openid,email,profile
- Name :
- Après création, relevez Client ID et Client Secret.
- Allez dans Applications > Créer > associez le provider créé à une nouvelle application
patrimo. - L'Issuer URL est visible dans l'onglet du provider, sous la forme
https://auth.ton-domaine.com/application/o/patrimo/.
En développement, vous pouvez omettre les variables AUTHENTIK_*. Le bouton Authentik sera affiché mais retournera une erreur de configuration — le formulaire credentials reste fonctionnel.
IA — Gemini (optionnel)
| Variable | Défaut | Requis | Description |
|---|---|---|---|
GEMINI_API_KEY | "" | Non | Clé API Google Gemini pour la catégorisation automatique |
Si GEMINI_API_KEY est vide, la catégorisation IA est désactivée — l'application fonctionne intégralement sans cette clé.
Taux de change (optionnel)
| Variable | Défaut | Requis | Description |
|---|---|---|---|
FX_CACHE_TTL | 3600 | Non | Durée du cache FX en secondes (1h par défaut) |
Les sources de taux (Frankfurter pour les devises fiat, CoinGecko pour les cryptos) sont publiques et ne nécessitent pas de clé API.
En V1, les taux de change ne sont pas appliqués. FX_CACHE_TTL est réservé pour la V2. Voir BR-FX-003.
Variables CI (GitHub Actions)
Ces variables sont définies directement dans le workflow .github/workflows/ci.yml et ne nécessitent pas de configuration manuelle :
| Variable | Valeur CI |
|---|---|
DATABASE_URL | postgresql://patrimo:patrimo@localhost:5432/patrimo_test |
AUTH_SECRET | ci-test-secret-not-real |
AUTH_URL | http://localhost:3000 |
NEXT_TELEMETRY_DISABLED | 1 |