> ## Documentation Index
> Fetch the complete documentation index at: https://docs.varios-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installationsanleitung

> VARIOS AI auf einem eigenen Linux-Server mit Docker installieren, konfigurieren und aktualisieren

Diese Anleitung beschreibt die Installation von VARIOS AI auf einem eigenen Linux-Server. VARIOS AI läuft als Docker-Compose-Installation; die Installationsdateien `docker-compose.yml`, `.env`, `varios.sh` und `update_version` erhalten Sie vom VARIOS-AI-Team. Prüfen Sie vorab die [Systemvoraussetzungen](/de/monthly/betrieb/systemvoraussetzungen).

<Info>
  Rechnen Sie für die technische Installation mit einem halben Arbeitstag. Die meiste Zeit entfällt auf Abstimmungen mit DNS-, Firewall- und Identitätsteam, planen Sie diese vorab ein.
</Info>

## Installation

<Steps>
  <Step title="Server vorbereiten">
    Spielen Sie die aktuellen Updates Ihrer Distribution ein, aktivieren Sie die Zeitsynchronisation und richten Sie die Firewall nach den [Systemvoraussetzungen](/de/monthly/betrieb/systemvoraussetzungen#netzwerk-und-domain) ein. Eine korrekte Uhrzeit ist für Anmeldung und Zertifikate zwingend.

    ```bash theme={null}
    sudo timedatectl set-ntp true
    ```
  </Step>

  <Step title="Docker installieren">
    Installieren Sie Docker Engine und Docker Compose v2 nach der Anleitung Ihrer Distribution oder mit dem offiziellen Skript, und aktivieren Sie den Autostart.

    ```bash theme={null}
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    sudo systemctl enable --now docker
    docker compose version
    ```
  </Step>

  <Step title="Installationsverzeichnis anlegen">
    Legen Sie ein Verzeichnis an, zum Beispiel `/docker/variosai`, und kopieren Sie die vier Installationsdateien hinein. In diesem Verzeichnis entstehen später auch Datenbank, Dateien und Backups, sichern Sie es entsprechend.

    ```bash theme={null}
    sudo mkdir -p /docker/variosai
    cd /docker/variosai
    chmod +x varios.sh
    ```
  </Step>

  <Step title=".env anpassen">
    Die gelieferte `.env` enthält Vorgaben. Passen Sie mindestens diese Werte an:

    | Variable                                                                   | Bedeutung                                                                                                                  |
    | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
    | `PROJECT_DOMAIN`                                                           | Domain, unter der Nutzer VARIOS AI öffnen, ohne `https://`                                                                 |
    | `ACME_EMAIL`                                                               | E-Mail-Adresse für Let's Encrypt, nur bei automatischem Zertifikat                                                         |
    | `POSTGRES_PASSWORD`                                                        | Eigenes, starkes Datenbankpasswort                                                                                         |
    | `OIDC_*`                                                                   | Zugangsdaten Ihres Identitätsanbieters, siehe [Microsoft Entra ID einrichten](/de/monthly/installation/microsoft-entra-id) |
    | `ADMIN_GROUP_NAME`, `SUPERADMIN_GROUP_NAME`, `COMPLIANCE_ADMIN_GROUP_NAME` | Namen der Rollen im Identitätsanbieter, die Administratoren erhalten                                                       |
    | `SCIM_*`                                                                   | Benutzersynchronisation, siehe Entra-Seite                                                                                 |

    <Warning>
      Die `.env` enthält Passwörter und Geheimnisse. Geben Sie sie nicht weiter und nehmen Sie sie in jedes Backup auf.
    </Warning>
  </Step>

  <Step title="HTTPS festlegen">
    Standardmäßig holt VARIOS AI das Zertifikat automatisch über Let's Encrypt. Dafür müssen `PROJECT_DOMAIN` auf den Server zeigen und die Ports 80 und 443 aus dem Internet erreichbar sein. Weitere Vorbereitungen sind nicht nötig, die Zertifikatsdateien werden beim ersten Start automatisch angelegt.

    Soll stattdessen ein eigenes Zertifikat verwendet werden, folgen Sie [Eigenes HTTPS-Zertifikat konfigurieren](/de/monthly/sicherheit/traefik-zertifikate). Für einen vorgelagerten Reverse-Proxy Ihres Unternehmens sprechen Sie den Support an.
  </Step>

  <Step title="An der Container-Registry anmelden">
    Die Zugangsdaten erhalten Sie vom VARIOS-AI-Team. Die Anmeldung bleibt auf dem Server gespeichert und ist nach einem Serverwechsel zu wiederholen.

    ```bash theme={null}
    docker login aibroker.azurecr.io
    ```
  </Step>

  <Step title="Dienste starten">
    ```bash theme={null}
    docker compose pull
    docker compose up -d
    docker compose ps
    ```

    Der erste Start lädt alle Images und dauert einige Minuten. Anschließend sollten alle Dienste als `running` oder `healthy` gelistet sein.
  </Step>

  <Step title="Datenbank einrichten">
    ```bash theme={null}
    docker compose exec php ./update.sh
    ```

    Das Skript legt die Datenbank an, lädt die Vorlagenbibliothek und bereitet die Anwendung vor. Beim ersten Lauf kann das 15 bis 60 Minuten dauern, brechen Sie es nicht ab. Es prüft dabei auch, ob der Prozessor AVX2 unterstützt.

    <Check>
      Danach ist VARIOS AI unter `https://<PROJECT_DOMAIN>` erreichbar.
    </Check>
  </Step>

  <Step title="Anmelden und Lizenz eintragen">
    Melden Sie sich mit einem Konto an, das im Identitätsanbieter die Rolle aus `SUPERADMIN_GROUP_NAME` trägt. Tragen Sie den Lizenzschlüssel vom VARIOS-AI-Team unter Administration → Einstellungen → [Systeminformationen](/de/monthly/admin/einstellungen/systeminformationen) ein.
  </Step>

  <Step title="Update-Helfer einrichten">
    `varios.sh` führt die Updates aus, die Sie in der Oberfläche anstoßen. Richten Sie ihn als systemd-Dienst ein, damit er nach einem Neustart weiterläuft, siehe [systemd-Dienst](/de/monthly/sicherheit/systemd-dienst).

    <Warning>
      Der Update-Helfer entfernt nach jedem Update ungenutzte Docker-Images und -Volumes des gesamten Servers. Betreiben Sie keine weiteren Docker-Anwendungen auf demselben Server.
    </Warning>
  </Step>
</Steps>

## Updates

Updates stoßen Sie unter Administration → Einstellungen → [Systeminformationen](/de/monthly/admin/einstellungen/systeminformationen) an. Dort sehen Sie, ob eine neue Version verfügbar ist, und wählen die Zielversion; der Update-Helfer `varios.sh` führt das Update aus. Planen Sie dafür ein Wartungsfenster, während des Updates ist VARIOS AI einige Minuten nicht erreichbar.

Erstellen Sie vor jedem Update einen Snapshot oder ein Backup, siehe [Backup und Wiederherstellung](/de/monthly/betrieb/backup).

## Prüfung nach der Installation

* `https://<PROJECT_DOMAIN>` öffnet ohne Zertifikatswarnung.
* Anmeldung mit einem normalen Konto und mit einem Administratorkonto funktioniert, das Menü Administration ist sichtbar.
* Lizenzschlüssel eingetragen, keine Lizenzmeldung.
* Ein Testchat wird beantwortet.
* Update-Helfer läuft als systemd-Dienst, tägliche Datenbank-Sicherungen erscheinen unter `PostgresBackups`.

## Fehlersuche

| Symptom                       | Prüfen                                                                                                       |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Seite lädt nicht              | DNS-Eintrag, Firewall, `docker compose ps`                                                                   |
| Zertifikatswarnung im Browser | Ports 80 und 443 aus dem Internet erreichbar, `ACME_EMAIL` gesetzt, `docker compose logs traefik`            |
| Anmeldung schlägt fehl        | Redirect-URI im Identitätsanbieter, abgelaufenes Client-Secret, Rolle des Nutzers, `docker compose logs php` |
| Images werden nicht geladen   | Registry-Anmeldung, `VERSION` in der `.env`, Internetzugang                                                  |
| Update bricht ab              | Meldung zu AVX2 im Protokoll, `docker compose logs postgres`, danach das Update erneut anstoßen              |
| Nichts läuft nach Neustart    | `systemctl status docker`, `docker compose up -d`, Status des Update-Helfers                                 |
