Configurazione Docker avanzata per Devolutions Server
Questo articolo illustra le opzioni di configurazione avanzate per il deployment Docker di Devolutions Server, incluso il riferimento completo alle variabili d'ambiente, la gestione dei certificati, l'ottimizzazione delle prestazioni e il rafforzamento della sicurezza.
Riferimento delle variabili d'ambiente
Variabili di connessione al database
DATABASE_HOST
Sì
—
Nome host di SQL Server. Per porte non standard, utilizzi il formato host,port (ad esempio, sql.example.com,1433).
AZURE_SQL_HOST
Sì*
—
Alias di DATABASE_HOST (denominazione specifica di Azure).
DATABASE_NAME
Sì
—
Nome del database di Devolutions Server.
AZURE_SQL_DATABASE
Sì*
—
Alias di DATABASE_NAME.
DATABASE_USERNAME
Sì
—
Nome utente per l'autenticazione SQL (utilizzi un account con privilegi minimi con db_owner sul database di Devolutions Server).
AZURE_SQL_USERNAME
Sì*
—
Alias di DATABASE_USERNAME.
DATABASE_PASSWORD
Sì
—
Password per l'autenticazione SQL (da trattare come segreto, utilizzi i segreti Docker o Azure Key Vault).
AZURE_SQL_PASSWORD
Sì*
—
Alias di DATABASE_PASSWORD.
DATABASE_PORT
No
1433
Porta di SQL Server (aggiunta all'host se non già specificata in DATABASE_HOST).
AZURE_SQL_PORT
No
1433
Alias di DATABASE_PORT.
DATABASE_ENCRYPT
No
false
Imposti su true per crittografare la connessione a SQL Server (TLS). Obbligatorio quando SQL Server impone la crittografia. Viene letta a ogni avvio del container: la passi a ogni docker run.
DATABASE_TRUST_SERVER_CERTIFICATE
No
false
Imposti su true per considerare attendibile il certificato di SQL Server senza convalida. Da utilizzare con DATABASE_ENCRYPT=true quando il server presenta un certificato autofirmato (ad esempio, SQL Server 2022 in un container).
Configurazione del server web
HOSTNAME
No
localhost
Nome host del server (sovrascritto da WEBSITE_HOSTNAME su Azure).
WEB_SCHEME
No
http
Protocollo: http o https. Imposti su https per abilitare TLS.
WEB_PORT / PORT
No
5000
Porta su cui il container è in ascolto.
EXTERNAL_WEB_SCHEME
No
Rispecchia WEB_SCHEME
Protocollo esterno quando si trova dietro un reverse proxy (ad esempio, https quando il proxy gestisce TLS).
EXTERNAL_WEB_PORT
No
Rispecchia WEB_PORT
Porta esterna quando si trova dietro un reverse proxy (ad esempio, 443 per HTTPS standard).
Configurazione del certificato TLS
TLS_CERTIFICATE_FILE
No*
—
Percorso del file di certificato PEM montato (ad esempio, /opt/devolutions/dvls/certs/server.pem)
TLS_PRIVATE_KEY_FILE
No*
—
Percorso del file di chiave privata PEM montato (ad esempio, /opt/devolutions/dvls/certs/server.key)
TLS_CERTIFICATE_B64
No*
—
Contenuto del certificato codificato in Base64 (scritto in App_Data/server.pem)
TLS_PRIVATE_KEY_B64
No*
—
Contenuto della chiave privata codificato in Base64 (scritto in App_Data/server.key)
Configurazione della modalità operativa
DVLS_INIT
No
false
Imposti su true per eseguire la modalità di inizializzazione (crea lo schema e l'utente amministratore, poi esce).
DVLS_UPDATE_MODE
No
false
Imposti su true per eseguire la modalità di aggiornamento (esegue il backup, migra il database, poi esce).
DVLS_BACKUP_PATH
No
/tmp/dvls-backup
Posizione di backup durante gli aggiornamenti (montare un volume per rendere persistenti i backup).
Variabili della modalità di inizializzazione
Queste variabili vengono utilizzate solo durante l'inizializzazione (DVLS_INIT=true):
DVLS_ADMIN_USERNAME
No
dvls-admin
Nome utente dell'account amministratore creato durante l'inizializzazione.
DVLS_ADMIN_PASSWORD
No
dvls-admin
Password dell'account amministratore. DEVE essere modificata in produzione!
DVLS_ADMIN_EMAIL
No
admin@<HOSTNAME>
Indirizzo email dell'account amministratore
Configurazione del sistema
DVLS_PATH
No
/opt/devolutions/dvls
Percorso radice di installazione (posizione di appsettings e App_Data).
DVLS_EXECUTABLE_PATH
No
/opt/devolutions/dvls/Devolutions.Server
Percorso dell'eseguibile di Devolutions Server in modalità runtime.
DVLS_TELEMETRY
No
true
Abilita/disabilita la raccolta dei dati di telemetria.
DVLS_ENCRYPTION_CONFIG_B64
No
—
Configurazione di crittografia codificata in Base64 (necessaria per una crittografia coerente tra le istanze scalate).
Configurazione dell'accesso SSH
SSH_ENABLED
No
false
Abilita il daemon SSH per il debug (abilitato automaticamente su Azure salvo disabilitazione esplicita),
SSH_PORT
No
2222
Porta di ascolto SSH (pubblicare con -p 2222:2222),
SSH_PASSWORD
Sì*
Docker!
Password root per SSH (OBBLIGATORIA se SSH_ENABLED=true, DEVE essere modificata in produzione!
Variabili di Azure Web App
Queste variabili vengono impostate automaticamente da Azure App Service:
WEBSITE_HOSTNAME
Azure
Sovrascrive HOSTNAME (ad esempio, dvls-prod.azurewebsites.net)
WEBSITE_INSTANCE_ID
Azure
La sua presenza forza EXTERNAL_WEB_SCHEME=https e EXTERNAL_WEB_PORT=443 e abilita automaticamente SSH
Configurazione del certificato TLS
Certificato autofirmato generato automaticamente
Quando WEB_SCHEME=https è impostato senza variabili di certificato, Devolutions Server genera un certificato autofirmato (validità ~5 anni, RSA a 2048 bit, CN=hostname):
Solo per sviluppo e test. I browser mostreranno avvisi di sicurezza.
File di certificato tramite montaggio di volume
Montare i file di certificato dall'host:
Requisiti di formato del certificato:
Certificato: formato PEM (
.pem,.crt)Chiave privata: formato PEM (
.key,.pem)Catena: includere i certificati intermedi nel file del certificato
Esempio di file di certificato con catena:
Certificati codificati in Base64
Utilizzare certificati codificati in Base64 quando si lavora con sistemi di gestione dei segreti (Azure Key Vault, Kubernetes Secrets):
Il certificato e la chiave privata vengono scritti in /opt/devolutions/dvls/App_Data/ e referenziati nella configurazione di Devolutions Server.
Configurazione del database
Formato della stringa di connessione
Devolutions Server costruisce la stringa di connessione a SQL Server a partire dalle variabili d'ambiente:
Porta standard (1433)
Oppure omettere DATABASE_PORT (il valore predefinito è 1433):
Oppure omettere DATABASE_PORT (il valore predefinito è 1433):
Oppure omettere DATABASE_PORT (il valore predefinito è 1433):
Porta non standard
Opzione 1: includere la porta nel nome host:
Opzione 2: variabile della porta separata:
Opzione 1: includere la porta nel nome host:
Opzione 2: variabile della porta separata:
Opzione 1: includere la porta nel nome host:
Opzione 2: variabile della porta separata:
Database SQL di Azure
Connessione al database crittografata (TLS)
Per impostazione predefinita, Devolutions Server si connette a SQL Server senza TLS. Se il suo SQL Server impone la crittografia (ad esempio SQL Server 2022, che richiede TLS per impostazione predefinita, o qualsiasi istanza con "Force Encryption" abilitata), la connessione avrà esito negativo a meno che non si abiliti la crittografia lato client.
Queste variabili vengono lette a ogni avvio del container, non solo durante l'inizializzazione. La stringa di connessione SQL viene rigenerata a partire da esse a ogni avvio, quindi le passi a ogni docker run — inizializzazione, runtime e aggiornamento. Ometterle in fase di runtime riscrive la stringa di connessione con la crittografia disabilitata e la connessione avrà esito negativo.
SQL Server con un certificato attendibile emesso da una CA
DATABASE_ENCRYPT=true
SQL Server con un certificato autofirmato (ad esempio SQL Server 2022 in container)
DATABASE_ENCRYPT=true e DATABASE_TRUST_SERVER_CERTIFICATE=true
L'impostazione DATABASE_TRUST_SERVER_CERTIFICATE=true disabilita la convalida del certificato. La utilizzi solo con certificati autofirmati in reti attendibili; per la produzione, installi un certificato attendibile emesso da una CA su SQL Server e imposti solo DATABASE_ENCRYPT=true.
Autenticazione di SQL Server e autenticazione di Windows a confronto
I container Docker di Devolutions Server supportano solo l'autenticazione di SQL Server (nome utente/password). L'autenticazione di Windows (Integrated Security) non è supportata nei container Linux.
Configurazione del proxy inverso
Quando Devolutions Server viene eseguito dietro un proxy inverso, un ingress nginx o Azure App Service, configuri le impostazioni dell'URL esterno:
Impostazioni principali:
WEB_SCHEME=http- Il container utilizza HTTPEXTERNAL_WEB_SCHEME=https- L'URL pubblico è HTTPSEXTERNAL_WEB_PORT=443- Porta HTTPS standard (omessa negli URL)HOSTNAME=devolutions-server.company.com- Nome host pubblico
Devolutions Server genera URL come https://devolutions-server.company.com/ nell'interfaccia utente e nelle risposte dell'API.
Rafforzamento della sicurezza
Gestione dei segreti
NON inserisca password in modo hardcoded nei comandi docker run o nei file compose.
Docker Secrets (modalità Swarm)
File di ambiente
Docker Secrets (modalità Swarm)
File di ambiente
Docker Secrets (modalità Swarm)
File di ambiente
Azure Key Vault
Utilizzi Managed Identity per recuperare i segreti da Key Vault in fase di esecuzione. Consulti Distribuzione di Devolutions Server in Azure App Service tramite un container per maggiori dettagli.
Isolamento della rete
Utilizzi le reti Docker per isolare Devolutions Server:
Accesso SSH
Disabiliti SSH in produzione a meno che non sia necessario per il debug:
Se SSH è abilitato:
Utilizzi password complesse.
Modifichi la password predefinita.
Limiti l'accesso con regole firewall.
Consideri l'autenticazione con chiave SSH (richiede un'immagine personalizzata).
Aggiornamenti di versione
Tagging delle versioni
Le immagini sono contrassegnate in base alla versione di rilascio (ad esempio,
release-2025.3,release-2026.1) e in base alla build specifica (ad esempio,2025.3.1.0,2025.3.2.0).Non esiste alcun tag
latest- specifichi sempre una versione.Gli aggiornamenti minor/patch all'interno della stessa versione di rilascio sono inclusi automaticamente quando si scarica il tag di rilascio.
La modalità di aggiornamento del database è necessaria solo quando si cambia versione major (ad esempio,
release-2025.3→release-2026.1).
Aggiornamento di versione major
Aggiornamento minor/patch (ad esempio, da 2025.3.1 a 2025.3.2)
Aggiornamento di versione major
Aggiornamento minor/patch (ad esempio, da 2025.3.1 a 2025.3.2)
Aggiornamento di versione major
Aggiornamento minor/patch (ad esempio, da 2025.3.1 a 2025.3.2)
Elenco di controllo per la sicurezza
Consulti Rafforzamento della sicurezza di Devolutions Server per:
Impostazioni degli account di amministrazione
Criteri delle password
Autenticazione a più fattori
Restrizioni IP
Registrazione di audit
Impostazioni di crittografia
Vedere anche
Ultimo aggiornamento
È stato utile?