Files
compose-files/vaultwarden/vaultwarden.yaml
T

71 lines
1.8 KiB
YAML

services:
Vaultwarden:
cap_drop:
- "AUDIT_CONTROL"
- "BLOCK_SUSPEND"
- "DAC_READ_SEARCH"
- "IPC_LOCK"
- "IPC_OWNER"
- "LEASE"
- "LINUX_IMMUTABLE"
- "MAC_ADMIN"
- "MAC_OVERRIDE"
- "NET_ADMIN"
- "NET_BROADCAST"
- "SYSLOG"
- "SYS_ADMIN"
- "SYS_BOOT"
- "SYS_MODULE"
- "SYS_NICE"
- "SYS_PACCT"
- "SYS_PTRACE"
- "SYS_RAWIO"
- "SYS_RESOURCE"
- "SYS_TIME"
- "SYS_TTY_CONFIG"
- "WAKE_ALARM"
command:
- "/start.sh"
environment:
- ADMIN_TOKEN_FILE=/run/secrets/vaultwarden_admin_token
- DATABASE_URL_FILE=/run/secrets/vaultwarden_database_url
hostname: "Vaultwarden"
image: "vaultwarden/server:latest"
networks:
- traefik_backend
- postgresql_db-backend
stdin_open: true
tty: true
volumes:
- "/volume1/docker/Vaultwarden/data:/data"
secrets:
- vaultwarden_admin_token
- source: vaultwarden_database_url_v2
target: vaultwarden_database_url
working_dir: "/"
deploy:
labels:
- traefik.enable=true
- "traefik.http.routers.vaultwarden.rule=Host(`vault.${DOMAIN}`) || Host(`vault.${ALT_DOMAIN}`)"
- traefik.http.routers.vaultwarden.tls=true
- traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt
- traefik.http.routers.vaultwarden.entrypoints=websecure
- traefik.http.services.vaultwarden.loadbalancer.server.port=80
- traefik.swarm.network=traefik_backend
resources:
limits:
cpus: '4' # Limit to 0.5 CPU core
memory: 1G
secrets:
vaultwarden_admin_token:
external: true
vaultwarden_database_url_v2:
external: true
networks:
postgresql_db-backend:
external: true
traefik_backend:
external: true