> 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/advanced-docker-configuration-for-devolutions-server.md).

# 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

| Variable             | Requis | Par défaut | Description                                                                                                                                              |
| -------------------- | ------ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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`.                                                                                                                                |

{% hint style="info" %}
Les variables marquées d'un \* sont des alias. Utilisez la nomenclature standard ou la nomenclature spécifique à Azure, mais pas les deux.
{% endhint %}

#### Configuration du serveur web

| Variable              | Requis | Par défaut             | Description                                                                                      |
| --------------------- | ------ | ---------------------- | ------------------------------------------------------------------------------------------------ |
| `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

| Variable               | Requis | Par défaut | Description                                                                                       |
| ---------------------- | ------ | ---------- | ------------------------------------------------------------------------------------------------- |
| `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`)                      |

{% hint style="info" %}
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.
{% endhint %}

#### Configuration du mode de fonctionnement

{% hint style="info" %}
`DVLS_INIT` et `DVLS_UPDATE_MODE` sont mutuellement exclusifs. Définir les deux à `true` entraînera une erreur.
{% endhint %}

| Variable           | Requis | Par défaut         | Description                                                                                                        |
| ------------------ | ------ | ------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `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`) :

| Variable              | Requis | Par défaut         | Description                                                               |
| --------------------- | ------ | ------------------ | ------------------------------------------------------------------------- |
| `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

| Variable                     | Requis | Par défaut                                 | Description                                                                                                            |
| ---------------------------- | ------ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| `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

| Variable       | Requis | Par défaut | Description                                                                                              |
| -------------- | ------ | ---------- | -------------------------------------------------------------------------------------------------------- |
| `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 !              |

{% hint style="info" %}
Si `SSH_ENABLED=true` sans `SSH_PASSWORD`, le conteneur refusera de démarrer pour des raisons de sécurité.
{% endhint %}

#### Variables Azure Web App

Ces variables sont automatiquement définies par Azure App Service :

| Variable              | Défini par | Description                                                                                              |
| --------------------- | ---------- | -------------------------------------------------------------------------------------------------------- |
| `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) :

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

```powershell
docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -e HOSTNAME=localhost `
  -e WEB_SCHEME=https `
  -e PORT=5000 `
  -p 5000:5000 `
  devolutions/devolutions-server:release-2025.3
```

{% endtab %}

{% tab title="macOS" %}

```bash
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=localhost \
  -e WEB_SCHEME=https \
  -e PORT=5000 \
  -p 5000:5000 \
  devolutions/devolutions-server:release-2025.3
```

{% endtab %}

{% tab title="Linux" %}

```bash
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=localhost \
  -e WEB_SCHEME=https \
  -e PORT=5000 \
  -p 5000:5000 \
  devolutions/devolutions-server:release-2025.3
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
Pour le développement et les tests uniquement. Les navigateurs afficheront des avertissements de sécurité.
{% endhint %}

#### Fichiers de certificat via montage de volume

Montez les fichiers de certificat depuis l'hôte :

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

```powershell
mkdir -p /host/certs
cp /path/to/server.pem /host/certs/
cp /path/to/server.key /host/certs/
chmod 600 /host/certs/server.key

docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -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/certs:/opt/devolutions/dvls/certs:ro `
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="macOS" %}

```bash
mkdir -p /host/certs
cp /path/to/server.pem /host/certs/
cp /path/to/server.key /host/certs/
chmod 600 /host/certs/server.key

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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/certs:/opt/devolutions/dvls/certs:ro \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="Linux" %}

```bash
mkdir -p /host/certs
cp /path/to/server.pem /host/certs/
cp /path/to/server.key /host/certs/
chmod 600 /host/certs/server.key

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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/certs:/opt/devolutions/dvls/certs:ro \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}
{% endtabs %}

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 :

```
-----BEGIN CERTIFICATE-----
<Your certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Intermediate CA certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<Root CA certificate>
-----END CERTIFICATE-----
```

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

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

```powershell
cat server.pem | base64 > server.pem.b64
cat server.key | base64 > server.key.b64

docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -e HOSTNAME=devolutions-server.company.com `
  -e WEB_SCHEME=https `
  -e PORT=5000 `
  -e TLS_CERTIFICATE_B64="$(cat server.pem.b64)" `
  -e TLS_PRIVATE_KEY_B64="$(cat server.key.b64)" `
  -p 5000:5000 `
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="macOS" %}

```bash
cat server.pem | base64 > server.pem.b64
cat server.key | base64 > server.key.b64

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=devolutions-server.company.com \
  -e WEB_SCHEME=https \
  -e PORT=5000 \
  -e TLS_CERTIFICATE_B64="$(cat server.pem.b64)" \
  -e TLS_PRIVATE_KEY_B64="$(cat server.key.b64)" \
  -p 5000:5000 \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="Linux" %}

```bash
cat server.pem | base64 > server.pem.b64
cat server.key | base64 > server.key.b64

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=devolutions-server.company.com \
  -e WEB_SCHEME=https \
  -e PORT=5000 \
  -e TLS_CERTIFICATE_B64="$(cat server.pem.b64)" \
  -e TLS_PRIVATE_KEY_B64="$(cat server.key.b64)" \
  -p 5000:5000 \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}
{% endtabs %}

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 :

```
Server=<DATABASE_HOST>,<DATABASE_PORT>;Database=<DATABASE_NAME>;User Id=<DATABASE_USERNAME>;Password=<DATABASE_PASSWORD>;Encrypt=True;TrustServerCertificate=True;
```

#### Port standard (1433)

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

```
-e DATABASE_HOST=sql.example.com `
-e DATABASE_PORT=1433
```

Ou omettez `DATABASE_PORT` (1433 par défaut) :

```powershell
-e DATABASE_HOST=sql.example.com
```

{% endtab %}

{% tab title="macOS" %}

```
-e DATABASE_HOST=sql.example.com \
-e DATABASE_PORT=1433
```

Ou omettez `DATABASE_PORT` (1433 par défaut) :

```bash
-e DATABASE_HOST=sql.example.com
```

{% endtab %}

{% tab title="Linux" %}

```
-e DATABASE_HOST=sql.example.com \
-e DATABASE_PORT=1433
```

Ou omettez `DATABASE_PORT` (1433 par défaut) :

```bash
-e DATABASE_HOST=sql.example.com
```

{% endtab %}
{% endtabs %}

#### Port non standard

{% tabs %}
{% tab title="Windows" %}
**Option 1** : Inclure le port dans le nom d'hôte :

```powershell
-e DATABASE_HOST=sql.example.com,1435
```

**Option 2** : Variable de port séparée :

```powershell
-e DATABASE_HOST=sql.example.com `
-e DATABASE_PORT=1435
```

{% endtab %}

{% tab title="macOS" %}
**Option 1** : Inclure le port dans le nom d'hôte :

```bash
-e DATABASE_HOST=sql.example.com,1435
```

**Option 2** : Variable de port séparée :

```bash
-e DATABASE_HOST=sql.example.com \
-e DATABASE_PORT=1435
```

{% endtab %}

{% tab title="Linux" %}
**Option 1** : Inclure le port dans le nom d'hôte :

```bash
-e DATABASE_HOST=sql.example.com,1435
```

**Option 2** : Variable de port séparée :

```bash
-e DATABASE_HOST=sql.example.com \
-e DATABASE_PORT=1435
```

{% endtab %}
{% endtabs %}

#### Base de données Azure SQL

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

```powershell
-e AZURE_SQL_HOST=dvls-sql-server.database.windows.net `
-e AZURE_SQL_DATABASE=dvls `
-e AZURE_SQL_USERNAME=dvls_user@dvls-sql-server `
-e AZURE_SQL_PASSWORD='YourPassword!'
```

{% endtab %}

{% tab title="macOS" %}

```bash
-e AZURE_SQL_HOST=dvls-sql-server.database.windows.net \
-e AZURE_SQL_DATABASE=dvls \
-e AZURE_SQL_USERNAME=dvls_user@dvls-sql-server \
-e AZURE_SQL_PASSWORD='YourPassword!'
```

{% endtab %}

{% tab title="Linux" %}

```bash
-e AZURE_SQL_HOST=dvls-sql-server.database.windows.net \
-e AZURE_SQL_DATABASE=dvls \
-e AZURE_SQL_USERNAME=dvls_user@dvls-sql-server \
-e AZURE_SQL_PASSWORD='YourPassword!'
```

{% endtab %}
{% endtabs %}

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

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

```powershell
docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -e HOSTNAME=devolutions-server.company.com `
  -e WEB_SCHEME=http `
  -e PORT=5000 `
  -e EXTERNAL_WEB_SCHEME=https `
  -e EXTERNAL_WEB_PORT=443 `
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="macOS" %}

```bash
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=devolutions-server.company.com \
  -e WEB_SCHEME=http \
  -e PORT=5000 \
  -e EXTERNAL_WEB_SCHEME=https \
  -e EXTERNAL_WEB_PORT=443 \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}

{% tab title="Linux" %}

```bash
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e HOSTNAME=devolutions-server.company.com \
  -e WEB_SCHEME=http \
  -e PORT=5000 \
  -e EXTERNAL_WEB_SCHEME=https \
  -e EXTERNAL_WEB_PORT=443 \
  devolutions/devolutions-server:release-20XX.X
```

{% endtab %}
{% endtabs %}

Paramètres clés :

* `WEB_SCHEME=http` - Le conteneur utilise HTTP
* `EXTERNAL_WEB_SCHEME=https` - L'URL publique est HTTPS
* `EXTERNAL_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

{% hint style="danger" %}
NE codez PAS en dur les mots de passe dans les commandes docker run ou les fichiers compose.
{% endhint %}

{% tabs %}
{% tab title="Windows" %}
**Docker Secrets (mode Swarm)**

```powershell
echo "YourPassword!" | docker secret create dvls_db_password -

docker service create `
  --name dvls-server `
  --secret dvls_db_password `
  -e DATABASE_PASSWORD_FILE=/run/secrets/dvls_db_password `
  ...
```

**Fichiers d'environnement**

```powershell
# .env file (keep out of version control)
DATABASE_PASSWORD=YourPassword!
DVLS_ADMIN_PASSWORD=AdminPassword!

docker run -d --name dvls-server `
  --env-file .env `
  -e DATABASE_HOST=your-sql-server `
  ...
```

{% endtab %}

{% tab title="macOS" %}
**Docker Secrets (mode Swarm)**

```bash
echo "YourPassword!" | docker secret create dvls_db_password -

docker service create \
  --name dvls-server \
  --secret dvls_db_password \
  -e DATABASE_PASSWORD_FILE=/run/secrets/dvls_db_password \
  ...
```

**Fichiers d'environnement**

```bash
# .env file (keep out of version control)
DATABASE_PASSWORD=YourPassword!
DVLS_ADMIN_PASSWORD=AdminPassword!

docker run -d --name dvls-server \
  --env-file .env \
  -e DATABASE_HOST=your-sql-server \
  ...
```

{% endtab %}

{% tab title="Linux" %}
**Docker Secrets (mode Swarm)**

```bash
echo "YourPassword!" | docker secret create dvls_db_password -

docker service create \
  --name dvls-server \
  --secret dvls_db_password \
  -e DATABASE_PASSWORD_FILE=/run/secrets/dvls_db_password \
  ...
```

**Fichiers d'environnement**

```bash
# .env file (keep out of version control)
DATABASE_PASSWORD=YourPassword!
DVLS_ADMIN_PASSWORD=AdminPassword!

docker run -d --name dvls-server \
  --env-file .env \
  -e DATABASE_HOST=your-sql-server \
  ...
```

{% endtab %}
{% endtabs %}

**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](https://docs.devolutions.net/fr/server/kb/how-to-articles/devolutions-server-docker-deployment/azure-app-service-deployment/) pour plus de détails.

#### Isolation réseau

Utilisez les réseaux Docker pour isoler Devolutions Server :

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

```powershell
docker network create dvls-network

docker run -d --name dvls-server `
  --network dvls-network `
  -p 127.0.0.1:5000:5000 `
  -e DATABASE_HOST=sql-server `
  ...
```

{% endtab %}

{% tab title="macOS" %}

```bash
docker network create dvls-network

docker run -d --name dvls-server \
  --network dvls-network \
  -p 127.0.0.1:5000:5000 \
  -e DATABASE_HOST=sql-server \
  ...
```

{% endtab %}

{% tab title="Linux" %}

```bash
docker network create dvls-network

docker run -d --name dvls-server \
  --network dvls-network \
  -p 127.0.0.1:5000:5000 \
  -e DATABASE_HOST=sql-server \
  ...
```

{% endtab %}
{% endtabs %}

#### Accès SSH

Désactivez SSH en production sauf si cela est nécessaire pour le débogage :

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

```
-e SSH_ENABLED=false
```

{% endtab %}

{% tab title="macOS" %}

```
-e SSH_ENABLED=false
```

{% endtab %}

{% tab title="Linux" %}

```
-e SSH_ENABLED=false
```

{% endtab %}
{% endtabs %}

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

{% hint style="info" %}
La version 2026.1 est utilisée à titre d'illustration ; remplacez-la par la dernière version majeure réelle lors des mises à jour.
{% endhint %}

{% tabs %}
{% tab title="Windows" %}
**Mise à jour de version majeure**

```powershell
docker pull devolutions/devolutions-server:release-2026.1
docker stop dvls-server

# Run update mode to migrate database
docker run --rm `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -e DVLS_UPDATE_MODE=true `
  -e DVLS_BACKUP_PATH=/backup `
  -e DVLS_ENCRYPTION_CONFIG_B64="$(cat /tmp/encryption.config.b64)" `
  -v dvls-backups:/backup `
  devolutions/devolutions-server:release-2026.1

docker rm dvls-server
docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -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-2026.1
```

**Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)**

```powershell
docker pull devolutions/devolutions-server:release-2025.3
docker stop dvls-server
docker rm dvls-server

docker run -d --name dvls-server `
  -e DATABASE_HOST=your-sql-server `
  -e DATABASE_NAME=dvls `
  -e DATABASE_USERNAME=dvls_user `
  -e DATABASE_PASSWORD='YourPassword!' `
  -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-2025.3
```

{% endtab %}

{% tab title="macOS" %}
**Mise à jour de version majeure**

```bash
docker pull devolutions/devolutions-server:release-2026.1
docker stop dvls-server

# Run update mode to migrate database
docker run --rm \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e DVLS_UPDATE_MODE=true \
  -e DVLS_BACKUP_PATH=/backup \
  -e DVLS_ENCRYPTION_CONFIG_B64="$(cat /tmp/encryption.config.b64)" \
  -v dvls-backups:/backup \
  devolutions/devolutions-server:release-2026.1

docker rm dvls-server
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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-2026.1
```

**Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)**

```bash
docker pull devolutions/devolutions-server:release-2025.3
docker stop dvls-server
docker rm dvls-server

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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-2025.3
```

{% endtab %}

{% tab title="Linux" %}
**Mise à jour de version majeure**

```bash
docker pull devolutions/devolutions-server:release-2026.1
docker stop dvls-server

# Run update mode to migrate database
docker run --rm \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -e DVLS_UPDATE_MODE=true \
  -e DVLS_BACKUP_PATH=/backup \
  -e DVLS_ENCRYPTION_CONFIG_B64="$(cat /tmp/encryption.config.b64)" \
  -v dvls-backups:/backup \
  devolutions/devolutions-server:release-2026.1

docker rm dvls-server
docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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-2026.1
```

**Mise à jour mineure/corrective (p. ex., 2025.3.1 à 2025.3.2)**

```bash
docker pull devolutions/devolutions-server:release-2025.3
docker stop dvls-server
docker rm dvls-server

docker run -d --name dvls-server \
  -e DATABASE_HOST=your-sql-server \
  -e DATABASE_NAME=dvls \
  -e DATABASE_USERNAME=dvls_user \
  -e DATABASE_PASSWORD='YourPassword!' \
  -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-2025.3
```

{% endtab %}
{% endtabs %}

### Liste de contrôle de sécurité

Consultez [Devolutions Server security hardening](https://docs.devolutions.net/fr/server/getting-started/security-checklist/dvls-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

* [Devolutions Server deployment to Azure App Service using a container](https://docs.devolutions.net/fr/server/kb/how-to-articles/devolutions-server-docker-deployment/azure-app-service-deployment/)
* [Deploy Devolutions Server with Docker](https://docs.devolutions.net/fr/server/kb/how-to-articles/devolutions-server-docker-deployment/)


---

# 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/advanced-docker-configuration-for-devolutions-server.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.
