Docker-Deployment
Noirdoc mit Docker Compose bereitstellen.
Voraussetzungen
Stellen Sie vor Beginn sicher, dass Sie Folgendes haben:
- Docker Engine 24 oder neuer
- Docker Compose V2 (in Docker Desktop enthalten oder über das Paket
docker-compose-plugininstallierbar) - Einen API-Key von mindestens einem unterstützten LLM-Provider (OpenAI, Anthropic, Azure OpenAI oder OpenRouter)
Encryption-Key generieren
Noirdoc verschluesselt alle Provider-API-Keys und sensible Konfigurationsdaten im Ruhezustand mit einem symmetrischen Fernet-Key. Generieren Sie einen, bevor Sie starten:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
Speichern Sie die Ausgabe sicher ab — Sie benoetigen sie in Ihrer docker-compose.yml. Wenn Sie diesen Key verlieren, koennen verschluesselte Provider-Keys nicht wiederhergestellt werden.
Standalone-Deployment
Der schnellste Weg, um loszulegen, ist der Standalone-Modus. Erstellen Sie eine docker-compose.yml mit folgendem Inhalt:
services:
proxy:
build: .
ports:
- "8000:8000"
environment:
- MODE=standalone
- DATABASE_URL=postgresql+asyncpg://noirdoc:secret@postgres:5432/noirdoc
- REDIS_URL=redis://redis:6379/0
- ENCRYPTION_KEY=your-fernet-key
- STANDALONE_BEARER_TOKEN=your-secret-token
- STANDALONE_PROVIDER=openai
- STANDALONE_PROVIDER_KEY=sk-your-openai-key
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: noirdoc
POSTGRES_PASSWORD: secret
POSTGRES_DB: noirdoc
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
Ersetzen Sie your-fernet-key, your-secret-token und sk-your-openai-key durch Ihre tatsaechlichen Werte.
Stack starten
docker compose up -d
Deployment überpruefen
curl http://localhost:8000/health
Die erwartete Antwort:
{
"status": "ok",
"version": "1.0.0",
"mode": "standalone"
}
Ersten Request senden
curl http://localhost:8000/v1/chat/completions \
-H "Authorization: Bearer your-secret-token" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini",
"messages": [
{"role": "user", "content": "Fasse den Fall von Max Mustermann, geboren am 15.03.1985, zusammen."}
]
}'
Noirdoc pseudonymisiert den Namen und das Datum, bevor die Anfrage an OpenAI weitergeleitet wird, und stellt die Originalwerte in der Antwort wieder her.
Fuer die Multi-Tenant-Cloud-Modus-Konfiguration siehe die Konfigurationsreferenz.
Caddy für HTTPS hinzufuegen
Fuer Produktions-Deployments, die über das Internet erreichbar sind, fuegen Sie Caddy als Reverse-Proxy mit automatischem TLS hinzu:
caddy:
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
depends_on:
- proxy
Erstellen Sie eine Caddyfile im selben Verzeichnis:
api.ihredomain.de {
reverse_proxy proxy:8000
}
Caddy beschafft und erneuert automatisch ein Let’s-Encrypt-Zertifikat für Ihre Domain.
Aktualisierung
Um auf eine neue Noirdoc-Version zu aktualisieren, laden Sie die neuesten Aenderungen und bauen Sie das Image neu:
docker compose down
docker compose build --no-cache
docker compose up -d
Datenbankmigrationen werden beim Start automatisch ausgefuehrt. Erstellen Sie vor einem Upgrade immer ein Backup Ihres PostgreSQL-Volumes.
Nächste Schritte
- Konfigurationsreferenz — Deployment-Modi, Umgebungsvariablen und Beispiele