Cet article montre comment déployer Devolutions Server en utilisant Docker.
Pour simplifier, la version de l'image Docker de Devolutions Server est écrite 20XX.X dans les blocs de code de cet article. Changer cette variable à la version que vous souhaitez utiliser.
Version de Docker
20.10.Xou supérieure. Sur macOS ARM64, utiliser--platform linux/amd64durant la phase d'initialisation en raison de la compatibilité d'assemblage. Le mode runtime fonctionne nativement sur ARM64.Une instance SQL Server correctement configurée pour Devolutions Server.
Les exigences minimales du système pour exécuter Devolutions Server.
-
Créer une connexion et une base de données dédiée en utilisant un compte d'administration (par exemple,
saou un administrateur Azure SQL). Octroyer l'accès de moindre privilège à Devolutions Server. -
Tirer la dernière image Docker de Devolutions Server:
docker pull devolutions/devolutions-server:release-20XX.X -
Exécuter Devolutions Server en mode d'initialisation pour créer le schéma de la base de données et son premier administrateur, générer des clés de chiffrement, et configurer HTTPS avec un certificat auto-signé. Sauvegarder
App_Datapour que la configuration du chiffrement soit récupérable pour l'étape suivante.Sur macOS, c'est ici qu'il faut ajouter
--platform linux/amd64.docker volume create dvls-init-data docker run --rm ` -e DATABASE_HOST=your-sql-server.database.windows.net ` -e DATABASE_NAME=dvls ` -e DATABASE_USERNAME=dvls_user ` -e DATABASE_PASSWORD='YourSecurePassword!' ` -e HOSTNAME=localhost ` -e WEB_SCHEME=https ` -e PORT=5000 ` -e DVLS_INIT=true ` -v dvls-init-data:/opt/devolutions/dvls/App_Data ` -p 5000:5000 ` devolutions/devolutions-server:release-20XX.X -
Extraire
encryption.configdu volume d'initialisation:docker run --rm ` -v dvls-init-data:/data ` alpine ` cat /data/encryption.config -
Convertir le fichier extrait en base64 et le stocker de manière sécurisée car il sera nécessaire pour chaque démarrage runtime :
docker run --rm ` -v dvls-init-data:/data ` alpine ` cat /data/encryption.config > $env:TEMP\encryption.config $content = Get-Content -Path "$env:TEMP\encryption.config" -Raw $bytes = [System.Text.Encoding]::UTF8.GetBytes($content) $base64 = [System.Convert]::ToBase64String($bytes) $base64 | Out-File -FilePath "$env:TEMP\encryption.config.b64" -NoNewline -Encoding ASCII -
Démarrer Devolutions Server en utilisant la configuration de chiffrement base64. Une fois cela fait, utiliser les commandes
docker psetdocker logs dvls-serverpour vous assurer que tout fonctionne correctement.$encryptionConfig = Get-Content "$env:TEMP\encryption.config.b64" -Raw docker run -d --name dvls-server ` -e DATABASE_HOST=your-sql-server.database.windows.net ` -e DATABASE_NAME=dvls ` -e DATABASE_USERNAME=dvls_user ` -e DATABASE_PASSWORD='YourSecurePassword!' ` -e HOSTNAME=localhost ` -e WEB_SCHEME=https ` -e PORT=5000 ` -e DVLS_ENCRYPTION_CONFIG_B64="$encryptionConfig" ` -p 5000:5000 ` devolutions/devolutions-server:release-20XX.X -
Accéder à l'interface web en ouvrant
https://localhost:5000dans votre navigateur. Passer outre l'avertissement de sécurité du certificat auto-signé en cliquant sur Avancé – Continuer. Vous pouvez installer un certificat TSL personnalisé plus tard. -
Se connecter en utilisant
dvls-adminpour le nom d'utilisateur et le mot de passe.Immédiatement après la connexion, changer le mot de passe par défaut en allant sur Administration – Utilisateurs, en cliquant sur le bouton d'ellipsis vertical de l'utilisateur
dvls-admin, et en sélectionnant Changer le mot de passe. -
S'assurer que Devolutions Server fonctionne avec
DVLS_ENCRYPTION_CONFIG_B64, que son interface web est accessible, et queencryption.config.b64est enregistré dans un emplacement sécurisé (il est nécessaire pour chaque redémarrage et redéploiement). Une fois cela fait, le volume d'initialisation temporaire peut être supprimé en toute sécurité:docker volume rm dvls-init-data
-
Créer une connexion et une base de données dédiée en utilisant un compte d'administration (par exemple,
saou un administrateur Azure SQL). Octroyer l'accès de moindre privilège à Devolutions Server. -
Tirer la dernière image Docker de Devolutions Server:
docker pull devolutions/devolutions-server:release-20XX.X -
Exécuter Devolutions Server en mode d'initialisation pour créer le schéma de la base de données et son premier administrateur, générer des clés de chiffrement, et configurer HTTPS avec un certificat auto-signé. Sauvegarder
App_Datapour que la configuration du chiffrement soit récupérable pour l'étape suivante.Sur macOS, c'est ici qu'il faut ajouter
--platform linux/amd64.docker volume create dvls-init-data docker run --rm ` -e DATABASE_HOST=your-sql-server.database.windows.net \ -e DATABASE_NAME=dvls \ -e DATABASE_USERNAME=dvls_user \ -e DATABASE_PASSWORD='YourSecurePassword!' \ -e HOSTNAME=localhost \ -e WEB_SCHEME=https \ -e PORT=5000 \ -e DVLS_INIT=true \ -v dvls-init-data:/opt/devolutions/dvls/App_Data \ -p 5000:5000 \ devolutions/devolutions-server:release-20XX.X -
Extraire
encryption.configdu volume d'initialisation:docker run --rm \ -v dvls-init-data:/data \ alpine \ cat /data/encryption.config -
Convertir le fichier extrait en base64 et le stocker de manière sécurisée car il sera nécessaire pour chaque démarrage runtime :
docker run --rm \ -v dvls-init-data:/data \ alpine \ cat /data/encryption.config > /tmp/encryption.config base64 -i /tmp/encryption.config -o /tmp/encryption.config.b64 -
Démarrer Devolutions Server en utilisant la configuration de chiffrement base64. Une fois cela fait, utiliser les commandes
docker psetdocker logs dvls-serverpour s'assurer que tout fonctionne correctement :docker run -d --name dvls-server \ -e DATABASE_HOST=your-sql-server.database.windows.net \ -e DATABASE_NAME=dvls \ -e DATABASE_USERNAME=dvls_user \ -e DATABASE_PASSWORD='YourSecurePassword!' \ -e HOSTNAME=localhost \ -e WEB_SCHEME=https \ -e PORT=5000 \ -e DVLS_ENCRYPTION_CONFIG_B64="$(cat /tmp/encryption.config.b64)" \ -p 5000:5000 \ devolutions/devolutions-server:release-20XX.X -
Accéder à l'interface web en ouvrant
https://localhost:5000dans votre navigateur. Passer outre l'avertissement de sécurité du certificat auto-signé en cliquant sur Avancé – Continuer. Vous pouvez installer un certificat TSL personnalisé plus tard. -
Se connecter en utilisant
dvls-adminpour le nom d'utilisateur et le mot de passe.Immédiatement après la connexion, changer le mot de passe par défaut en allant sur Administration – Utilisateurs, en cliquant sur le bouton d'ellipsis vertical de l'utilisateur
dvls-admin, et en sélectionnant Changer le mot de passe. -
S'assurer que Devolutions Server fonctionne avec
DVLS_ENCRYPTION_CONFIG_B64, que son interface web est accessible, et queencryption.config.b64est enregistré dans un emplacement sécurisé (il est nécessaire pour chaque redémarrage et redéploiement). Une fois cela fait, le volume d'initialisation temporaire peut être supprimé en toute sécurité:docker volume rm dvls-init-data
-
Créer une connexion et une base de données dédiée en utilisant un compte d'administration (par exemple,
saou un administrateur Azure SQL). Octroyer l'accès de moindre privilège à Devolutions Server. -
Tirer la dernière image Docker de Devolutions Server:
docker pull devolutions/devolutions-server:release-20XX.X -
Exécuter Devolutions Server en mode d'initialisation pour créer le schéma de la base de données et son premier administrateur, générer des clés de chiffrement, et configurer HTTPS avec un certificat auto-signé. Sauvegarder
App_Datapour que la configuration du chiffrement soit récupérable pour l'étape suivante.Sur macOS, c'est ici qu'il faut ajouter
--platform linux/amd64.docker volume create dvls-init-data docker run --rm ` -e DATABASE_HOST=your-sql-server.database.windows.net \ -e DATABASE_NAME=dvls \ -e DATABASE_USERNAME=dvls_user \ -e DATABASE_PASSWORD='YourSecurePassword!' \ -e HOSTNAME=localhost \ -e WEB_SCHEME=https \ -e PORT=5000 \ -e DVLS_INIT=true \ -v dvls-init-data:/opt/devolutions/dvls/App_Data \ -p 5000:5000 \ devolutions/devolutions-server:release-20XX.X -
Extraire
encryption.configdu volume d'initialisation:docker run --rm \ -v dvls-init-data:/data \ alpine \ cat /data/encryption.config -
Convertir le fichier extrait en base64 et le stocker de manière sécurisée car il sera nécessaire pour chaque démarrage runtime :
docker run --rm \ -v dvls-init-data:/data \ alpine \ cat /data/encryption.config > /tmp/encryption.config base64 -w 0 /tmp/encryption.config > /tmp/encryption.config.b64 -
Démarrer Devolutions Server en utilisant la configuration de chiffrement base64. Une fois cela fait, utiliser les commandes
docker psetdocker logs dvls-serverpour s'assurer que tout fonctionne correctement :docker run -d --name dvls-server \ -e DATABASE_HOST=your-sql-server.database.windows.net \ -e DATABASE_NAME=dvls \ -e DATABASE_USERNAME=dvls_user \ -e DATABASE_PASSWORD='YourSecurePassword!' \ -e HOSTNAME=localhost \ -e WEB_SCHEME=https \ -e PORT=5000 \ -e DVLS_ENCRYPTION_CONFIG_B64="$(cat /tmp/encryption.config.b64)" \ -p 5000:5000 \ devolutions/devolutions-server:release-20XX.X -
Accéder à l'interface web en ouvrant
https://localhost:5000dans votre navigateur. Passer outre l'avertissement de sécurité du certificat auto-signé en cliquant sur Avancé – Continuer. Vous pouvez installer un certificat TSL personnalisé plus tard. -
Se connecter en utilisant
dvls-adminpour le nom d'utilisateur et le mot de passe.Immédiatement après la connexion, changer le mot de passe par défaut en allant sur Administration – Utilisateurs, en cliquant sur le bouton d'ellipsis vertical de l'utilisateur
dvls-admin, et en sélectionnant Changer le mot de passe. -
S'assurer que Devolutions Server fonctionne avec
DVLS_ENCRYPTION_CONFIG_B64, que son interface web est accessible, et queencryption.config.b64est enregistré dans un emplacement sécurisé (il est nécessaire pour chaque redémarrage et redéploiement). Une fois cela fait, le volume d'initialisation temporaire peut être supprimé en toute sécurité:docker volume rm dvls-init-data
Le conteneur Docker de DVLS fonctionne en trois modes distincts :
| Mode | Variable d'environnement | Objectif | Comportement |
|---|---|---|---|
| Runtime (par défaut) | Pas de variables spéciales | Fonctionnement normal | Démarrer le serveur web et le faire fonctionner en continu. |
| Initialisation | DVLS_INIT=true |
Configuration initiale | Créer le schéma de base de données, l'utilisateur administrateur, puis quitter. |
| Mise à jour | DVLS_UPDATE_MODE=true |
Mise à niveau de la base de données | Sauvegarder les fichiers de configuration, migrer la base de données, puis quitter. |
Initialisation et les modes de Mise à jour sont mutuellement exclusifs.
Changer le port sur lequel Devolutions Server écoute en définissant la variable d'environnement PORT, par exemple, avec le port 8080 comme dans l'exemple ci-dessous :
docker run -d --name dvls-server `
-e DATABASE_HOST=your-sql-server.database.windows.net `
-e DATABASE_NAME=dvls `
-e DATABASE_USERNAME=dvls_user `
-e DATABASE_PASSWORD='YourSecurePassword!' `
-e HOSTNAME=localhost `
-e WEB_SCHEME=https `
-e PORT=8080 `
-p 8080:8080 `
devolutions/devolutions-server:release-20XX.X
docker run -d --name dvls-server \
-e DATABASE_HOST=your-sql-server.database.windows.net \
-e DATABASE_NAME=dvls \
-e DATABASE_USERNAME=dvls_user \
-e DATABASE_PASSWORD='YourSecurePassword!' \
-e HOSTNAME=localhost \
-e WEB_SCHEME=https \
-e PORT=8080 \
-p 8080:8080 \
devolutions/devolutions-server:release-20XX.X
docker run -d --name dvls-server \
-e DATABASE_HOST=your-sql-server.database.windows.net \
-e DATABASE_NAME=dvls \
-e DATABASE_USERNAME=dvls_user \
-e DATABASE_PASSWORD='YourSecurePassword!' \
-e HOSTNAME=localhost \
-e WEB_SCHEME=https \
-e PORT=8080 \
-p 8080:8080 \
devolutions/devolutions-server:release-20XX.X
Monter vos propres fichiers de certificat au lieu d'utiliser le certificat auto-généré auto-signé:
mkdir -p /host/path/certs
cp /path/to/server.pem /host/path/certs/
cp /path/to/server.key /host/path/certs/
docker run -d --name dvls-server `
-e DATABASE_HOST=your-sql-server.database.windows.net \
-e DATABASE_NAME=dvls `
-e DATABASE_USERNAME=dvls_user `
-e DATABASE_PASSWORD='YourSecurePassword!' `
-e HOSTNAME=dvls.company.com `
-e WEB_SCHEME=https `
-e PORT=5000 `
-e TLS_CERTIFICATE_FILE=/opt/devolutions/dvls/certs/server.pem `
-e TLS_PRIVATE_KEY_FILE=/opt/devolutions/dvls/certs/server.key `
-p 5000:5000 `
-v /host/path/certs:/opt/devolutions/dvls/certs:ro `
devolutions/devolutions-server:release-20XX.X
mkdir -p /host/path/certs
cp /path/to/server.pem /host/path/certs/
cp /path/to/server.key /host/path/certs/
docker run -d --name dvls-server \
-e DATABASE_HOST=your-sql-server.database.windows.net \
-e DATABASE_NAME=dvls \
-e DATABASE_USERNAME=dvls_user \
-e DATABASE_PASSWORD='YourSecurePassword!' \
-e HOSTNAME=dvls.company.com \
-e WEB_SCHEME=https \
-e PORT=5000 \
-e TLS_CERTIFICATE_FILE=/opt/devolutions/dvls/certs/server.pem \
-e TLS_PRIVATE_KEY_FILE=/opt/devolutions/dvls/certs/server.key \
-p 5000:5000 \
-v /host/path/certs:/opt/devolutions/dvls/certs:ro \
devolutions/devolutions-server:release-20XX.X
mkdir -p /host/path/certs
cp /path/to/server.pem /host/path/certs/
cp /path/to/server.key /host/path/certs/
docker run -d --name dvls-server \
-e DATABASE_HOST=your-sql-server.database.windows.net \
-e DATABASE_NAME=dvls \
-e DATABASE_USERNAME=dvls_user \
-e DATABASE_PASSWORD='YourSecurePassword!' \
-e HOSTNAME=dvls.company.com \
-e WEB_SCHEME=https \
-e PORT=5000 \
-e TLS_CERTIFICATE_FILE=/opt/devolutions/dvls/certs/server.pem \
-e TLS_PRIVATE_KEY_FILE=/opt/devolutions/dvls/certs/server.key \
-p 5000:5000 \
-v /host/path/certs:/opt/devolutions/dvls/certs:ro \
devolutions/devolutions-server:release-20XX.X
| Commandes | Fonctions |
|---|---|
docker start dvls-server |
Démarrer le conteneur. |
docker stop dvls-server |
Arrêter le conteneur. |
docker rm dvls-server |
Supprimer le conteneur. |
Supprimer le conteneur est sûr tant que vous avez le fichier encryption.config.b64, accédez à votre base de données SQL Server, et vos variables d'environnement documentées.