For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Variabile
Obbligatorio
Predefinito
Descrizione

DATABASE_HOST

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

Nome del database di Devolutions Server.

AZURE_SQL_DATABASE

Sì*

Alias di DATABASE_NAME.

DATABASE_USERNAME

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

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).

Le variabili contrassegnate con * sono alias. Utilizzi la denominazione standard oppure quella specifica di Azure, non entrambe.

Configurazione del server web

Variabile
Obbligatorio
Predefinito
Descrizione

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

Variabile
Obbligatorio
Predefinito
Descrizione

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)

Se WEB_SCHEME=https e non viene fornito alcun certificato, viene generato automaticamente un certificato autofirmato (valido ~5 anni, RSA a 2048 bit). Utilizzi i mount di file o le variabili base64 per i certificati di produzione.

Configurazione della modalità operativa

DVLS_INIT e DVLS_UPDATE_MODE si escludono a vicenda. Impostare entrambe su true causerà un errore.

Variabile
Obbligatorio
Predefinito
Descrizione

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):

Variabile
Obbligatoria
Predefinito
Descrizione

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

Variabile
Obbligatoria
Predefinito
Descrizione

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

Variabile
Obbligatoria
Predefinito
Descrizione

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!

Se SSH_ENABLED=true senza SSH_PASSWORD, il container si rifiuterà di avviarsi per motivi di sicurezza.

Variabili di Azure Web App

Queste variabili vengono impostate automaticamente da Azure App Service:

Variabile
Impostata da
Descrizione

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):

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.

Scenario
Variabili obbligatorie

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

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 HTTP

  • EXTERNAL_WEB_SCHEME=https - L'URL pubblico è HTTPS

  • EXTERNAL_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

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.3release-2026.1).

La versione 2026.1 è utilizzata a scopo illustrativo; la sostituisca con l'effettiva ultima versione major al momento dell'aggiornamento.

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

  • 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?