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 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: vaultwarden/server: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} - DOMAIN="${DOMAIN}" - WEBSOCKET_ENABLED=${WEBSOCKET_ENABLED} - SIGNUPS_ALLOWED=${SIGNUPS_ALLOWED} - ADMIN_TOKEN=${ADMIN_TOKEN} - LOG_FILE=/data/vaultwarden.log volumes: - ${APPDATA_PATH}/vaultwarden/data:/data/ ports: - ${SERVER_PORT}:80 restart: unless-stopped