services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${AURUM_POSTGRES_USER:-aurum} POSTGRES_PASSWORD: ${AURUM_POSTGRES_PASSWORD:-aurum} POSTGRES_DB: ${AURUM_POSTGRES_DB:-aurum} volumes: - aurum_pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${AURUM_POSTGRES_USER:-aurum}"] interval: 5s timeout: 5s retries: 10 backend: build: ./backend restart: unless-stopped environment: AURUM_POSTGRES_USER: ${AURUM_POSTGRES_USER:-aurum} AURUM_POSTGRES_PASSWORD: ${AURUM_POSTGRES_PASSWORD:-aurum} AURUM_POSTGRES_DB: ${AURUM_POSTGRES_DB:-aurum} AURUM_POSTGRES_HOST: db AURUM_POSTGRES_PORT: 5432 AURUM_CORS_ORIGINS: ${AURUM_CORS_ORIGINS:-*} AURUM_DEFAULT_CURRENCY: ${AURUM_DEFAULT_CURRENCY:-USD} depends_on: db: condition: service_healthy web: build: ./frontend restart: unless-stopped ports: - "${AURUM_WEB_PORT:-3000}:80" environment: # Both unset = no login screen at all. See frontend/docker-entrypoint.d/20-basic-auth.sh. AURUM_BASIC_AUTH_USER: ${AURUM_BASIC_AUTH_USER:-} AURUM_BASIC_AUTH_PASSWORD: ${AURUM_BASIC_AUTH_PASSWORD:-} depends_on: - backend volumes: aurum_pgdata: