Self-Hosting
Du kannst den gesamten Pia-Stack mit Docker Compose auf deiner eigenen Infrastruktur betreiben.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Docker und Docker Compose
- Eine Domain mit konfiguriertem DNS
- Mindestens 1 GB RAM
Schnellstart
Abschnitt betitelt „Schnellstart“- Hol dir das Deployment-Paket:
Pia Server ist source-available. Frag den Server-Quellcode, die unten verwendeten Deployment-Dateien
(docker-compose.prod.yml, .env.example, Caddyfile) und den Zugriff auf die Container-Images unter
kontakt@pia-ai.de an — dieselbe Adresse, die auch die Lizenz ausstellt.
Entpacke, was du zurückbekommst, und führe die weiteren Schritte in diesem Verzeichnis aus.
- Kopiere und konfiguriere die Umgebungsdatei:
cp .env.example .env.prod- Setze die erforderlichen Umgebungsvariablen in
.env.prod:
JWT_SECRET_KEY=<generiere-einen-zufälligen-64-Zeichen-String>ENCRYPTION_MASTER_KEY=<generiere-einen-zufälligen-64-Zeichen-String>POSTGRES_PASSWORD=<starkes-Passwort>- Starte die Services:
docker compose -f docker-compose.prod.yml up -dArchitektur
Abschnitt betitelt „Architektur“Der Produktions-Stack besteht aus:
| Service | Image | Port | Zweck |
|---|---|---|---|
| Caddy | caddy:2-alpine |
80, 443 | Reverse Proxy + automatisches HTTPS |
| Pia Server | ghcr.io/pia-ai-dev/pia-server |
8080 | API-Server |
| PostgreSQL | postgres:17-alpine |
5432 | Datenbank |
Caddy-Konfiguration
Abschnitt betitelt „Caddy-Konfiguration“Trage deine Domain im Caddyfile ein:
deine-domain.de { reverse_proxy pia-server:8080}Caddy besorgt sich TLS-Zertifikate automatisch über Let’s Encrypt.
Aktualisierung
Abschnitt betitelt „Aktualisierung“docker compose -f docker-compose.prod.yml pulldocker compose -f docker-compose.prod.yml up -d