Salta ai contenuti

Variabili d’ambiente

Vanno tutte nel file .env, accanto a docker-compose.yml, che docker compose legge (il modello completo e commentato è .env.example). Con docker run, passale con -e. Un valore vuoto equivale a «non definito».

VariabileRuolo
POSTGRES_PASSWORDpassword del container PostgreSQL
BASEDB_ENCRYPTION_KEYchiave dell’istanza: firma le sessioni, cifra i segreti. openssl rand -base64 32, una volta per tutte
VariabilePredefinitoRuolo
POSTGRES_USERbasedbruolo PostgreSQL
POSTGRES_DBbasedbdatabase PostgreSQL
POSTGRES_PORT5432porta pubblicata su 127.0.0.1
DATABASE_URLil container dbun tuo database PostgreSQL 16+
VariabilePredefinitoRuolo
BASEDB_MIGRATE1applica il catalogo su un database vuoto
BASEDB_BOOTSTRAP1prepara il primo amministratore
BASEDB_TENANTt4z56fqriferimento del tenant, negli URL dell’API
BASEDB_ADMIN_EMAIL—indirizzo del primo amministratore, creato all’avvio; se vuoto, lo crea la prima persona che apre l’interfaccia
BASEDB_ADMIN_PASSWORDgenerata, mostrata una voltacon BASEDB_ADMIN_EMAIL, la sua password; se definita, viene riapplicata all’amministratore a ogni avvio: da rimuovere dopo aver effettuato l’accesso
VariabilePredefinitoRuolo
BASEDB_OIDC_PROVIDERS—i fornitori proposti, separati da virgole: google,microsoft
BASEDB_OIDC_<NOM>_CLIENT_ID, _CLIENT_SECRET—l’applicazione registrata presso il fornitore
BASEDB_OIDC_<NOM>_ISSUERquello di google, gitlabl’emittente OpenID Connect
BASEDB_OIDC_<NOM>_LABEL, _SCOPESa seconda del fornitoreil nome del pulsante, gli scope richiesti
BASEDB_OIDC_<NOM>_SIGNUP—off: un primo accesso non crea un account

Vedi Account e accesso.

VariabilePredefinitoRuolo
BASEDB_PORT3000porta pubblicata su 127.0.0.1: l’interfaccia, /api e /mcp
BASEDB_VERSIONlatestil tag dell’immagine eodia/basedb
BASEDB_PUBLIC_URL—indirizzo pubblico di basedb, per il reindirizzamento OIDC
BASEDB_BASE_PATHil percorso di BASEDB_PUBLIC_URLil percorso sotto il quale basedb è servito dietro un gateway, /basedb per https://passerelle.example.com/basedb/; vedi Docker Compose
BASEDB_DOMAIN—il dominio servito in HTTPS dal proxy Caddy
BASEDB_ORIGINS—altri siti le cui pagine chiamano l’API dal browser, separati da virgole; non necessario per l’interfaccia di basedb, servita allo stesso indirizzo
BASEDB_API, BASEDB_MCP/, /mcpl’API e MCP visti dal browser; da impostare solo per lo stack di sviluppo (pnpm start)
VariabilePredefinitoRuolo
BASEDB_FILES_MAX_MB25dimensione massima di un file
BASEDB_S3_BUCKET—attiva l’archiviazione S3
BASEDB_S3_ENDPOINT—endpoint S3
BASEDB_S3_REGIONus-east-1regione
BASEDB_S3_ACCESS_KEY_ID, BASEDB_S3_SECRET_ACCESS_KEY—credenziali
BASEDB_S3_FORCE_PATH_STYLE10 per l’indirizzamento basato sull’host

Senza un server di invio, basedb non invia alcuna email. Con esso partono le notifiche rimaste dieci minuti senza essere lette (ognuno sceglie quali in Impostazioni › Notifiche), le email del passaggio Invia un’email delle automazioni, e il link di una password dimenticata. I link puntano a BASEDB_PUBLIC_URL; senza di essa, un’email non ne porta uno.

VariabilePredefinitoRuolo
BASEDB_SMTP_HOST—il server SMTP: quello della tua messaggeria o di un servizio di invio
BASEDB_SMTP_PORT587465 per una connessione cifrata fin da subito
BASEDB_SMTP_SECUREstarttls (tls sulla porta 465)none solo per un relay sulla stessa macchina: altrimenti la password passerebbe in chiaro
BASEDB_SMTP_USER, BASEDB_SMTP_PASSWORD—l’identificativo dell’account di invio, se ne richiede uno
BASEDB_MAIL_FROM—obbligatoria con BASEDB_SMTP_HOST: il mittente, basedb <no-reply@exemple.fr>

All’avvio, il log dice come stanno le cose: Courriels : SMTP smtp.exemple.fr:587 (starttls), expéditeur no-reply@exemple.fr. Un’email che il server rifiuta viene ripresa dopo 1, 5, 30, 120 e poi 360 minuti.

La vista Mappa posiziona un indirizzo grazie a un servizio di geocodifica: quello di OpenStreetMap (Nominatim) per impostazione predefinita, interrogato una volta per indirizzo, al massimo una richiesta al secondo, ogni risposta conservata. Il fondo della mappa è fatto di tessere che il browser di ogni lettore carica direttamente.

VariabilePredefinitoRuolo
BASEDB_GEOCODER_URLhttps://nominatim.openstreetmap.orgun altro servizio che parla lo stesso protocollo (un Nominatim tuo); off: nessuno, gli indirizzi non lasciano l’istanza e solo la latitudine e la longitudine posizionano le righe
BASEDB_MAP_TILESle tessere di OpenStreetMapun altro server di tessere, modello https://…/{z}/{x}/{y}.png
BASEDB_MAP_ATTRIBUTION© OpenStreetMapla dicitura richiesta da questo server, in basso a destra sulla mappa

All’avvio, il log dice quale servizio è impiegato: Géocodage : https://nominatim.openstreetmap.org.

VariabilePredefinitoRuolo
BASEDB_PDF_FONTSi font Noto dell’immagineuna tua cartella, montata nel container, che contiene NotoSans-Regular.ttf, -Bold, -Italic, -BoldItalic, e per il cinese, il giapponese e il coreano NotoSansCJK-Regular.ttc e -Bold.ttc
VariabilePredefinitoRuolo
BASEDB_TEMPLATES_URLil catalogo del sito pubblicoda dove l’istanza legge i modelli della sua galleria; off per non leggerne nessuno (i modelli integrati restano) — vedi Modelli
VariabilePredefinitoRuolo
BASEDB_AI_PROVIDER—openai, anthropic, mistral o openai_compatible (Azure, un gateway, un modello locale)
BASEDB_AI_MODEL—il modello
BASEDB_AI_API_KEY—la chiave (altrimenti OPENAI_API_KEY, ANTHROPIC_API_KEY, MISTRAL_API_KEY); facoltativa per openai_compatible
BASEDB_AI_BASE_URLl’indirizzo del fornitoreciò che precede /chat/completions (/messages per anthropic), parametri compresi; obbligatorio per openai_compatible — vedi Intelligenza artificiale
BASEDB_AI_HEADERS—intestazioni aggiunte a ogni chiamata, come oggetto JSON: {"api-key":"…"}
BASEDB_AI_PROVIDER_SSL_VERIFYtruefalse: il certificato TLS del fornitore non viene verificato — un gateway interno con certificato autofirmato; vedi Intelligenza artificiale
BASEDB_AI_QUOTA120chiamate interattive per ora e per tenant
BASEDB_AI_FIELD_QUOTA300calcoli dei campi IA per ora e per tenant
BASEDB_AI_WORKER10: nessun calcolo in background in questo processo
VariabilePredefinitoRuolo
BASEDB_WEBHOOK_ALLOW—i tuoi server interni, separati da virgole: un nome (chat.intra.example.com), un dominio e i suoi sottodomini (*.intra.example.com), un indirizzo o un intervallo (10.12.0.0/16)

Webhook, richieste HTTP delle automazioni e tabelle sincronizzate partono solo verso indirizzi pubblici in HTTPS. Una destinazione della lista viene accettata in più, indipendentemente dal suo indirizzo, dalla sua porta e dal suo schema — HTTP compreso. Una voce illeggibile impedisce l’avvio. Vedi Webhook.

Un’istanza aperta a tutti, come demo.basedb.eodia.com: la schermata di accesso precompila un account condiviso, il visitatore legge tutto e modifica ciò che esiste, ma non crea né elimina nulla — database, tabella, riga, file, commento, account, token, link —, e l’IA risponde che non fa parte della demo. La console SQL vi si limita a leggere. Riportare il database allo stato iniziale ogni notte resta a tuo carico.

VariabilePredefinitoRuolo
BASEDB_DEMO—1: l’istanza diventa una demo pubblica
BASEDB_DEMO_ACCOUNTS—un account per lingua, separati da virgole: fr=demo@demo.com,en=demo-en@demo.com; la schermata di accesso precompila quello della sua lingua, altrimenti l’inglese, altrimenti il primo, e propone gli altri. Crea questi account, ciascuno con il proprio progetto, prima di attivare la demo: rifiuta le creazioni a tutti, amministratore compreso
BASEDB_DEMO_PASSWORD—con BASEDB_DEMO_ACCOUNTS, la loro password, la stessa per tutti, pubblicata insieme a loro

Senza BASEDB_DEMO_ACCOUNTS, l’account condiviso è l’amministratore indicato da BASEDB_ADMIN_EMAIL e BASEDB_ADMIN_PASSWORD. Un indirizzo della demo accede con la password pubblicata, qualunque cosa si digiti: tentativi sbagliati non la bloccano per tutti.

VariabileRuolo
BASEDB_DEV_MAIL=1mostra le email nei log invece di inviarle
BASEDB_WEBHOOK_DEV=1consente i webhook verso HTTP e gli indirizzi locali

basedb è un software libero di Eodia, studio di software AI-native.