L’API et le worker lisent leur configuration dans l’environnement, une fois, au démarrage
(packages/core/src/config.ts). Avec docker-compose.prod.yml, placez-les dans un fichier
.env à côté de lui : le compose les transmet aux services. Une valeur vide vaut « non
définie ».
Les valeurs par défaut sont celles du développement ; NODE_ENV=production, que l’image pose
d’office, en change quelques-unes.
Variable Rôle DOMAINle domaine public, servi en HTTPS par Caddy (compose de production) SECRET_KEYla clé d’instance, 64 caractères hexadécimaux (openssl rand -hex 32) : chiffre les mots de passe des sources et les secrets d’intégration OPA_SECRETle secret placé dans le chemin de l’endpoint OPA appelé par Trino (openssl rand -hex 24) DB_PASSWORDle mot de passe du PostgreSQL du catalogue (compose de production)
SECRET_KEY
Sans elle, l’API refuse de démarrer en production. Une valeur qui n’est pas faite de 64
caractères hexadécimaux est acceptée et dérivée par SHA-256, mais préférez le format attendu.
La changer rend illisibles les secrets déjà enregistrés : générez-la une fois, sauvegardez-la
avec le catalogue.
Variable Défaut Rôle NODE_ENVdevelopmentproduction rend SECRET_KEY obligatoire et coupe par défaut la démo, le worker intégré et l’alias localhost de TrinoPUBLIC_URLhttp://localhost:3100 ; en production, https://$DOMAINl’adresse publique : liens de partage, retour OIDC ; https:// rend le cookie de session Secure SESSION_DAYS14durée d’une session, en jours MAX_ROWS2000lignes lues au plus par requête de l’interface QUERY_TIMEOUT_MS120000délai maximal d’une requête CACHE_TTL300durée du cache de résultats, en secondes, quand rien d’autre ne la fixe DEMO1 en développement, 0 en productioncrée l’instance de démonstration au premier démarrage INPROCESS_WORKER1 en développement, 0 en productionfait tourner le worker dans l’API
Variable Défaut Rôle DATABASE_URLpostgres://eodia:eodia@localhost:55435/eodiala base PostgreSQL du catalogue ; le compose de production la construit avec DB_PASSWORD DATABASE_SCHEMAeodiale schéma du catalogue dans cette base
Variable Défaut Rôle TRINO_URLhttp://localhost:58080 ; http://trino:8080 dans le composel’adresse de Trino TRINO_SERVICE_USEReodia-servicel’utilisateur Trino de l’application (catalogues, synchronisation), à qui l’endpoint OPA accorde tout TRINO_PASSWORD— le mot de passe Trino, si votre cluster exige une authentification TRINO_LOCALHOST_ALIAShost.docker.internal en développementle nom par lequel Trino, en conteneur, joint une base déclarée sur localhost OPA_URL— lue par Trino : l’adresse de l’endpoint OPA, http://api:4100/internal/opa/<secret> ; le compose la construit
Variable Défaut Rôle PASSWORD_LOGIN10 coupe la connexion par mot de passe : SSO seulOIDC_ISSUER— l’émetteur OpenID Connect ; active le SSO OIDC_CLIENT_ID— l’identifiant du client OIDC OIDC_CLIENT_SECRET— son secret, pour un client confidentiel OIDC_LABELSe connecter avec SSOle libellé du bouton de connexion OIDC_SCOPESopenid email profileles portées demandées OIDC_ATTRIBUTE_CLAIMS— les claims copiés en attributs, séparés par des virgules : region,departement OIDC_GROUPS_CLAIM— le claim qui porte les groupes à refléter
Voir Authentification unique .
Variable Défaut Rôle SMTP_URL— le serveur d’envoi, en URL de connexion SMTP : smtps://utilisateur:motdepasse@smtp.exemple.fr:465 SMTP_FROMeodia insights <noreply@localhost>l’expéditeur
Sans SMTP, aucun e-mail ne part : le lien d’une invitation s’affiche pour être transmis à la main.
Variable Défaut Rôle AI_PROVIDERanthropic si ANTHROPIC_API_KEY est définie, sinon openai si OPENAI_API_KEY l’est, sinon noneanthropic, openai, mistral, openai-compatible ou noneAI_API_KEYANTHROPIC_API_KEY, sinon OPENAI_API_KEYla clé du fournisseur AI_MODELclaude-sonnet-5-5 (Anthropic), mistral-large-latest (Mistral), gpt-4.1 (les autres)le modèle AI_BASE_URLl’adresse du fournisseur obligatoire pour openai-compatible AI_HOURLY_QUOTA60messages du copilot par personne et par heure AI_PROVIDER_SSL_VERIFYtruefalse : le certificat du fournisseur n’est pas vérifié — ses appels seulement
Voir Copilot .
Variable Défaut Lue par Rôle API_PORT, API_HOST4100, 0.0.0.0l’API son écoute WEB_PORT3100l’image (rôle web) l’écoute de l’interface API_URLhttp://localhost:4100l’interface (au build), le serveur MCP l’adresse de l’API MCP_PORT, MCP_HOST4200, 0.0.0.0le serveur MCP son écoute EODIA_URL, EODIA_TOKENhttp://localhost:4100, —le serveur MCP en stdio l’adresse de l’application et le jeton WITH_MCP— l’image (rôle all) 1 ajoute le serveur MCP au conteneur
Variable Défaut Rôle ACME_EMAIL— l’adresse de contact pour Let’s Encrypt IMAGEeodia-insights:latestl’image utilisée pour api, worker, web et mcp