# Installation Schritt für Schritt

Die ganze Installation erledigt ein Befehl, `./draften install`, ausgeführt im
entpackten Paket. Hier ist der Ablauf vom leeren Server bis zur ersten
Anmeldung. Was eine Installation enthält und was wo liegt, beschreibt
[Installation auf dem eigenen Server](/de/admin/self-hosting).

## Schritt 1: Den Server vorbereiten

- x86-64 mit Linux (auch ein Synology oder ein anderes NAS mit Docker
  funktioniert),
- Docker Engine 24 oder neuer mit dem Compose-Plugin – prüfen Sie das mit
  `docker compose version`,
- 4 GB Arbeitsspeicher und 20 GB Speicherplatz,
- die Werkzeuge `tar`, `base64` und `sha256sum` (oder `shasum`), die fast jedes
  System hat.

Für die Installation braucht der Server kein Internet: Das Paket bringt alle
Images mit.

## Schritt 2: Prüfen, dass das Paket von uns ist

Zu jedem Versionspaket `draften-<version>.tar` veröffentlichen wir seine
Prüfsumme. Berechnen Sie sie und vergleichen Sie:

```
sha256sum draften-<version>.tar
```

Jede spätere Aktualisierung prüft die Installation selbst anhand unserer
Schlüssel. Die erste Installation hat allerdings nichts, womit sie vergleichen
könnte – das hier ist ihre Prüfung. Weichen die Prüfsummen ab, installieren Sie
das Paket nicht und melden Sie sich bei uns.

## Schritt 3: Das Paket entpacken und das Installationsprogramm starten

Wählen Sie das Verzeichnis, in dem die Installation liegen soll, entpacken Sie
das Paket dorthin und starten Sie das Installationsprogramm:

```
mkdir /srv/draften
tar -xf draften-<version>.tar -C /srv/draften
cd /srv/draften
./draften install
```

Das Installationsprogramm lädt die Images, prüft das Paket und fragt nach dem,
was es braucht.

## Schritt 4: Die Fragen des Installationsprogramms beantworten

- **Die Adresse**, unter der die Leute draften öffnen, etwa
  `https://draften.firma.cz`. Es muss die Adresse sein, die sie wirklich
  verwenden – aus ihr entstehen die Weiterleitungsadressen für die Anmeldung
  mit Microsoft und Google.
- **Die Organisation** und ihr **Kurzname** (Kleinbuchstaben, Ziffern,
  Bindestriche).
- **Der erste Administrator**: E-Mail-Adresse, Name und Sprache (`cs` oder
  `en`). Er wird Inhaber der Organisation und Betreiber der ganzen
  Installation.
- **Der Updater** (ja / nein) – ein Dienst, mit dem Sie über die
  Weboberfläche aktualisieren, die Zahl der Prozesse ändern und den
  Verschlüsselungsschlüssel ersetzen. Er hat Zugriff auf Docker, was
  Root-Rechte auf diesem Rechner bedeutet. Ohne ihn funktioniert alles über die
  Kommandozeile.
- **Das HTTPS-Zertifikat** – die Zertifikatsdatei und ihr Schlüssel (PEM), wenn
  HTTPS direkt in draften enden soll. Lassen Sie das leer, wenn ein Reverse
  Proxy oder ein Tunnel vor draften sich um HTTPS kümmert (siehe Schritt 7).

Jede Antwort lässt sich auch direkt im Befehl angeben, sodass Sie die
Installation skripten können; `./draften help` listet die Optionen auf. Zum
Beispiel:

```
./draften install --url https://draften.firma.cz --org "Firma GmbH" \
  --admin-email jan@firma.cz --admin-name "Jan Novák" --locale cs --updater yes
```

## Schritt 5: Eine Kopie von `.env` außerhalb des Servers aufbewahren

Das Installationsprogramm schreibt die Einstellungen und Geheimnisse in die
Datei `.env` im Verzeichnis der Installation. **Kopieren Sie sie – mindestens
den Wert `MASTER_KEY` – an einen sicheren Ort außerhalb des Servers.** Dieser
Schlüssel verschlüsselt die Zugriffe auf Postfächer, die Modellschlüssel und
die Passwörter für den E-Mail-Versand. Ohne ihn kann sie niemand lesen, auch
nicht aus einer Sicherung – und wir haben ihn nicht.

## Schritt 6: Das Passwort festlegen und sich anmelden

Am Ende gibt das Installationsprogramm einen Link zum Festlegen des Passworts
des ersten Administrators aus. Öffnen Sie ihn im Browser, legen Sie das
Passwort fest, und Sie sind angemeldet. Der Link funktioniert einmal und ist
7 Tage gültig. Wie die Seite für das Passwort aussieht, zeigt die Anleitung
[Anmeldung](/de/signing-in).

!> Den Link gibt nur das Installationsprogramm aus. Kopieren Sie ihn nirgendwohin
und leiten Sie ihn nicht weiter – wer ihn hat, legt das Passwort des
Administrators fest.

## Schritt 7: Die Adresse veröffentlichen

Je nachdem, was Sie in Schritt 4 gewählt haben:

- **Mit Zertifikat** lauscht draften selbst auf Port 443 und leitet von Port 80
  auf HTTPS um. Die Adresse muss im DNS nur auf diesen Server zeigen.
- **Ohne Zertifikat** lauscht draften auf `127.0.0.1:8085`, und Ihr Reverse
  Proxy oder Tunnel davor beendet HTTPS. Läuft der Proxy auf einem anderen
  Rechner, setzen Sie in `.env` `WEB_BIND=0.0.0.0:8085`.
- **Mit einem Cloudflare Tunnel** ist kein offener Port nötig: Tragen Sie das
  Token des Tunnels in `.env` ein (`CLOUDFLARE_TUNNEL_TOKEN`), fügen Sie
  `tunnel` zu `COMPOSE_PROFILES` hinzu (etwa `COMPOSE_PROFILES=updater,tunnel`)
  und führen Sie `docker compose up -d` aus. Richten Sie den Tunnel in
  Cloudflare auf `http://127.0.0.1:8085`.

Ein Zertifikat lässt sich auch später hinzufügen:

```
./draften certificate cert.pem key.pem --url https://draften.firma.cz
```

## Schritt 8: Die Lizenz hochladen

Die Lizenz senden wir als Datei `licence-<number>.json`. Öffnen Sie in der
Oberfläche **Installation → Installation**, wählen Sie die Datei unten in der
Karte **Lizenz** und laden Sie sie hoch. Solange die Installation keine Lizenz
hat, verarbeiten die Assistenten keine Post, und es lassen sich weder
Postfächer noch Assistenten anlegen. Mehr unter [Die Lizenz](/de/admin/licence).

## Schritt 9: Standardschlüssel und E-Mail-Versand festlegen

Legen Sie auf derselben Seite **Installation** die **Standard-API-Schlüssel**
für die Modelle und den **Standard-E-Mail-Versand** fest (von wo Einladungen
und Passwort-Links kommen). Sie gelten für jede Organisation, die keine eigenen
festlegt. Einzelheiten: [API-Schlüssel für Modelle](/de/admin/api-keys) und
[E-Mail-Versand](/de/admin/outgoing-mail).

## Schritt 10: Ein Postfach verbinden und einen Assistenten einrichten

Ab hier geht es weiter wie bei jeder anderen Installation:

1. [Ein Postfach hinzufügen und verbinden](/de/admin/adding-a-mailbox).
2. [Einen Assistenten in der geführten Einrichtung anlegen](/de/new-assistant).
3. Weitere Personen einladen – [Personen und Rollen](/de/admin/people-and-roles).

## Schritt 11: Prüfen, dass alles läuft

```
./draften status
```

gibt die Version, den Zustand der Weboberfläche und der Worker, den Stand von
HTTPS und die Datenbanksicherungen aus. In der Oberfläche zeigt die Seite
**Betrieb**, ob sich die Worker melden – siehe
[Betrieb und Kapazität](/de/admin/operations).

## Schritt 12: Für die Sicherungen sorgen

Mit dem Updater sichert sich die Datenbank von selbst, jeden Tag um 01:00 Uhr,
in den Ordner `backups/` im Verzeichnis der Installation; die Uhrzeit ändern
Sie unter **Installation → Installation** in der Karte
**Datenbanksicherungen**. Ohne Updater führen Sie `./draften backup` per cron
aus. Die Sicherungen liegen allerdings auf derselben Platte wie die Datenbank:
**Richten Sie das Kopieren von `backups/` und `.env` vom Server weg ein.**
Einzelheiten: [Sicherung und Wiederherstellung](/de/admin/backup-and-restore).

## Weiter

- [Aktualisieren mit dem Updater](/de/admin/updating-with-the-updater) – eine
  neue Version mit einer Schaltfläche,
- [Aktualisieren über die Kommandozeile](/de/admin/updating),
- [Sicherung und Wiederherstellung](/de/admin/backup-and-restore),
- [Fehlerbehebung](/de/admin/troubleshooting).
