# Installation

Im folgenden wird die Installation von Zitadel mit Docker Compose beschrieben.

Die Anleitung beruht auf der offiziellen Dokumentation von Zitadel: [Zitadel Docker compose](https://jaeckel.one/attachments/30)

```yaml
version: '3.8'

services:
  zitadel:
    restart: 'unless-stopped'
    image: 'ghcr.io/zitadel/zitadel:latest'
    container_name: zitadel
    command: 'start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabled'
    environment:
      - 'ZITADEL_DATABASE_POSTGRES_HOST=zitadel-db'
      - 'ZITADEL_DATABASE_POSTGRES_PORT=5432'
      - 'ZITADEL_DATABASE_POSTGRES_DATABASE=zitadel'
      - 'ZITADEL_DATABASE_POSTGRES_USER_USERNAME=zitadel'
      - 'ZITADEL_DATABASE_POSTGRES_USER_PASSWORD=PasswortFuerZitadel'
      - 'ZITADEL_DATABASE_POSTGRES_USER_SSL_MODE=disable'
      - 'ZITADEL_DATABASE_POSTGRES_ADMIN_USERNAME=postgres'
      - 'ZITADEL_DATABASE_POSTGRES_ADMIN_PASSWORD=PasswortFuerDenPostgresChef'
      - 'ZITADEL_DATABASE_POSTGRES_ADMIN_SSL_MODE=disable'
      - 'ZITADEL_EXTERNALSECURE=false'
    depends_on:
      zitadel-db:
        condition: 'service_healthy'
    ports:
      - '8080:8080'

  zitadel-db:
    restart: 'unless-stopped'
    image: postgres:16-alpine
    container_name: zitadel-db
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=PasswortFuerDenPostgresChef
    volumes:
      - /pfad/zu/zitadel/data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready", "-d", "db_prod"]
      interval: '10s'
      timeout: '30s'
      retries: 5
      start_period: '20s'
```

Bitte die Passwörter ersetzen sowie den Pfad beim Volume von Postgres an die eigene Umgebung anpassen.

<p class="callout warning">Diese Konfiguration ist nur für Tests geeignet, da SSL deaktiviert ist und somit die Verbindung nicht verschlüssel ist.</p>

{{@48#bkmrk-Compose-Run}}

Nachdem die Instanz gestartet wurde, ist diese unter [http://localhost:8080/ui/console/](http://localhost:8080/ui/console/) erreichbar.

Der Standard-Login ist wie folgt:  
Benutzername: zitadel-admin@zitadel.localhost  
Passwort:*Password1!*

Nach ein paar kleineren Einstellungen in einem geführten Dialog (Passwort ändern, 2FA hinzufügen) öffnet sich die Startseite, auf der unter anderem auch ein Onboarding Prozess angezeigt wird.

[![grafik.png](https://jaeckel.one/uploads/images/gallery/2024-03/scaled-1680-/n2Zgrafik.png)](https://jaeckel.one/uploads/images/gallery/2024-03/n2Zgrafik.png)