services: vaultwarden_db: image: docker.io/library/postgres:17.5 container_name: vaultwarden_db environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ${APPDATA_PATH}/vaultwarden/db:/var/lib/postgresql/data ports: - ${DB_PORT}:5432 networks: - backend restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] start_period: 20s interval: 30s retries: 5 timeout: 5s vaultwarden_server: image: ghcr.io/dani-garcia/vaultwarden:1.34.1 container_name: vaultwarden_server depends_on: vaultwarden_db: condition: service_healthy environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@vaultwarden_db:5432/${POSTGRES_DB} - WEBSOCKET_ENABLED=${WEBSOCKET_ENABLED} - LOG_FILE=/data/vaultwarden.log # - DOMAIN=${DOMAIN} #Only need to set on first run # - SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED} #Only need to set on first run # - ADMIN_TOKEN=${ADMIN_TOKEN} #Only need to set on first run volumes: - ${APPDATA_PATH}/vaultwarden/data:/data/ ports: - ${SERVER_PORT}:80 networks: - frontend - backend restart: unless-stopped networks: frontend: external: true backend: external: true