Files
homelab-infra/security/vaultwarden/docker-compose.yml
T
2026-06-01 15:52:31 +02:00

55 lines
1.7 KiB
YAML

services:
vaultwarden:
image: vaultwarden/server:1.36.0@sha256:d626d04934cd1192ad8ced1adb975099fca78cec33ab467d2d3c923cde7f3b0c
container_name: vaultwarden
restart: unless-stopped
environment:
TZ: Europe/Berlin
DOMAIN: https://vault.kaleschke.info
WEBSOCKET_ENABLED: "true"
SIGNUPS_ALLOWED: "false"
INVITATIONS_ALLOWED: "false"
ADMIN_TOKEN_FILE: /run/secrets/admin_token
SMTP_HOST: smtp.gmx.net
SMTP_PORT: "587"
SMTP_SECURITY: starttls
SMTP_USERNAME: michideheld@gmx.de
SMTP_PASSWORD_FILE: /run/secrets/smtp_password
SMTP_FROM: michideheld@gmx.de
SMTP_FROM_NAME: KalliLab Vaultwarden
ROCKET_PORT: 80
ROCKET_ADDRESS: 0.0.0.0
volumes:
- /mnt/user/appdata/vaultwarden:/data
- /mnt/user/appdata/secrets/vaultwarden_admin_token.txt:/run/secrets/admin_token:ro
- /mnt/user/appdata/secrets/homelab_smtp_password.txt:/run/secrets/smtp_password:ro
networks:
- frontend_net
security_opt:
- no-new-privileges:true
healthcheck:
# vaultwarden image ships curl, not wget
test: ["CMD-SHELL", "curl -fsS http://localhost:80/alive || exit 1"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
labels:
- traefik.enable=true
- traefik.docker.network=frontend_net
- traefik.http.routers.vaultwarden.rule=Host(`vault.kaleschke.info`)
- traefik.http.routers.vaultwarden.entrypoints=websecure
- traefik.http.routers.vaultwarden.tls=true
- traefik.http.routers.vaultwarden.tls.certresolver=le
- traefik.http.services.vaultwarden.loadbalancer.server.port=80
networks:
frontend_net:
external: true