Vai al contenuto principale

Variabili e segreti

Variabili d'ambiente e segreti utilizzati per configurare Sync-in.


🌱 Variabili d'ambiente del server​

Durante l'inizializzazione​

  • SKIP_INIT: ignora la fase di inizializzazione (migrazione del database, creazione dell'account amministratore, aggiornamento dei permessi e così via). Questa soluzione eccezionale deve essere utilizzata soltanto per evitare migrazioni simultanee tra repliche o quando l'inizializzazione è gestita da un'attività di distribuzione dedicata. In tutti gli altri casi, compresi gli aggiornamenti, non attivare SKIP_INIT: l'inizializzazione può essere indispensabile per applicare le migrazioni e la configurazione richieste dalla nuova versione.
  • INIT_ADMIN: se definita, indipendentemente dal suo valore, crea l'account amministratore durante l'inizializzazione, qualora non esista già.
  • INIT_ADMIN_LOGIN: nome utente dell'account amministratore da creare durante l'inizializzazione.
  • INIT_ADMIN_PASSWORD: password dell'account amministratore da creare durante l'inizializzazione.
  • PUID: definisce l'identificatore utente (UID) utilizzato dal container, utile per i permessi dei file.
  • PGID: definisce l'identificatore gruppo (GID) utilizzato dal container, utile per l'accesso ai volumi condivisi.
  • FORCE_PERMISSIONS: se impostata su true, applica ricorsivamente i permessi (PUID, PGID, directory: 750, file: 640) al volume /app/data.
  • SYNC_IN_HEALTHCHECK_URL: definisce l'URL interrogato dall'healthcheck all'interno del container. Il valore predefinito è http://127.0.0.1:8080/healthz/ready. Modificarlo soltanto se cambia l'indirizzo interno, la porta interna o il percorso del server. Non modificarlo quando cambia unicamente la porta pubblicata sull'host.

Quando si modifica un file Docker Compose, preferire la sintassi di mapping:

environment:
INIT_ADMIN: 'true'
INIT_ADMIN_LOGIN: 'sync-in-admin'
INIT_ADMIN_PASSWORD: 'password robusta'

Sync-in rimuove una coppia esterna corrispondente di virgolette singole o doppie da INIT_ADMIN_LOGIN e INIT_ADMIN_PASSWORD. Le virgolette nidificate o non corrispondenti vengono mantenute.

informazioni

Queste variabili non sono destinate all'uso con i segreti.

Durante l'esecuzione​

I parametri scalari di configurazione del server Sync-in possono essere definiti tramite variabili d'ambiente con il prefisso SYNCIN_; consultare la sezione corrispondente.

Percorso dati Docker fisso

L'entrypoint Docker imposta sempre SYNCIN_APPLICATIONS_FILES_DATAPATH=/app/data, sostituendo qualsiasi valore fornito al container. Configurare la posizione di archiviazione tramite il volume montato in /app/data. L'impostazione dataPath resta obbligatoria per le installazioni al di fuori di Docker.


🔐 Gestione dei segreti​

Docker Secrets, soprattutto in un ambiente Swarm o Compose, consentono di archiviare in modo sicuro dati sensibili, come password e chiavi API, montandoli nei container sotto forma di file, in genere nella directory /run/secrets/<nome_del_segreto>.

Per progettazione, Docker non converte mai direttamente questi segreti in variabili d'ambiente, così da limitare il rischio di esposizione, ad esempio tramite docker inspect o variabili d'ambiente accessibili nel processo. L'immagine Docker di Sync-in, come molte immagini ufficiali (MySQL, PostgreSQL e altre), adotta e supporta la convenzione *_FILE.

Ad esempio, invece di definire direttamente la variabile d'ambiente SYNCIN_MYSQL_URL, si consiglia di utilizzare SYNCIN_MYSQL_URL_FILE=/run/secrets/mysql_password. Il server Sync-in leggerà quindi il contenuto del file indicato per inizializzare internamente la variabile.

Questo approccio garantisce una gestione sicura dei segreti mantenendo la compatibilità con i meccanismi di configurazione esistenti.

Per ulteriori informazioni sulla gestione dei segreti, consultare la documentazione ufficiale di Docker.