> 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. Modifiez cette variable selon la version que vous souhaitez utiliser.
{% endhint %}

### Prérequis

* Docker version `20.10.X` ou ultérieure. Sur macOS ARM64, utilisez `--platform linux/amd64` durant 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](/server/fr/getting-started/installation/database-setup.md).
* Les [exigences système](/server/fr/overview/system-requirements.md) minimales pour exécuter Devolutions Server.

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

### Configuration initiale de Devolutions Server

1. Créez une connexion et une base de données dédiées à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès de moindre privilège](/server/fr/knowledge-base/knowledge-base-articles/pre-deployment-account-survey.md#windows-sql-accounts) à Devolutions Server.
2. Téléchargez 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 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é. Enregistrez `App_Data` afin que la configuration de chiffrement puisse être récupérée à 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 conservez-le de façon sécuritaire, 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 cela fait, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vous assurer 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. Passez outre l'avertissement de sécurité du certificat auto-signé en cliquant sur ***Advanced*** – ***Proceed***. Vous pourrez monter un certificat TSL personnalisé plus tard.
8. Connectez-vous en utilisant `dvls-admin` comme nom d'utilisateur et mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, changez le mot de passe par défaut en vous rendant dans ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton de 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 fonctionne avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est enregistré dans un emplacement sécuritaire (il est nécessaire à chaque redémarrage et redéploiement). Une fois cela fait, 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                                                                         |
| ------------------------------ | ------------------------ | ----------------------------------- | ------------------------------------------------------------------------------------ |
| **Exécution** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal               | Démarre le serveur web et continue de fonctionner.                                   |
| **Initialisation**             | `DVLS_INIT=true`         | Configuration initiale              | Crée le schéma de base de données et l'utilisateur administrateur, puis se termine.  |
| **Mise à jour**                | `DVLS_UPDATE_MODE=true`  | Mise à niveau de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis se termine. |

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

### Port personnalisé

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

```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 plutôt que 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 des conteneurs

| 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 sécuritaire dans la mesure où vous possédez le fichier `encryption.config.b64`, l'accès à votre base de données SQL Server et la documentation de vos variables d'environnement.
{% endhint %}
{% endtab %}

{% tab title="macOS" %}

### Configuration initiale de Devolutions Server

1. Créez une connexion et une base de données dédiées à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès de moindre privilège](/server/fr/knowledge-base/knowledge-base-articles/pre-deployment-account-survey.md#windows-sql-accounts) à Devolutions Server.
2. Téléchargez 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 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é. Enregistrez `App_Data` afin que la configuration de chiffrement puisse être récupérée à l'étape suivante.

Sur macOS, c'est ici qu'il faut ajouter `--platform linux/amd64`.

```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 conservez-le de façon sécuritaire, 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 cela fait, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vous assurer 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. Passez outre l'avertissement de sécurité du certificat auto-signé en cliquant sur ***Advanced*** – ***Proceed***. Vous pourrez monter un certificat TSL personnalisé plus tard.
8. Connectez-vous en utilisant `dvls-admin` comme nom d'utilisateur et mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, changez le mot de passe par défaut en vous rendant dans ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton de 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 fonctionne avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est enregistré dans un emplacement sécuritaire (il est nécessaire à chaque redémarrage et redéploiement). Une fois cela fait, 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                                                                         |
| ------------------------------ | ------------------------ | ----------------------------------- | ------------------------------------------------------------------------------------ |
| **Exécution** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal               | Démarre le serveur web et continue de fonctionner.                                   |
| **Initialisation**             | `DVLS_INIT=true`         | Configuration initiale              | Crée le schéma de base de données et l'utilisateur administrateur, puis se termine.  |
| **Mise à jour**                | `DVLS_UPDATE_MODE=true`  | Mise à niveau de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis se termine. |

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

### Port personnalisé

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

```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 plutôt que 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 des conteneurs

| 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 sécuritaire dans la mesure où vous possédez le fichier `encryption.config.b64`, l'accès à votre base de données SQL Server et la documentation de vos variables d'environnement.
{% endhint %}
{% endtab %}

{% tab title="Linux" %}

### Configuration initiale de Devolutions Server

1. Créez une connexion et une base de données dédiées à l'aide d'un compte administrateur (par exemple, `sa` ou un administrateur Azure SQL). Accordez un [accès de moindre privilège](/server/fr/knowledge-base/knowledge-base-articles/pre-deployment-account-survey.md#windows-sql-accounts) à Devolutions Server.
2. Téléchargez 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 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é. Enregistrez `App_Data` afin que la configuration de chiffrement puisse être récupérée à 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 conservez-le de façon sécuritaire, 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 cela fait, utilisez les commandes `docker ps` et `docker logs dvls-server` pour vous assurer 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. Passez outre l'avertissement de sécurité du certificat auto-signé en cliquant sur ***Advanced*** – ***Proceed***. Vous pourrez monter un certificat TSL personnalisé plus tard.
8. Connectez-vous en utilisant `dvls-admin` comme nom d'utilisateur et mot de passe.

{% hint style="danger" %}
Immédiatement après la connexion, changez le mot de passe par défaut en vous rendant dans ***Administration*** – ***Utilisateurs***, en cliquant sur le bouton de 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 fonctionne avec `DVLS_ENCRYPTION_CONFIG_B64`, que son interface web est accessible et que `encryption.config.b64` est enregistré dans un emplacement sécuritaire (il est nécessaire à chaque redémarrage et redéploiement). Une fois cela fait, 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                                                                     |
| ------------------------------ | ------------------------ | ----------------------------------- | -------------------------------------------------------------------------------- |
| **Exécution** **(par défaut)** | Aucune variable spéciale | Fonctionnement normal               | Démarre le serveur web et continue de fonctionner.                               |
| **Initialisation**             | `DVLS_INIT=true`         | Configuration initiale              | Crée le schéma de base de données et l'utilisateur administrateur, puis quitte.  |
| **Mise à jour**                | `DVLS_UPDATE_MODE=true`  | Mise à niveau de la base de données | Sauvegarde les fichiers de configuration, migre la base de données, puis quitte. |

{% hint style="info" %}
Les modes **Initialisation** et **Mise à jour** s'excluent mutuellement.
{% endhint %}

### Port personnalisé

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

```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 des conteneurs

| 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`, de l'accès à votre base de données SQL Server et de vos variables d'environnement documentées.
{% endhint %}
{% endtab %}
{% endtabs %}

#### Voir aussi

* [Liste de vérification de la sécurité](/server/fr/getting-started/security-checklist.md)
* [Déploiement de Devolutions Server sur Azure App Service à l'aide d'un conteneur](/server/fr/knowledge-base/how-to-articles/devolutions-server-docker-deployment/devolutions-server-deployment-to-azure-app-service-using-a-container.md)
* [Configuration Docker avancée pour Devolutions Server](/server/fr/knowledge-base/how-to-articles/devolutions-server-docker-deployment/advanced-docker-configuration-for-devolutions-server.md)


---

# 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
