Files
container/vaultwarden/docker-compose.yml

46 lines
1.4 KiB
YAML
Raw Normal View History

services:
# 1⃣ PostgreSQL-Server
postgres:
image: postgres:16-alpine
restart: unless-stopped
dns:
- 1.1.1.1
- 8.8.8.8
environment:
- POSTGRES_USER=${POSTGRES_USER:-vaultwarden}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-vaultwarden}
- POSTGRES_DB=${POSTGRES_DB:-vaultwarden}
volumes:
- "${PG_DATA:-./pgdata}:/var/lib/postgresql/data"
healthcheck:
test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER:-vaultwarden}"]
interval: 10s
timeout: 5s
retries: 5
# 2⃣ Vaultwarden-Service
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
- DOMAIN=https://${DOMAIN:-localhost}
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED:-false}
- ADMIN_TOKEN=${ADMIN_TOKEN}
# TLS KONFIGURATION
- ROCKET_TLS={certs="/data/ssl/cert.pem",key="/data/ssl/key.pem"}
- DATABASE_URL=postgresql://${POSTGRES_USER:-vaultwarden}:${POSTGRES_PASSWORD:-vaultwarden}@postgres:5432/${POSTGRES_DB:-vaultwarden}
volumes:
- "${VW_DATA:-./vw-data}:/data"
# Wir mounten den lokalen certs-Ordner direkt in den Container
- "${CERT_DATA:-./certs}:/certs:ro"
ports:
- "${HOST_HTTP:-4430}:80"
healthcheck:
test: ["CMD", "curl", "-f", "-k", "https://localhost:80/alive"]
interval: 30s
timeout: 10s
retries: 3