Aller au contenu

Variables d’environnement

Toutes se placent dans le fichier .env, à côté de docker-compose.yml, que docker compose lit (le modèle complet et commenté est .env.example). Avec docker run, passez-les en -e. Une valeur vide vaut « non défini ».

VariableRôle
POSTGRES_PASSWORDmot de passe du conteneur PostgreSQL
BASEDB_ENCRYPTION_KEYclé d’instance : signe les sessions, chiffre les secrets. openssl rand -base64 32, une fois pour toutes
VariableDéfautRôle
POSTGRES_USERbasedbrôle PostgreSQL
POSTGRES_DBbasedbbase PostgreSQL
POSTGRES_PORT5432port publié sur 127.0.0.1
DATABASE_URLle conteneur dbune base PostgreSQL 16+ à vous
VariableDéfautRôle
BASEDB_MIGRATE1applique le catalogue sur une base vide
BASEDB_BOOTSTRAP1prépare le premier administrateur
BASEDB_TENANTt4z56fqréférence du tenant, dans les URL de l’API
BASEDB_ADMIN_EMAIL—adresse du premier administrateur, créé au démarrage ; vide, la première personne qui ouvre l’interface le crée
BASEDB_ADMIN_PASSWORDgénéré, affiché une foisavec BASEDB_ADMIN_EMAIL, son mot de passe ; défini, il est réappliqué à l’administrateur à chaque démarrage : à retirer une fois connecté
VariableDéfautRôle
BASEDB_OIDC_PROVIDERS—les fournisseurs proposés, séparés par des virgules : google,microsoft
BASEDB_OIDC_<NOM>_CLIENT_ID, _CLIENT_SECRET—l’application enregistrée chez le fournisseur
BASEDB_OIDC_<NOM>_ISSUERcelui de google, gitlabl’émetteur OpenID Connect
BASEDB_OIDC_<NOM>_LABEL, _SCOPESselon le fournisseurle nom du bouton, les portées demandées
BASEDB_OIDC_<NOM>_SIGNUP—off : une première connexion ne crée pas de compte

Voir Comptes et connexion.

VariableDéfautRôle
BASEDB_PORT3000port publié sur 127.0.0.1 : l’interface, /api et /mcp
BASEDB_VERSIONlatestl’étiquette de l’image eodia/basedb
BASEDB_PUBLIC_URL—adresse publique de basedb, pour le retour OIDC
BASEDB_BASE_PATHle chemin de BASEDB_PUBLIC_URLle chemin sous lequel basedb est servi derrière une passerelle, /basedb pour https://passerelle.example.com/basedb/ ; voir Docker Compose
BASEDB_DOMAIN—le domaine servi en HTTPS par le proxy Caddy
BASEDB_ORIGINS—d’autres sites dont les pages appellent l’API depuis le navigateur, séparés par des virgules ; inutile pour l’interface de basedb, servie à la même adresse
BASEDB_API, BASEDB_MCP/, /mcpl’API et le MCP vus du navigateur ; à ne régler que pour la pile de développement (pnpm start)
VariableDéfautRôle
BASEDB_FILES_MAX_MB25taille maximale d’un fichier
BASEDB_S3_BUCKET—active le stockage S3
BASEDB_S3_ENDPOINT—point d’accès S3
BASEDB_S3_REGIONus-east-1région
BASEDB_S3_ACCESS_KEY_ID, BASEDB_S3_SECRET_ACCESS_KEY—identifiants
BASEDB_S3_FORCE_PATH_STYLE10 pour l’adressage par hôte

Sans serveur d’envoi, basedb n’envoie aucun courriel. Avec lui partent les notifications restées dix minutes sans être lues (chacun choisit lesquelles dans Paramètres › Notifications), les courriels de l’étape Envoyer un courriel des automatisations, et le lien d’un mot de passe oublié. Les liens pointent vers BASEDB_PUBLIC_URL ; sans elle, un courriel n’en porte pas.

VariableDéfautRôle
BASEDB_SMTP_HOST—le serveur SMTP : celui de votre messagerie ou d’un service d’envoi
BASEDB_SMTP_PORT587465 pour une connexion chiffrée d’emblée
BASEDB_SMTP_SECUREstarttls (tls sur le port 465)none seulement pour un relais sur la même machine : sinon le mot de passe passerait en clair
BASEDB_SMTP_USER, BASEDB_SMTP_PASSWORD—l’identifiant du compte d’envoi, s’il en demande un
BASEDB_MAIL_FROM—obligatoire avec BASEDB_SMTP_HOST : l’expéditeur, basedb <no-reply@exemple.fr>

Au démarrage, le journal dit ce qu’il en est : Courriels : SMTP smtp.exemple.fr:587 (starttls), expéditeur no-reply@exemple.fr. Un courriel que le serveur refuse est repris 1, 5, 30, 120 puis 360 minutes plus tard.

La vue Carte place une adresse grâce à un service de géocodage : celui d’OpenStreetMap (Nominatim) par défaut, interrogé une fois par adresse, une requête par seconde au plus, chaque réponse gardée. Le fond de carte est fait de tuiles que le navigateur de chaque lecteur charge directement.

VariableDéfautRôle
BASEDB_GEOCODER_URLhttps://nominatim.openstreetmap.orgun autre service qui parle le même protocole (un Nominatim à vous) ; off : aucun, les adresses ne quittent pas l’instance et seules la latitude et la longitude placent les lignes
BASEDB_MAP_TILESles tuiles d’OpenStreetMapun autre serveur de tuiles, modèle https://…/{z}/{x}/{y}.png
BASEDB_MAP_ATTRIBUTION© OpenStreetMapla mention que ce serveur demande, en bas à droite de la carte

Au démarrage, le journal dit quel service est employé : Géocodage : https://nominatim.openstreetmap.org.

VariableDéfautRôle
BASEDB_PDF_FONTSles polices Noto de l’imageun dossier à vous, monté dans le conteneur, qui tient NotoSans-Regular.ttf, -Bold, -Italic, -BoldItalic, et pour le chinois, le japonais et le coréen NotoSansCJK-Regular.ttc et -Bold.ttc
VariableDéfautRôle
BASEDB_TEMPLATES_URLle catalogue du site publicd’où l’instance lit les modèles de sa galerie ; off pour n’en lire aucun (les modèles intégrés restent) — voir Modèles
VariableDéfautRôle
BASEDB_AI_PROVIDER—openai, anthropic, mistral ou openai_compatible (Azure, une passerelle, un modèle local)
BASEDB_AI_MODEL—le modèle
BASEDB_AI_API_KEY—la clé (sinon OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY) ; facultative pour openai_compatible
BASEDB_AI_BASE_URLl’adresse du fournisseurce qui précède /chat/completions (/messages pour anthropic), paramètres compris ; obligatoire pour openai_compatible — voir Intelligence artificielle
BASEDB_AI_HEADERS—des en-têtes ajoutés à chaque appel, en objet JSON : {"api-key":"…"}
BASEDB_AI_PROVIDER_SSL_VERIFYtruefalse : le certificat TLS du fournisseur n’est pas vérifié — une passerelle interne au certificat auto-signé ; voir Intelligence artificielle
BASEDB_AI_QUOTA120appels interactifs par heure et par tenant
BASEDB_AI_FIELD_QUOTA300calculs de champs IA par heure et par tenant
BASEDB_AI_WORKER10 : pas de calcul de fond dans ce processus
VariableDéfautRôle
BASEDB_WEBHOOK_ALLOW—vos serveurs internes, séparés par des virgules : un nom (chat.intra.example.com), un domaine et ses sous-domaines (*.intra.example.com), une adresse ou une plage (10.12.0.0/16)

Webhooks, requêtes HTTP des automatisations et tables synchronisées ne partent que vers des adresses publiques en HTTPS. Une cible de la liste est acceptée en plus, quels que soient son adresse, son port et son schéma — HTTP compris. Une entrée illisible empêche le démarrage. Voir Webhooks.

Une instance ouverte à tous, comme demo.basedb.eodia.com : l’écran de connexion préremplit un compte partagé, le visiteur lit tout et modifie ce qui existe, mais ne crée ni ne supprime rien — base, table, ligne, fichier, commentaire, compte, jeton, lien —, et l’IA répond qu’elle ne fait pas partie de la démo. La console SQL n’y fait que lire. Remettre la base en état chaque nuit reste à votre charge.

VariableDéfautRôle
BASEDB_DEMO—1 : l’instance devient une démo publique
BASEDB_DEMO_ACCOUNTS—un compte par langue, séparés par des virgules : fr=demo@demo.com,en=demo-en@demo.com ; l’écran de connexion préremplit celui de sa langue, sinon l’anglais, sinon le premier, et propose les autres. Créez ces comptes, chacun avec son projet, avant d’activer la démo : elle refuse les créations à tous, administrateur compris
BASEDB_DEMO_PASSWORD—avec BASEDB_DEMO_ACCOUNTS, leur mot de passe, le même pour tous, publié avec eux

Sans BASEDB_DEMO_ACCOUNTS, le compte partagé est l’administrateur que nomment BASEDB_ADMIN_EMAIL et BASEDB_ADMIN_PASSWORD. Une adresse de la démo se connecte avec le mot de passe publié, quoi qu’on tape : des essais faux ne la verrouillent pas pour tout le monde.

VariableRôle
BASEDB_DEV_MAIL=1affiche les courriels dans les journaux au lieu de les envoyer
BASEDB_WEBHOOK_DEV=1autorise les webhooks vers HTTP et les adresses locales

basedb est un logiciel libre d’Eodia, studio de logiciel IA-natif.