Infisical als Docker-Compose-Setup: App + PostgreSQL + Redis, hinter einem externen Caddy-Reverse-Proxy.
- Docker & Docker Compose
- Ein externer Caddy-Reverse-Proxy (caddy-docker-proxy) am Docker-Netzwerk
caddy - Optional: ein Ofelia-Container für die täglichen DB-Backups
-
.envaus der Vorlage anlegen:cp .env.example .env
-
Secrets generieren und in
.enveintragen:openssl rand -hex 16 # -> ENCRYPTION_KEY openssl rand -base64 32 # -> AUTH_SECRET
-
CADDY_DOMAINin.envauf deine Domain setzen (daraus wird automatischSITE_URL=https://<domain>).
docker compose up -dDanach die Domain im Browser öffnen und beim ersten Aufruf den Admin-Account anlegen. Die DB-Migrationen laufen beim Start automatisch.
Status prüfen:
docker compose ps
docker compose logs -f appAlle Werte stehen im environment-Block von docker-compose.yml; geheime/umgebungsspezifische Werte kommen aus .env:
| Variable | Beschreibung |
|---|---|
ENCRYPTION_KEY |
Schlüssel für Ver-/Entschlüsselung (Pflicht) |
AUTH_SECRET |
Secret zum Signieren der JWTs (Pflicht) |
CADDY_DOMAIN |
Öffentliche Domain, steuert Caddy-Routing und SITE_URL |
CADDY_TYPE / CADDY_PORT |
Caddy-Proxy-Typ / interner App-Port (8080) |
DB (infisical/infisical) und Redis laufen nur im internen Docker-Netz und sind nicht nach außen veröffentlicht.
Wird nur für E-Mail-Verifizierung, Einladungen und Passwort-Reset benötigt. Bei Bedarf im app-Service ergänzen:
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_USERNAME=${SMTP_USERNAME}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- SMTP_FROM_ADDRESS=${SMTP_FROM_ADDRESS}
- SMTP_FROM_NAME=${SMTP_FROM_NAME}Google-, GitHub- und GitLab-Login sind self-hosted kostenlos (über zusätzliche CLIENT_*-Variablen). OIDC und SAML benötigen eine Enterprise-Lizenz.
docker-compose.yml nutzt infisical/infisical:latest — empfohlen wird das Pinnen einer Version (z. B. infisical/infisical:v0.161.0).
docker compose pull
docker compose up -dDer db-Service trägt Ofelia-Labels für ein tägliches Backup (01:00 Uhr) nach /var/lib/postgresql/backup.sql (liegt im Volume db_data). Dazu muss ein Ofelia-Container laufen, der die Labels ausführt.
Manuelles Backup:
docker compose exec db pg_dumpall -U infisical -f /var/lib/postgresql/backup.sql