services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: ${POSTGRES_USER:-mangalord} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-mangalord} POSTGRES_DB: ${POSTGRES_DB:-mangalord} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mangalord}"] interval: 5s timeout: 5s retries: 10 backend: build: ./backend depends_on: postgres: condition: service_healthy environment: DATABASE_URL: postgres://${POSTGRES_USER:-mangalord}:${POSTGRES_PASSWORD:-mangalord}@postgres:5432/${POSTGRES_DB:-mangalord} BIND_ADDRESS: 0.0.0.0:8080 STORAGE_DIR: /var/lib/mangalord/storage RUST_LOG: ${RUST_LOG:-info,mangalord=debug} volumes: - storage-data:/var/lib/mangalord/storage ports: - "8080:8080" frontend: build: ./frontend depends_on: - backend environment: PUBLIC_API_BASE: ${PUBLIC_API_BASE:-http://localhost:8080/api} ports: - "3000:3000" volumes: postgres-data: storage-data: