> 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/de/knowledge-base/how-to-articles/devolutions-server-docker-deployment/devolutions-server-deployment-to-azure-app-service-using-a-container.md).

# Devolutions Server-Bereitstellung in Azure App Service mit einem Container

Diese Anleitung behandelt die Bereitstellung von Devolutions Server in Azure App Service mithilfe eines Containers und bietet eine vollständig verwaltete Plattform mit automatischer Skalierung, integriertem TLS und Azure-Dienstintegration.

### Azure Portal-Bereitstellung

#### Voraussetzungen

* Ein Azure-Abonnement.
* Azure CLI installiert: `az --version` (oder verwenden Sie Azure Cloud Shell).
* SQL Server-Administratorzugriff (für die Datenbankerstellung).
* Devolutions Server-Container-Image in der Registry (Docker Hub oder Azure Container Registry).

#### Eine Azure SQL-Datenbank erstellen

1. Navigieren Sie zum Azure-Portal.
2. Klicken Sie auf **Ressource erstellen** und suchen Sie nach ***SQL Database*** – ***Create***.
3. Füllen Sie im Tab ***Basics*** die Felder wie folgt aus:

| Felder                   | Vorgeschlagene Eingabe                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Subscription**         | Wählen Sie Ihr Abonnement aus.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| **Resource Group**       | Erstellen Sie eine neue Gruppe namens `rg-dvls-prod`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Database name**        | Geben Sie `dvls` ein.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Server**               | <p>Klicken Sie auf <em><strong>Create new</strong></em> und füllen Sie die Felder wie folgt aus:</p><ul><li><em><strong>Server name</strong></em>: <code>dvls-sql-server-\<unique></code>. Der Servername muss global eindeutig sein.</li><li><em><strong>Location</strong></em>: Wählen Sie eine Region aus.</li><li><em><strong>Authentication</strong></em>: Geben Sie Ihre SQL-Authentifizierung ein.</li><li><em><strong>Server admin login</strong></em>: <code>sqladmin</code>.</li><li><em><strong>Password</strong></em>: Wählen Sie ein starkes Passwort.</li></ul><p>Klicken Sie auf <em><strong>OK</strong></em>.</p> |
| **Workload environment** | Wählen Sie ***Production*** aus.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **Compute + storage**    | <p>Klicken Sie auf <em><strong>Configure database</strong></em> und füllen Sie die Felder wie folgt aus:</p><ul><li><em><strong>Service tier</strong></em>: Wählen Sie <em><strong>Standard</strong></em>.</li><li><em><strong>DTUs</strong></em>: SO (10 DTUs) für Tests, 20+ DTUs für die Produktion.</li></ul><p>Klicken Sie auf <em><strong>Apply</strong></em>.</p>                                                                                                                                                                                                                                                          |

4. Anschließend für den Tab ***Networking***:

| Felder                    | Vorgeschlagene Eingabe                                                              |
| ------------------------- | ----------------------------------------------------------------------------------- |
| **Connectivity method**   | Wählen Sie ***Public endpoint*** aus.                                               |
| **Allow Azure services**  | Wählen Sie ***Yes***, da dies erforderlich ist, damit der App Service funktioniert. |
| **Add current client IP** | Wählen Sie ***Yes***, da dies für Verwaltungszwecke notwendig ist.                  |

5. Und den Tab ***Additional settings***:

| Felder                | Vorgeschlagene Eingabe     |
| --------------------- | -------------------------- |
| **Use existing data** | Wählen Sie ***None*** aus. |
| **Collation**         | Wählen Sie ***Default***.  |

6. Klicken Sie auf ***Review + create*** – ***Create*** und warten Sie auf die Bereitstellung. Dies sollte etwa 3-5 Minuten dauern.

#### Einen Datenbankbenutzer für Devolutions Server erstellen

1. Navigieren Sie zum ***Query editor*** Ihrer SQL-Datenbank und melden Sie sich mit den Anmeldeinformationen des Serveradministrators an.
2. Führen Sie die folgende SQL-Abfrage aus:

```sql
-- Create dedicated DVLS user
CREATE LOGIN dvls_user WITH PASSWORD = 'YourSecurePassword123!';

-- Switch to DVLS database
USE dvls;

-- Create user and grant permissions
CREATE USER dvls_user FOR LOGIN dvls_user;
ALTER ROLE db_owner ADD MEMBER dvls_user;
```

#### Einen App Service Plan erstellen

1. Klicken Sie auf ***Create a resource*** – ***App Service Plan*** – ***Create***.
2. Füllen Sie den Tab ***Basics*** wie folgt aus:

| Felder               | Vorgeschlagene Eingabe                                                                                                                                                                                                                                                                                                                                            |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Subscription**     | Wählen Sie Ihr Abonnement aus.                                                                                                                                                                                                                                                                                                                                    |
| **Resource Group**   | Geben Sie dieselbe wie für die Datenbank ein: `rg-dvls-prod`.                                                                                                                                                                                                                                                                                                     |
| **Name**             | Geben Sie `asp-dvls-prod` ein.                                                                                                                                                                                                                                                                                                                                    |
| **Operating System** | Wählen Sie das gewünschte Betriebssystem aus.                                                                                                                                                                                                                                                                                                                     |
| **Region**           | Geben Sie dieselbe Region ein, die Sie bei der Konfiguration der SQL-Datenbank gewählt haben.                                                                                                                                                                                                                                                                     |
| **Pricing tier**     | <p>Klicken Sie auf <em><strong>Change size</strong></em> und wählen Sie dann die Preisstufen für:</p><ul><li><em><strong>Production</strong></em>: POV3 (empfohlenes Minimum).</li><li><em><strong>Development</strong></em>: B2 (Basisstufe, geringere Kosten).</li></ul><p>Sobald Ihre Wahl getroffen ist, klicken Sie auf <em><strong>Apply</strong></em>.</p> |

3. Klicken Sie auf ***Review + create*** – ***Create***.

#### Den App Service erstellen

1. Gehen Sie zu ***Create a resource*** – ***Web App*** – ***Create***.
2. Füllen Sie im Tab ***Basics*** die Felder wie unten gezeigt aus:

| Felder               | Vorgeschlagene Eingabe                                                                  |
| -------------------- | --------------------------------------------------------------------------------------- |
| **Subscription**     | Wählen Sie Ihr Abonnement aus.                                                          |
| **Resource Group**   | Geben Sie wie zuvor `rg-dvls-prod` ein.                                                 |
| **Name**             | Geben Sie `dvls-prod-<unique>` ein. Daraus wird `dvls-prod-<unique>.azurewebsites.net`. |
| **Publish**          | Wählen Sie ***Container***.                                                             |
| **Operating System** | Wählen Sie das gewünschte Betriebssystem aus.                                           |
| **Region**           | Geben Sie dieselbe Region wie für die SQL-Datenbank und den App Service Plan ein.       |
| **Linux Plan**       | Wählen Sie `asp-dvls-prod` aus (bei der Erstellung des App Service Plans erstellt).     |

3. Und den Tab ***Container***:

| Felder              | Vorgeschlagene Eingabe                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Image Source**    | Wählen Sie ***Docker Hub*** oder ***Azure Container Registry***.                                                   |
| **Image and tag**   | Geben Sie `devolutions/devolutions-server:release-20XX.X` ein (ersetzen Sie die Versionsnummer durch die neueste). |
| **Registry access** | Wählen Sie ***Public*** (für Docker Hub).                                                                          |

4. Klicken Sie auf ***Review + create*** – ***Create*** und warten Sie 2-3 Minuten auf die Bereitstellung.
5. Sobald die Bereitstellung abgeschlossen ist, navigieren Sie zu ***Configuration*** – ***General***-Einstellungen und aktivieren Sie **Always on**. Dies verhindert, dass der Container in den Leerlauf geht und erst als Reaktion auf die erste eingehende Anfrage startet, was andernfalls als Start- oder Timeout-Fehler erscheinen kann.

#### Die Anwendungseinstellungen konfigurieren

1. Navigieren Sie zu ***App Service*** – ***Configuration*** – ***Application settings***.
2. Klicken Sie für jede Variable auf ***New application setting***:

| Name                | Wert                                            | Hinweise                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DATABASE_ENCRYPT`  | `true`                                          | Für Azure SQL erforderlich. Verschlüsselt die SQL-Verbindung (TLS). Azure SQL erzwingt immer eine Verschlüsselung, daher schlägt die Verbindung ohne diese Einstellung fehl.                                                                                                                                                                                                                                                                                                              |
| `DATABASE_HOST`     | `dvls-sql-server-<unique>.database.windows.net` | Ihr SQL Server-Hostname.                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `DATABASE_NAME`     | `dvls`                                          | Ihr Datenbankname.                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `DATABASE_USERNAME` | `dvls_user`                                     | Der dedizierte SQL-Benutzer.                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `DATABASE_PASSWORD` | `YourSecurePassword123!`                        | Verwenden Sie in der Produktion eine Key Vault-Referenz.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `WEB_SCHEME`        | `http`                                          | Protokoll (App Service übernimmt die HTTPS-Terminierung).                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `PORT`              | `5000`                                          | Der Listen-Port des Containers.                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `DVLS_TELEMETRY`    | `true`                                          | Telemetrie aktivieren.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `WEBSITES_PORT`     | `5000`                                          | <p>Azure-spezifisch (teilt App Service mit, welcher Port weitergeleitet werden soll).<br><br>Bei einigen neuen Azure-Web-Apps ist die Sidecar-Unterstützung nun standardmäßig aktiviert. Wenn die Sidecar-Unterstützung aktiviert ist, wird <code>WEBSITES\_PORT</code> ignoriert. Deaktivieren Sie entweder die Sidecar-Unterstützung, um <code>WEBSITES\_PORT=5000</code> wie dokumentiert zu verwenden, oder lassen Sie sie aktiviert und legen Sie den Port direkt auf 5000 fest.</p> |
|                     |                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

3. Klicken Sie auf ***Speichern*** und dann auf ***Weiter***, um den Neustart zu bestätigen.

#### Devolutions Server initialisieren und Verschlüsselungskonfiguration abrufen

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

* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen***.
* Neue Einstellung hinzufügen:
  * **Name**: `DVLS_INIT`
  * **Wert**: `true`
* Klicken Sie auf ***Speichern*** – ***Weiter***. Dadurch wird die App neu gestartet.
* Navigieren Sie unter ***Überwachung*** zu ***Protokollstream*** und warten Sie 1-2 Minuten, bis die Initialisierung abgeschlossen ist.
* Aktivieren Sie den SSH-Zugriff vorübergehend, indem Sie zu ***Entwicklungstools*** – ***SSH*** gehen und auf ***Los*** klicken.
* Extrahieren Sie die Verschlüsselungskonfiguration:

  ```powershell
  cat /opt/devolutions/dvls/App_Data/encryption.config | base64
  ```
* Kopieren Sie die base64-Ausgabe.
* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen*** – ***Neue Anwendungseinstellung***. Geben Sie `DVLS_ENCRYPTION_CONFIG_B64` in das Feld ***Name*** ein und fügen Sie den in Schritt 7 kopierten Inhalt der base64-Datei in das Feld ***Wert*** ein. Klicken Sie auf ***OK***.
* Suchen Sie die Einstellung `DVLS_INIT` und klicken Sie auf ***Löschen***.
* Klicken Sie auf ***Speichern*** und dann auf ***Weiter***.
  {% endtab %}

{% tab title="macOS" %}

* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen***.
* Neue Einstellung hinzufügen:
  * **Name**: `DVLS_INIT`
  * **Wert**: `true`
* Klicken Sie auf ***Speichern*** – ***Weiter***. Dadurch wird die App neu gestartet.
* Navigieren Sie unter ***Überwachung*** zu ***Protokollstream*** und warten Sie 1-2 Minuten, bis die Initialisierung abgeschlossen ist.
* Aktivieren Sie den SSH-Zugriff vorübergehend, indem Sie zu ***Entwicklungstools*** – ***SSH*** gehen und auf ***Los*** klicken.
* Extrahieren Sie die Verschlüsselungskonfiguration:

  ```bash
  cat /opt/devolutions/dvls/App_Data/encryption.config | base64
  ```
* Kopieren Sie die base64-Ausgabe.
* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen*** – ***Neue Anwendungseinstellung***. Geben Sie `DVLS_ENCRYPTION_CONFIG_B64` in das Feld ***Name*** ein und fügen Sie den in Schritt 7 kopierten Inhalt der base64-Datei in das Feld ***Wert*** ein. Klicken Sie auf ***OK***.
* Suchen Sie die Einstellung `DVLS_INIT` und klicken Sie auf ***Löschen***.
* Klicken Sie auf ***Speichern*** und dann auf ***Weiter***.
  {% endtab %}

{% tab title="Linux" %}

* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen***.
* Neue Einstellung hinzufügen:
  * **Name**: `DVLS_INIT`
  * **Wert**: `true`
* Klicken Sie auf ***Speichern*** – ***Weiter***. Dadurch wird die App neu gestartet.
* Navigieren Sie unter ***Überwachung*** zu ***Protokollstream*** und warten Sie 1-2 Minuten, bis die Initialisierung abgeschlossen ist.
* Aktivieren Sie den SSH-Zugriff vorübergehend, indem Sie zu ***Entwicklungstools*** – ***SSH*** gehen und auf ***Los*** klicken.
* Extrahieren Sie die Verschlüsselungskonfiguration:

  ```bash
  cat /opt/devolutions/dvls/App_Data/encryption.config | base64
  ```
* Kopieren Sie die base64-Ausgabe.
* Gehen Sie zu ***Konfiguration*** – ***Anwendungseinstellungen*** – ***Neue Anwendungseinstellung***. Geben Sie `DVLS_ENCRYPTION_CONFIG_B64` in das Feld ***Name*** ein und fügen Sie den in Schritt 7 kopierten Inhalt der base64-Datei in das Feld ***Wert*** ein. Klicken Sie auf ***OK***.
* Suchen Sie die Einstellung `DVLS_INIT` und klicken Sie auf ***Löschen***.
* Klicken Sie auf ***Speichern*** und dann auf ***Weiter***.
  {% endtab %}
  {% endtabs %}

#### Auf Devolutions Server zugreifen

1. Navigieren Sie zu ***Überblick*** – ***URL***.
2. Klicken Sie auf die URL oder besuchen Sie: `https://devolutions-server-prod-<unique>.azurewebsites.net`
3. Melden Sie sich mit den Standard-Anmeldeinformationen an:
   * **Benutzername**: `dvls-admin`
   * **Passwort**: `dvls-admin`

{% hint style="danger" %}
Ändern Sie unmittelbar nach der Anmeldung das Standardpasswort, indem Sie zu ***Administration*** – ***Benutzer*** gehen, auf die Schaltfläche mit den vertikalen Auslassungspunkten des Benutzers `dvls-admin` klicken und ***Passwort ändern*** auswählen.
{% endhint %}

### Bereitstellung mit der Azure CLI

Die Azure CLI ist ebenfalls für automatisierte oder wiederholbare Bereitstellungen verfügbar.

#### Voraussetzungen

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

```
# Login to Azure
az login

# Set subscription
az account set --subscription "Your Subscription Name"

# Verify Azure CLI version (2.50+ recommended)
az --version
```

{% endtab %}

{% tab title="macOS" %}

```
# Login to Azure
az login

# Set subscription
az account set --subscription "Your Subscription Name"

# Verify Azure CLI version (2.50+ recommended)
az --version
```

{% endtab %}

{% tab title="Linux" %}

```
# Login to Azure
az login

# Set subscription
az account set --subscription "Your Subscription Name"

# Verify Azure CLI version (2.50+ recommended)
az --version
```

{% endtab %}
{% endtabs %}

#### Benutzerdefinierte Domain und TLS

**Benutzerdefinierte Domain hinzufügen**

1. Navigieren Sie zu ***App Service*** – ***Benutzerdefinierte Domains*** – ***Benutzerdefinierte Domain hinzufügen***.
2. Geben Sie Ihre Domain ein: `devolutions-server.company.com`
3. Befolgen Sie die Anweisungen zur DNS-Konfiguration:
   * **CNAME**: `devolutions-server.company.com` → `devolutions-server-prod-<unique>.azurewebsites.net`.
   * Oder **A-Record** + TXT-Record für die Apex-Domain.
4. Klicken Sie auf ***Validieren*** und dann auf ***Hinzufügen***.

**Verwaltetes Zertifikat hinzufügen (kostenlos und automatische Erneuerung)**

1. Navigieren Sie zu ***Zertifikate*** – ***Verwaltete Zertifikate*** – ***Zertifikat hinzufügen***.
2. Wählen Sie Ihre benutzerdefinierte Domain aus.
3. Klicken Sie auf ***Validieren*** und dann auf ***Hinzufügen***.
4. Navigieren Sie zu ***Benutzerdefinierte Domains***, wählen Sie Ihre Domain aus und klicken Sie auf ***Bindung hinzufügen***.
5. Wählen Sie für das ***Zertifikat*** die Option ***Verwaltetes Zertifikat***.
6. Wählen Sie für den ***TLS/SSL-Typ*** die Option ***SNI SSL***.
7. Klicken Sie auf ***Hinzufügen***.

**HTTPS erzwingen**

1. Navigieren Sie zu ***Konfiguration*** – ***Allgemeine Einstellungen***.
2. Setzen Sie ***Nur HTTPS*** auf ***Ein*** und klicken Sie auf ***Speichern***.

### Überwachung

#### Application Insights aktivieren

**Portal**

1. Navigieren Sie zu ***App Service*** – ***Application Insights*** – ***Application Insights aktivieren***.
2. ***Neu erstellen*** oder ***Vorhandene auswählen*** Application Insights-Ressourcen.
3. Klicken Sie auf ***Übernehmen***.

**CLI**

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

```powershell
# Create Application Insights
az monitor app-insights component create `
  --app dvls-insights `
  --location eastus `
  --resource-group rg-dvls-prod `
  --application-type web

# Get connection string
$CONN_STRING = az monitor app-insights component show `
  --app dvls-insights `
  --resource-group rg-dvls-prod `
  --query connectionString -o tsv

# Configure App Service
az webapp config appsettings set `
  --resource-group rg-dvls-prod `
  --name dvls-prod-<unique> `
  --settings "APPLICATIONINSIGHTS_CONNECTION_STRING=$CONN_STRING"
```

{% endtab %}

{% tab title="macOS" %}

```bash
# Create Application Insights
az monitor app-insights component create \
  --app dvls-insights \
  --location eastus \
  --resource-group rg-dvls-prod \
  --application-type web

# Get connection string
CONN_STRING=$(az monitor app-insights component show \
  --app dvls-insights \
  --resource-group rg-dvls-prod \
  --query connectionString -o tsv)

# Configure App Service
az webapp config appsettings set \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique> \
  --settings \
    APPLICATIONINSIGHTS_CONNECTION_STRING="$CONN_STRING"
```

{% endtab %}

{% tab title="Linux" %}

```bash
# Create Application Insights
az monitor app-insights component create \
  --app dvls-insights \
  --location eastus \
  --resource-group rg-dvls-prod \
  --application-type web

# Get connection string
CONN_STRING=$(az monitor app-insights component show \
  --app dvls-insights \
  --resource-group rg-dvls-prod \
  --query connectionString -o tsv)

# Configure App Service
az webapp config appsettings set \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique> \
  --settings \
    APPLICATIONINSIGHTS_CONNECTION_STRING="$CONN_STRING"
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Der Standort ist hier beispielhaft auf East US festgelegt. Stellen Sie sicher, dass Sie den Wert auf Ihre Region ändern.
{% endhint %}

### Protokolle anzeigen

{% tabs %}
{% tab title="Windows" %}
**Protokolle streamen**

```powershell
az webapp log tail `
  --resource-group rg-dvls-prod `
  --name dvls-prod-<unique>
```

**Protokolle herunterladen**

```powershell
az webapp log download `
  --resource-group rg-dvls-prod `
  --name dvls-prod-<unique> `
  --log-file dvls-logs.zip
```

{% endtab %}

{% tab title="macOS" %}
**Protokolle streamen**

```bash
az webapp log tail \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique>
```

**Protokolle herunterladen**

```bash
az webapp log download \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique> \
  --log-file dvls-logs.zip
```

{% endtab %}

{% tab title="Linux" %}
**Protokolle streamen**

```bash
az webapp log tail \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique>
```

**Protokolle herunterladen**

```bash
az webapp log download \
  --resource-group rg-dvls-prod \
  --name dvls-prod-<unique> \
  --log-file dvls-logs.zip
```

{% endtab %}
{% endtabs %}

### Sicherheit

#### Azure Key Vault für Geheimnisse verwenden

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

1. Aktivieren Sie die ***Verwaltete Identität***:

   ```powershell
   az webapp identity assign `
     --resource-group rg-dvls-prod `
     --name dvls-prod-<unique>

   PRINCIPAL_ID=$(az webapp identity show `
     --resource-group rg-dvls-prod `
     --name dvls-prod-<unique> `
     --query principalId -o tsv)
   ```
2. Erstellen Sie einen Key Vault und speichern Sie das Geheimnis:

   ```powershell
   az keyvault create `
     --name kv-dvls-prod `
     --resource-group rg-dvls-prod `
     --location eastus

   az keyvault secret set `
     --vault-name kv-dvls-prod `
     --name dvls-db-password `
     --value 'YourSecurePassword123!'
   ```
3. Zugriff gewähren:

   ```powershell
   az keyvault set-policy `
     --name kv-dvls-prod `
     --object-id "$PRINCIPAL_ID" `
     --secret-permissions get
   ```
4. Referenz in den ***App-Einstellungen***:

   ```powershell
   SECRET_URI=$(az keyvault secret show `
     --vault-name kv-dvls-prod `
     --name dvls-db-password `
     --query id -o tsv)

   az webapp config appsettings set `
     --resource-group rg-dvls-prod `
     --name dvls-prod-<unique> `
     --settings `
       DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"
   ```

{% endtab %}

{% tab title="macOS" %}

1. Aktivieren Sie die ***Verwaltete Identität***:

   ```bash
   az webapp identity assign \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique>

   PRINCIPAL_ID=$(az webapp identity show \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique> \
     --query principalId -o tsv)
   ```
2. Erstellen Sie einen Key Vault und speichern Sie das Geheimnis:

   ```bash
   az keyvault create \
     --name kv-dvls-prod \
     --resource-group rg-dvls-prod \
     --location eastus

   az keyvault secret set \
     --vault-name kv-dvls-prod \
     --name dvls-db-password \
     --value 'YourSecurePassword123!'
   ```
3. Zugriff gewähren:

   ```bash
   az keyvault set-policy \
     --name kv-dvls-prod \
     --object-id "$PRINCIPAL_ID" \
     --secret-permissions get
   ```
4. Referenz in den ***App-Einstellungen***:

   ```bash
   SECRET_URI=$(az keyvault secret show \
     --vault-name kv-dvls-prod \
     --name dvls-db-password \
     --query id -o tsv)

   az webapp config appsettings set \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique> \
     --settings \
       DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"
   ```

{% endtab %}

{% tab title="Linux" %}

1. Aktivieren Sie die ***Verwaltete Identität***:

   ```bash
   az webapp identity assign \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique>

   PRINCIPAL_ID=$(az webapp identity show \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique> \
     --query principalId -o tsv)
   ```
2. Erstellen Sie einen Key Vault und speichern Sie das Geheimnis:

   ```bash
   az keyvault create \
     --name kv-dvls-prod \
     --resource-group rg-dvls-prod \
     --location eastus

   az keyvault secret set \
     --vault-name kv-dvls-prod \
     --name dvls-db-password \
     --value 'YourSecurePassword123!'
   ```
3. Zugriff gewähren:

   ```bash
   az keyvault set-policy \
     --name kv-dvls-prod \
     --object-id "$PRINCIPAL_ID" \
     --secret-permissions get
   ```
4. Referenz in den ***App-Einstellungen***:

   ```bash
   SECRET_URI=$(az keyvault secret show \
     --vault-name kv-dvls-prod \
     --name dvls-db-password \
     --query id -o tsv)

   az webapp config appsettings set \
     --resource-group rg-dvls-prod \
     --name dvls-prod-<unique> \
     --settings \
       DATABASE_PASSWORD="@Microsoft.KeyVault(SecretUri=${SECRET_URI})"
   ```

{% endtab %}
{% endtabs %}

#### Siehe auch

* [Erweiterte Docker-Konfiguration für Devolutions Server](/server/de/knowledge-base/how-to-articles/devolutions-server-docker-deployment/advanced-docker-configuration-for-devolutions-server.md)
* [Devolutions Server mit Docker bereitstellen](/server/de/knowledge-base/how-to-articles/devolutions-server-docker-deployment.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/de/knowledge-base/how-to-articles/devolutions-server-docker-deployment/devolutions-server-deployment-to-azure-app-service-using-a-container.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.
