> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/server/fr/knowledge-base/how-to-articles/devolutions-server-docker-deployment.md).

# Déployer Devolutions Server avec Docker

Cet article explique comment déployer Devolutions Server à l'aide de Docker.

{% hint style="info" %}
Par souci de simplicité, la version de l'image Docker de Devolutions Server est écrite `20XX.X` dans les blocs de code de cet article. Remplacez cette variable par la version que vous souhaitez utiliser.
{% endhint %}

### Prérequis

* Docker version `20.10.X` ou ultérieure. Sur macOS ARM64, utilisez `--platform linux/amd64` lors de la phase d'initialisation en raison de la compatibilité des assemblages. Le mode d'exécution fonctionne nativement sur ARM64.
* Une instance SQL Server correctement [configurée pour Devolutions Server](https://docs.devolutions.net/fr/server/getting-started/installation/database-setup/).
* La [configuration minimale requise](https://docs.devolutions.net/fr/server/overview/system-requirements/) pour exécuter Devolutions Server.

{% tabs %}
{% tab title="Windows" %}

### Configuration initiale de Devolutions Server

1. Créez un identifiant et une base de données dédiés à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès avec privilèges minimaux](https://docs.devolutions.net/fr/server/kb/knowledge-base/pre-deployment-account-survey/#windows-sql-accounts) à Devolutions Server.
2. Extrayez la dernière [image Docker de Devolutions Server](https://hub.docker.com/r/devolutions/devolutions-server) :

   ```powershell
   docker pull devolutions/devolutions-server:release-20XX.X
   ```
3. Exécutez Devolutions Server en mode d'initialisation pour créer le schéma de base de données et son premier administrateur, générer les clés de chiffrement et configurer HTTPS avec un certificat auto-signé. Sauvegardez `App_Data` afin que la configuration de chiffrement soit récupérable pour l'étape suivante.

```powershell
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
```

4. Extrayez `encryption.config` du volume d'initialisation :

   ```powershell
   docker run --rm `
     -v dvls-init-data:/data `
     alpine `
     cat /data/encryption.config
   ```
5. Convertissez le fichier extrait en base64 et stockez-le de façon sécurisée, car il sera nécessaire à chaque démarrage en mode d'exécution :

   ```powershell
   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
   ```
6. Démarrez Devolutions Server en utilisant la configuration de chiffrement en base64. Une fois cette opération effectuée, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vérifier que tout fonctionne correctement.

   ```powershell
   $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
   ```
7. Accédez à l'interface web en ouvrant `https://localhost:5000` dans votre navigateur. Ignorez l'avertissement de sécurité lié au certificat auto-signé en cliquant sur ***Avancé*** – ***Continuer***. Vous pourrez monter un certificat TSL personnalisé ultérieurement.
8. Connectez-vous en utilisant `dvls-admin` à la fois comme nom d'utilisateur et comme mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, modifiez le mot de passe par défaut en accédant à ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton représentant des points de suspension verticaux de l'utilisateur `dvls-admin`, puis en sélectionnant ***Changer le mot de passe***.
{% endhint %}

9. Assurez-vous que Devolutions Server s'exécute avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est sauvegardé dans un emplacement sécurisé (il est nécessaire à chaque redémarrage et redéploiement). Une fois cette vérification effectuée, le volume d'initialisation temporaire peut être supprimé en toute sécurité :

   ```powershell
   docker volume rm dvls-init-data
   ```

### Modes de fonctionnement

Le conteneur Docker DVLS fonctionne selon trois modes distincts :

| Mode                         | Variable d'environnement | Objectif                          | Comportement                                                                       |
| ---------------------------- | ------------------------ | --------------------------------- | ---------------------------------------------------------------------------------- |
| **Runtime** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal             | Démarre le serveur web et continue de s'exécuter.                                  |
| **Initialisation**           | `DVLS_INIT=true`         | Configuration initiale            | Crée le schéma de base de données, l'utilisateur administrateur, puis se ferme.    |
| **Mise à jour**              | `DVLS_UPDATE_MODE=true`  | Mise à jour de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis se ferme. |

{% hint style="info" %}
Les modes **Initialisation** et **Mise à jour** sont mutuellement exclusifs.
{% endhint %}

### Port personnalisé

Modifiez le port d'écoute de Devolutions Server en définissant la variable d'environnement `PORT`, par exemple avec le port `8080` comme dans l'exemple ci-dessous :

```powershell
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 un certificat TSL personnalisé

Montez vos propres fichiers de certificat au lieu d'utiliser le certificat auto-signé généré automatiquement :

```powershell
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=devolutions-server.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
```

### Gestion du conteneur

| Commandes                  | Fonctions              |
| -------------------------- | ---------------------- |
| `docker start dvls-server` | Démarre le conteneur.  |
| `docker stop dvls-server`  | Arrête le conteneur.   |
| `docker rm dvls-server`    | Supprime le conteneur. |

{% hint style="info" %}
La suppression du conteneur est sans risque tant que vous disposez du fichier `encryption.config.b64`, d'un accès à votre base de données SQL Server et de vos variables d'environnement documentées.
{% endhint %}
{% endtab %}

{% tab title="macOS" %}

### Configuration initiale de Devolutions Server

1. Créez un identifiant et une base de données dédiés à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès avec privilèges minimaux](https://docs.devolutions.net/fr/server/kb/knowledge-base/pre-deployment-account-survey/#windows-sql-accounts) à Devolutions Server.
2. Extrayez la dernière [image Docker de Devolutions Server](https://hub.docker.com/r/devolutions/devolutions-server) :

   ```bash
   docker pull devolutions/devolutions-server:release-20XX.X
   ```
3. Exécutez Devolutions Server en mode d'initialisation pour créer le schéma de base de données et son premier administrateur, générer les clés de chiffrement et configurer HTTPS avec un certificat auto-signé. Sauvegardez `App_Data` afin que la configuration de chiffrement soit récupérable pour l'étape suivante.

C'est ici que vous devez ajouter `--platform linux/amd64` sur macOS.

```bash
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
```

4. Extrayez `encryption.config` du volume d'initialisation :

   ```bash
   docker run --rm \
     -v dvls-init-data:/data \
     alpine \
     cat /data/encryption.config
   ```
5. Convertissez le fichier extrait en base64 et stockez-le de façon sécurisée, car il sera nécessaire à chaque démarrage en mode d'exécution :

   ```bash
   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
   ```
6. Démarrez Devolutions Server en utilisant la configuration de chiffrement en base64. Une fois cette opération effectuée, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vérifier que tout fonctionne correctement :

   ```bash
   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
   ```
7. Accédez à l'interface web en ouvrant `https://localhost:5000` dans votre navigateur. Ignorez l'avertissement de sécurité lié au certificat auto-signé en cliquant sur ***Avancé*** – ***Continuer***. Vous pourrez monter un certificat TSL personnalisé ultérieurement.
8. Connectez-vous en utilisant `dvls-admin` à la fois comme nom d'utilisateur et comme mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, modifiez le mot de passe par défaut en accédant à ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton représentant des points de suspension verticaux de l'utilisateur `dvls-admin`, puis en sélectionnant ***Changer le mot de passe***.
{% endhint %}

9. Assurez-vous que Devolutions Server s'exécute avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est sauvegardé dans un emplacement sécurisé (il est nécessaire à chaque redémarrage et redéploiement). Une fois cette vérification effectuée, le volume d'initialisation temporaire peut être supprimé en toute sécurité :

   ```bash
   docker volume rm dvls-init-data
   ```

### Modes de fonctionnement

Le conteneur Docker DVLS fonctionne selon trois modes distincts :

| Mode                         | Variable d'environnement | Objectif                          | Comportement                                                                       |
| ---------------------------- | ------------------------ | --------------------------------- | ---------------------------------------------------------------------------------- |
| **Runtime** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal             | Démarre le serveur web et continue de s'exécuter.                                  |
| **Initialisation**           | `DVLS_INIT=true`         | Configuration initiale            | Crée le schéma de base de données, l'utilisateur administrateur, puis se ferme.    |
| **Mise à jour**              | `DVLS_UPDATE_MODE=true`  | Mise à jour de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis se ferme. |

{% hint style="info" %}
Les modes **Initialisation** et **Mise à jour** sont mutuellement exclusifs.
{% endhint %}

### Port personnalisé

Modifiez le port d'écoute de Devolutions Server en définissant la variable d'environnement `PORT`, par exemple avec le port `8080` comme dans l'exemple ci-dessous :

```bash
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 un certificat TSL personnalisé

Montez vos propres fichiers de certificat au lieu d'utiliser le certificat auto-signé généré automatiquement :

```bash
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=devolutions-server.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
```

### Gestion du conteneur

| Commandes                  | Fonctions              |
| -------------------------- | ---------------------- |
| `docker start dvls-server` | Démarre le conteneur.  |
| `docker stop dvls-server`  | Arrête le conteneur.   |
| `docker rm dvls-server`    | Supprime le conteneur. |

{% hint style="info" %}
La suppression du conteneur est sans risque tant que vous disposez du fichier `encryption.config.b64`, d'un accès à votre base de données SQL Server et de vos variables d'environnement documentées.
{% endhint %}
{% endtab %}

{% tab title="Linux" %}

### Configuration initiale de Devolutions Server

1. Créez un identifiant et une base de données dédiés à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès avec privilèges minimaux](https://docs.devolutions.net/fr/server/kb/knowledge-base/pre-deployment-account-survey/#windows-sql-accounts) à Devolutions Server.
2. Extrayez la dernière [image Docker de Devolutions Server](https://hub.docker.com/r/devolutions/devolutions-server) :

   ```bash
   docker pull devolutions/devolutions-server:release-20XX.X
   ```
3. Exécutez Devolutions Server en mode d'initialisation pour créer le schéma de base de données et son premier administrateur, générer les clés de chiffrement et configurer HTTPS avec un certificat auto-signé. Sauvegardez `App_Data` afin que la configuration de chiffrement soit récupérable pour l'étape suivante.

```bash
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
```

4. Extrayez `encryption.config` du volume d'initialisation :

   ```bash
   docker run --rm \
     -v dvls-init-data:/data \
     alpine \
     cat /data/encryption.config
   ```
5. Convertissez le fichier extrait en base64 et stockez-le de façon sécurisée, car il sera nécessaire à chaque démarrage en mode d'exécution :

   ```bash
   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
   ```
6. Démarrez Devolutions Server en utilisant la configuration de chiffrement en base64. Une fois cette opération effectuée, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vérifier que tout fonctionne correctement :

   ```bash
   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
   ```
7. Accédez à l'interface web en ouvrant `https://localhost:5000` dans votre navigateur. Ignorez l'avertissement de sécurité lié au certificat auto-signé en cliquant sur ***Avancé*** – ***Continuer***. Vous pourrez monter un certificat TSL personnalisé ultérieurement.
8. Connectez-vous en utilisant `dvls-admin` à la fois comme nom d'utilisateur et comme mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, modifiez le mot de passe par défaut en accédant à ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton représentant des points de suspension verticaux de l'utilisateur `dvls-admin`, puis en sélectionnant ***Changer le mot de passe***.
{% endhint %}

9. Assurez-vous que Devolutions Server s'exécute avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est sauvegardé dans un emplacement sécurisé (il est nécessaire à chaque redémarrage et redéploiement). Une fois cette vérification effectuée, le volume d'initialisation temporaire peut être supprimé en toute sécurité :

   ```bash
   docker volume rm dvls-init-data
   ```

### Modes de fonctionnement

Le conteneur Docker DVLS fonctionne selon trois modes distincts :

| Mode                         | Variable d'environnement | Objectif                          | Comportement                                                                       |
| ---------------------------- | ------------------------ | --------------------------------- | ---------------------------------------------------------------------------------- |
| **Runtime** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal             | Démarre le serveur web et continue de s'exécuter.                                  |
| **Initialisation**           | `DVLS_INIT=true`         | Configuration initiale            | Crée le schéma de base de données, l'utilisateur administrateur, puis se ferme.    |
| **Mise à jour**              | `DVLS_UPDATE_MODE=true`  | Mise à jour de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis se ferme. |

{% hint style="info" %}
Les modes **Initialisation** et **Mise à jour** sont mutuellement exclusifs.
{% endhint %}

### Port personnalisé

Modifiez le port d'écoute de Devolutions Server en définissant la variable d'environnement `PORT`, par exemple avec le port `8080` comme dans l'exemple ci-dessous :

```bash
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 un certificat TSL personnalisé

Montez vos propres fichiers de certificat au lieu d'utiliser le certificat auto-signé généré automatiquement :

```bash
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=devolutions-server.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
```

### Gestion du conteneur

| Commandes                  | Fonctions              |
| -------------------------- | ---------------------- |
| `docker start dvls-server` | Démarre le conteneur.  |
| `docker stop dvls-server`  | Arrête le conteneur.   |
| `docker rm dvls-server`    | Supprime le conteneur. |

{% hint style="info" %}
La suppression du conteneur est sans risque tant que vous disposez du fichier `encryption.config.b64`, d'un accès à votre base de données SQL Server et de vos variables d'environnement documentées.
{% endhint %}
{% endtab %}
{% endtabs %}

#### Voir aussi

* [Liste de contrôle de sécurité](https://docs.devolutions.net/fr/server/getting-started/security-checklist/)
* [Déploiement de Devolutions Server sur Azure App Service à l'aide d'un conteneur](https://docs.devolutions.net/fr/server/kb/how-to-articles/devolutions-server-docker-deployment/azure-app-service-deployment/)
* [Configuration Docker avancée pour Devolutions Server](https://docs.devolutions.net/fr/server/kb/how-to-articles/devolutions-server-docker-deployment/advanced-docker-configuration/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.devolutions.net/server/fr/knowledge-base/how-to-articles/devolutions-server-docker-deployment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
