services: db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-orderly} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} POSTGRES_DB: ${POSTGRES_DB:-orderly} volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-orderly}"] interval: 10s timeout: 5s retries: 5 api: image: ghcr.io/clucraft/orderly-api:latest restart: unless-stopped environment: DATABASE_URL: postgresql://${POSTGRES_USER:-orderly}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-orderly} JWT_SECRET: ${JWT_SECRET:-change-this-to-a-random-secret} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-} PORT: 3001 NODE_ENV: production ports: - "3001:3001" depends_on: db: condition: service_healthy client: image: ghcr.io/clucraft/orderly-client:latest restart: unless-stopped ports: - "8080:80" depends_on: - api volumes: pgdata: