50 lines
1.5 KiB
Bash
50 lines
1.5 KiB
Bash
|
|
version: "3.9"
|
||
|
|
|
||
|
|
services:
|
||
|
|
vaultwarden:
|
||
|
|
image: vaultwarden/server:latest
|
||
|
|
container_name: vaultwarden
|
||
|
|
restart: unless-stopped
|
||
|
|
environment:
|
||
|
|
# Base configuration
|
||
|
|
- DOMAIN=${DOMAIN}
|
||
|
|
- TZ=${TZ}
|
||
|
|
- WEBSOCKET_ENABLED=true
|
||
|
|
|
||
|
|
# Security
|
||
|
|
- SIGNUPS_ALLOWED=false
|
||
|
|
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
||
|
|
|
||
|
|
# Logging (optional)
|
||
|
|
- LOG_FILE=/data/vaultwarden.log
|
||
|
|
- LOG_LEVEL=info
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
- ./vw-data:/data
|
||
|
|
|
||
|
|
networks:
|
||
|
|
- traefik_default
|
||
|
|
|
||
|
|
labels:
|
||
|
|
- "traefik.enable=true"
|
||
|
|
|
||
|
|
# MAIN HTTP(S) APP
|
||
|
|
- "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.rozic-dev.com`)"
|
||
|
|
- "traefik.http.routers.vaultwarden.entrypoints=web,websecure"
|
||
|
|
- "traefik.http.routers.vaultwarden.middlewares=redirect-to-https"
|
||
|
|
- "traefik.http.routers.vaultwarden.tls=true"
|
||
|
|
- "traefik.http.routers.vaultwarden.tls.certresolver=letsencrypt"
|
||
|
|
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
|
||
|
|
|
||
|
|
# WEBSOCKET FOR LIVE UPDATES
|
||
|
|
- "traefik.http.routers.vaultwarden-ws.rule=Host(`vaultwarden.rozic-dev.com`) && Path(`/notifications/hub`)"
|
||
|
|
- "traefik.http.routers.vaultwarden-ws.entrypoints=web,websecure"
|
||
|
|
- "traefik.http.routers.vaultwarden-ws.middlewares=redirect-to-https"
|
||
|
|
- "traefik.http.routers.vaultwarden-ws.tls=true"
|
||
|
|
- "traefik.http.routers.vaultwarden-ws.tls.certresolver=letsencrypt"
|
||
|
|
- "traefik.http.services.vaultwarden-ws.loadbalancer.server.port=3012"
|
||
|
|
|
||
|
|
networks:
|
||
|
|
traefik_default:
|
||
|
|
external: true
|