Installation
Variabili d'ambiente di deployment
Variabili d'ambiente minime usate dalle guide di installazione, con link al riferimento completo.
Variabili d’ambiente di deployment
Questa pagina elenca le variabili di cui la maggior parte degli operatori ha bisogno durante l’installazione. Per il catalogo completo, vedi Riferimento variabili d’ambiente.
Variabili core richieste
| Variabile | Scopo |
|---|---|
DB_URL | URL JDBC per PostgreSQL, solitamente jdbc:postgresql://postgres:5432/quotenode all’interno di Docker Compose. |
DB_NAME | Nome del database PostgreSQL. |
DB_USERNAME | Utente applicativo PostgreSQL. |
DB_PASSWORD | Password PostgreSQL. Usa un valore casuale lungo. |
DB_ENCRYPTION_KEY | Chiave esadecimale di 64 caratteri per la cifratura a livello applicativo. Eseguine il backup in modo sicuro. |
TIMING_TOKEN_SECRET | Segreto HMAC per i controlli di sicurezza dei timing token. |
PUBLIC_LINK_PASSWORD_SESSION_SECRET | Segreto per le sessioni dei link pubblici protetti da password/PIN. |
CORS_ALLOWED_ORIGINS | Origini browser esatte autorizzate a chiamare il backend. |
Genera i segreti su Linux/macOS:
openssl rand -hex 32
openssl rand -base64 32
Variabili URL pubbliche
| Variabile | Scopo |
|---|---|
CORS_ALLOWED_ORIGINS | Deve corrispondere esattamente all’URL del browser, ad esempio https://crm.example.com. |
NOTIFICATIONS_PUBLIC_PREFERENCES_URL | URL pubblico per i link delle preferenze di notifica, ad esempio https://crm.example.com/notifications/preferences. |
DOMAIN | Usata dai deployment Docker Compose con proxy interno. Coolify gestisce normalmente i domini al di fuori dell’app. |
SERVICE_URL_FRONTEND | Variabile di compatibilita opzionale per template operatore e futura automazione di deployment; il file compose Coolify attuale non la consuma direttamente. Mantienila allineata con l’origine frontend se il tuo deployment la usa. |
Variabili email
| Variabile | Scopo |
|---|---|
SMTP_HOST | Hostname del server SMTP. |
SMTP_PORT | Porta SMTP, solitamente 587. |
SMTP_USERNAME | Username dell’account SMTP. |
SMTP_PASSWORD | Password SMTP o app password. |
SMTP_AUTH | Solitamente true per SMTP di produzione. |
SMTP_STARTTLS | Solitamente true per la porta 587. |
NOTIFICATIONS_ENABLED | Abilita le notifiche. |
NOTIFICATIONS_EMAIL_ENABLED | Abilita la consegna email per le notifiche. |
Variabili PDF, backup e sicurezza
| Variabile | Valore consigliato per beta | Note |
|---|---|---|
PDF_ENABLED | true | Richiede Gotenberg nello stack. |
FEATURE_2FA_ENABLED | true | Abilita i flussi di autenticazione a due fattori. |
SECURITY_BOT_DETECTION_ENABLED | true | Mantiene attive le protezioni bot sui link pubblici. |
SECURITY_TRUSTED_PROXIES | vuoto (rilevato automaticamente) | Peer reverse proxy attendibili aggiuntivi (IP/CIDR letterali e/o nomi host di servizio). Di norma lascialo vuoto: l’IP del client viene rilevato automaticamente dietro proxy interni (intervalli privati/loopback) e CDN come Cloudflare (tramite CF-Connecting-IP). Impostalo solo per un proxy insolito il cui peer di trasporto è un indirizzo pubblico. Le intestazioni di inoltro da un peer diretto (non interno) vengono sempre ignorate. Verifica la modalità del resolver in Amministrazione → Sicurezza → stato effettivo. |
SECURITY_IP_WHITELIST | vuoto | Whitelist IP dell’operatore opzionale (IP/CIDR separati da virgole). Quando attiva, protegge l’intera superficie di amministrazione, comprese le schermate di accesso e 2FA. Prevale sull’impostazione nell’app e viene applicata all’avvio (nessun rollback automatico — verifica che il tuo indirizzo sia incluso). |
SECURITY_IP_WHITELIST_FORCE_DISABLE | false | Emergenza: imposta true + riavvio per ripristinare da un blocco della whitelist IP (anche quando non riesci ad accedere). Solo ENV. |
SECURITY_IP_WHITELIST_CONFIRMATION_WINDOW_SECONDS | 120 | Per quanto tempo un’attivazione/restringimento nell’app resta in attesa prima di tornare automaticamente alla lista precedente se la sessione non riconferma (sicurezza anti-blocco). Non si applica alla variabile ENV sopra. |
BACKUP_ENABLED | true per produzione, opzionale per la prima prova locale | Usa con un processo di restore testato. |
BACKUP_CRON | 0 0 2 * * * | Ogni giorno alle 02:00 per impostazione predefinita. |
GEOIP_ENABLED | false | Solo interruttore dell’applicazione per Paese — anche interruttore di emergenza. Il database viene caricato e aggiornato in modo indipendente (vedi GEOIP_AUTO_UPDATE), quindi può essere pronto mentre l’applicazione è disattivata. Imposta false + riavvio per ripristinare da un blocco per Paese di GeoIP — questo disattiva l’applicazione in modo affidabile, indipendentemente dalla presenza di un database. |
SECURITY_GEOIP_ALLOWED_COUNTRIES | vuoto | Lista di Paesi consentiti ISO 3166-1 alpha-2 (es. PL,DE); in maiuscolo e validata. Vuoto = nessuna restrizione. |
LOG_LEVEL | INFO per il primo deploy, riduci più tardi se necessario | Usa la diagnostica admin per l’escalation temporanea. |
Variabili di release check
| Variabile | Scopo |
|---|---|
VITE_RELEASE_CHECK_ENABLED | Abilita i controlli upstream release solo per admin. |
VITE_RELEASE_MANIFEST_URL | Defaulta a https://quotenode.dev/releases/latest.json. |
APP_VERSION | Versione di rilascio o tag dell’immagine. Può essere vuoto per i deployment da sorgente. |
APP_CHANNEL | alpha, beta, rc, dev o stable. |
APP_COMMIT_SHA | Commit SHA incorporato nei metadati di build quando disponibile. |
APP_BUILD_TIME | Timestamp di build. |
APP_BUILD_NUMBER | Numero di build CI. |
APP_SOURCE_REF | Branch o tag sorgente. |
APP_IMAGE_TAG | Tag immagine selezionato dal deployment. |
Sicurezza della licenza
Non abilitare mai il bypass della firma in un deployment reale:
LICENSE_SKIP_SIGNATURE_CHECK=false
Imposta questo esplicitamente a false in ambienti di produzione e beta. Il file compose defaulta a false quando omesso, ma i deployment reali non dovrebbero fare affidamento su un default implicito per un controllo di sicurezza della licenza. Usa true solo in ambienti di sviluppo locali usa e getta.