Configuration Docker avancée pour Devolutions Server
Cet article couvre les options de configuration avancées pour le déploiement Docker de Devolutions Server, notamment la référence complète des variables d'environnement, la gestion des certificats, l'optimisation des performances et le renforcement de la sécurité.
Référence des variables d'environnement
Variables de connexion à la base de données
DATABASE_HOST
Oui
—
Nom d'hôte du serveur SQL. Pour les ports non standard, utilisez le format host,port (p. ex., sql.example.com,1433).
AZURE_SQL_HOST
Oui*
—
Alias de DATABASE_HOST (nomenclature spécifique à Azure).
DATABASE_NAME
Oui
—
Nom de la base de données Devolutions Server.
AZURE_SQL_DATABASE
Oui*
—
Alias de DATABASE_NAME.
DATABASE_USERNAME
Oui
—
Nom d'utilisateur pour l'authentification SQL (utilisez un compte avec le minimum de privilèges et db_owner sur la base de données Devolutions Server).
AZURE_SQL_USERNAME
Oui*
—
Alias de DATABASE_USERNAME.
DATABASE_PASSWORD
Oui
—
Mot de passe pour l'authentification SQL (à traiter comme un secret ; utilisez Docker secrets ou Azure Key Vault).
AZURE_SQL_PASSWORD
Oui*
—
Alias de DATABASE_PASSWORD.
DATABASE_PORT
Non
1433
Port du serveur SQL (ajouté à l'hôte s'il n'est pas déjà spécifié dans DATABASE_HOST).
AZURE_SQL_PORT
Non
1433
Alias de DATABASE_PORT.
Les variables marquées d'un * sont des alias. Utilisez la nomenclature standard ou la nomenclature spécifique à Azure, mais pas les deux.
Configuration du serveur web
HOSTNAME
Non
localhost
Nom d'hôte du serveur (remplacé par WEBSITE_HOSTNAME sur Azure).
WEB_SCHEME
Non
http
Protocole : http ou https. Définissez à https pour activer TLS.
WEB_PORT / PORT
Non
5000
Port d'écoute du conteneur.
EXTERNAL_WEB_SCHEME
Non
Miroir de WEB_SCHEME
Protocole externe lorsque derrière un proxy inverse (p. ex., https lorsque le proxy gère TLS).
EXTERNAL_WEB_PORT
Non
Miroir de WEB_PORT
Port externe lorsque derrière un proxy inverse (p. ex., 443 pour HTTPS standard).
Configuration des certificats TLS
TLS_CERTIFICATE_FILE
Non*
—
Chemin vers le fichier de certificat PEM monté (p. ex., /opt/devolutions/dvls/certs/server.pem)
TLS_PRIVATE_KEY_FILE
Non*
—
Chemin vers le fichier de clé privée PEM monté (p. ex., /opt/devolutions/dvls/certs/server.key)
TLS_CERTIFICATE_B64
Non*
—
Contenu du certificat encodé en base64 (écrit dans App_Data/server.pem)
TLS_PRIVATE_KEY_B64
Non*
—
Contenu de la clé privée encodé en base64 (écrit dans App_Data/server.key)
Si WEB_SCHEME=https et qu'aucun certificat n'est fourni, un certificat auto-signé est généré automatiquement (valide ~5 ans, RSA 2048 bits). Utilisez des montages de fichiers ou des variables base64 pour les certificats de production.
Configuration du mode de fonctionnement
DVLS_INIT et DVLS_UPDATE_MODE sont mutuellement exclusifs. Définir les deux à true entraînera une erreur.
DVLS_INIT
Non
false
Définissez à true pour exécuter le mode d'initialisation (crée le schéma, l'utilisateur admin, puis se termine).
DVLS_UPDATE_MODE
Non
false
Définissez à true pour exécuter le mode de mise à jour (sauvegarde, migre la base de données, puis se termine).
DVLS_BACKUP_PATH
Non
/tmp/dvls-backup
Emplacement de sauvegarde lors des mises à jour (montez un volume pour conserver les sauvegardes).
Variables du mode d'initialisation
Ces variables ne sont utilisées que lors de l'initialisation (DVLS_INIT=true) :
DVLS_ADMIN_USERNAME
Non
dvls-admin
Nom d'utilisateur du compte administrateur créé lors de l'initialisation.
DVLS_ADMIN_PASSWORD
Non
dvls-admin
Mot de passe du compte administrateur. DOIT être modifié en production !
DVLS_ADMIN_EMAIL
Non
admin@<HOSTNAME>
Adresse courriel du compte administrateur.
Configuration système
DVLS_PATH
Non
/opt/devolutions/dvls
Chemin racine de l'installation (emplacement d'appsettings et App_Data).
DVLS_EXECUTABLE_PATH
Non
/opt/devolutions/dvls/Devolutions.Server
Chemin de l'exécutable Devolutions Server en mode d'exécution.
DVLS_TELEMETRY
Non
true
Activer/désactiver la collecte de télémétrie.
DVLS_ENCRYPTION_CONFIG_B64
Non
—
Configuration de chiffrement encodée en base64 (requise pour un chiffrement cohérent entre les instances à l'échelle).
Configuration de l'accès SSH
SSH_ENABLED
Non
false
Active le démon SSH pour le débogage (activé automatiquement sur Azure sauf si explicitement désactivé).
SSH_PORT
Non
2222
Port d'écoute SSH (publiez avec -p 2222:2222).
SSH_PASSWORD
Oui*
Docker!
Mot de passe root pour SSH (REQUIS si SSH_ENABLED=true, DOIT être modifié en production !
Si SSH_ENABLED=true sans SSH_PASSWORD, le conteneur refusera de démarrer pour des raisons de sécurité.
Variables Azure Web App
Ces variables sont automatiquement définies par Azure App Service :
WEBSITE_HOSTNAME
Azure
Remplace HOSTNAME (p. ex., dvls-prod.azurewebsites.net)
WEBSITE_INSTANCE_ID
Azure
La présence force EXTERNAL_WEB_SCHEME=https et EXTERNAL_WEB_PORT=443, et active automatiquement SSH.
Configuration des certificats TLS
Certificat auto-signé généré automatiquement
Lorsque WEB_SCHEME=https sans variables de certificat, Devolutions Server génère un certificat auto-signé (valide ~5 ans, RSA 2048 bits, CN=hostname) :
Pour le développement et les tests uniquement. Les navigateurs afficheront des avertissements de sécurité.
Fichiers de certificat via montage de volume
Montez les fichiers de certificat depuis l'hôte :
Exigences de format pour les certificats :
Certificat : format PEM (
.pem,.crt)Clé privée : format PEM (
.key,.pem)Chaîne : incluez les certificats intermédiaires dans le fichier de certificat
Exemple de fichier de certificat avec chaîne :
Certificats encodés en base64
Utilisez des certificats encodés en base64 lorsque vous travaillez avec des systèmes de gestion des secrets (Azure Key Vault, Kubernetes Secrets) :
Le certificat et la clé privée sont écrits dans /opt/devolutions/dvls/App_Data/ et référencés dans la configuration de Devolutions Server.
Configuration de la base de données
Format de la chaîne de connexion
Devolutions Server construit la chaîne de connexion SQL Server à partir des variables d'environnement :
Port standard (1433)
Ou omettez DATABASE_PORT (1433 par défaut) :
Ou omettez DATABASE_PORT (1433 par défaut) :
Ou omettez DATABASE_PORT (1433 par défaut) :
Port non standard
Option 1 : Inclure le port dans le nom d'hôte :
Option 2 : Variable de port séparée :
Option 1 : Inclure le port dans le nom d'hôte :
Option 2 : Variable de port séparée :
Option 1 : Inclure le port dans le nom d'hôte :
Option 2 : Variable de port séparée :
Base de données Azure SQL
Authentification SQL Server vs authentification Windows
Les conteneurs Docker de Devolutions Server prennent uniquement en charge l'authentification SQL Server (nom d'utilisateur/mot de passe). L'authentification Windows (sécurité intégrée) n'est pas prise en charge dans les conteneurs Linux.
Configuration du proxy inverse
Lorsque Devolutions Server s'exécute derrière un proxy inverse, un ingress nginx ou Azure App Service, configurez les paramètres d'URL externe :
Paramètres clés :
WEB_SCHEME=http- Le conteneur utilise HTTPEXTERNAL_WEB_SCHEME=https- L'URL publique est HTTPSEXTERNAL_WEB_PORT=443- Port HTTPS standard (omis dans les URL)HOSTNAME=devolutions-server.company.com- Nom d'hôte public
Devolutions Server génère des URL telles que https://devolutions-server.company.com/ dans l'interface et les réponses API.
Renforcement de la sécurité
Gestion des secrets
NE codez PAS en dur les mots de passe dans les commandes docker run ou les fichiers compose.
Docker Secrets (mode Swarm)
Fichiers d'environnement
Docker Secrets (mode Swarm)
Fichiers d'environnement
Docker Secrets (mode Swarm)
Fichiers d'environnement
Azure Key Vault
Utilisez Managed Identity pour récupérer les secrets depuis Key Vault au moment de l'exécution. Consultez Devolutions Server deployment to Azure App Service using a container pour plus de détails.
Isolation réseau
Utilisez les réseaux Docker pour isoler Devolutions Server :
Accès SSH
Désactivez SSH en production sauf si cela est nécessaire pour le débogage :
Si SSH est activé :
Utilisez des mots de passe robustes.
Modifiez le mot de passe par défaut.
Restreignez l'accès avec des règles de pare-feu.
Envisagez l'authentification par clé SSH (nécessite une image personnalisée).
Mises à jour de version
Étiquetage des versions
Les images sont étiquetées par version de publication (p. ex.,
release-2025.3,release-2026.1) et par build spécifique (p. ex.,2025.3.1.0,2025.3.2.0).Il n'existe pas d'étiquette
latest— spécifiez toujours une version.Les mises à jour mineures/correctives au sein de la même version de publication sont automatiquement incluses lors de l'extraction de l'étiquette de publication.
Le mode de mise à jour de la base de données n'est requis que lors du changement de versions majeures (p. ex.,
release-2025.3→release-2026.1).
La version 2026.1 est utilisée à titre d'illustration ; remplacez-la par la dernière version majeure réelle lors des mises à jour.
Mise à jour de version majeure
Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)
Mise à jour de version majeure
Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)
Mise à jour de version majeure
Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)
Liste de contrôle de sécurité
Consultez Devolutions Server security hardening pour :
Paramètres des comptes d'administration
Politiques de mot de passe
Authentification multifacteur
Restrictions par adresse IP
Journalisation des audits
Paramètres de chiffrement
Voir aussi
Mis à jour
Ce contenu vous a-t-il été utile ?