Skip to main content

Variables d'environnement

Copiez .env.example en .env.local (dev local) ou .env (Docker Compose) et adaptez les valeurs.

Base de données

VariableDéfautRequisDescription
POSTGRES_DBpatrimoDocker uniquementNom de la base PostgreSQL
POSTGRES_USERpatrimoDocker uniquementUtilisateur PostgreSQL
POSTGRES_PASSWORDMot de passe PostgreSQL
DATABASE_URLURL 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)

VariableDéfautRequisDescription
AUTH_SECRETClé de signature JWT (≥ 32 octets aléatoires)
AUTH_URLhttp://localhost:3000✅ prodURL 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 en production

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.

VariableDéfautRequisDescription
AUTHENTIK_CLIENT_IDIdentifiant du client OAuth2/OIDC créé dans Authentik
AUTHENTIK_CLIENT_SECRETSecret associé au client Authentik
AUTHENTIK_ISSUERURL de l'issuer OIDC Authentik

Format de AUTHENTIK_ISSUER :

https://auth.ton-domaine.com/application/o/patrimo/

Comment obtenir ces valeurs depuis Authentik

  1. Ouvrez l'interface d'administration Authentik (https://auth.ton-domaine.com/if/admin/).
  2. Allez dans Applications > Providers > Créer > choisissez OAuth2/OpenID Provider.
  3. 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
  4. Après création, relevez Client ID et Client Secret.
  5. Allez dans Applications > Créer > associez le provider créé à une nouvelle application patrimo.
  6. L'Issuer URL est visible dans l'onglet du provider, sous la forme https://auth.ton-domaine.com/application/o/patrimo/.
Développement local sans Authentik

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)

VariableDéfautRequisDescription
GEMINI_API_KEY""NonClé 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)

VariableDéfautRequisDescription
FX_CACHE_TTL3600NonDuré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.

V1 — FX non implémenté

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 :

VariableValeur CI
DATABASE_URLpostgresql://patrimo:patrimo@localhost:5432/patrimo_test
AUTH_SECRETci-test-secret-not-real
AUTH_URLhttp://localhost:3000
NEXT_TELEMETRY_DISABLED1

Voir aussi