services: db: build: context: . dockerfile: Dockerfile.postgres restart: unless-stopped environment: POSTGRES_USER: calendar_admin POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?Set CALENDAR_ADMIN_PASSWORD in module configuration} POSTGRES_DB: calendar CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?Set CALENDAR_DB_PASSWORD in module configuration} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U calendar_admin -d calendar"] interval: 5s timeout: 5s retries: 10 db-backup: image: prodrigestivill/postgres-backup-local:16-alpine restart: unless-stopped depends_on: db: condition: service_healthy environment: POSTGRES_HOST: db POSTGRES_DB: calendar POSTGRES_USER: calendar_admin POSTGRES_PASSWORD: ${CALENDAR_ADMIN_PASSWORD:?Set CALENDAR_ADMIN_PASSWORD in module configuration} SCHEDULE: "@daily" BACKUP_KEEP_DAYS: 7 BACKUP_KEEP_WEEKS: 4 BACKUP_KEEP_MONTHS: 3 POSTGRES_EXTRA_OPTS: "-Z6" TZ: Europe/Berlin volumes: - pgbackups:/backups app: build: context: . args: HUB_BASE_PATH: /kalendartool MPM_AUTH_MODE: "true" restart: unless-stopped depends_on: db: condition: service_healthy environment: MPM_AUTH_MODE: "true" HUB_BASE_PATH: /kalendartool CALENDAR_DB_PASSWORD: ${CALENDAR_DB_PASSWORD:?Set CALENDAR_DB_PASSWORD in module configuration} ALLOW_OPEN_REGISTRATION: "false" NODE_ENV: production expose: - "41030" healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://127.0.0.1:41030/health', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"] interval: 10s timeout: 3s retries: 10 start_period: 45s volumes: pgdata: {} pgbackups: {}