name: shd-build-stage services: app: image: ${SHD_IMAGE:-shd-build-stage:local} restart: unless-stopped init: true env_file: - .env.staging.runtime environment: HOST: 0.0.0.0 PORT: 3000 BODY_SIZE_LIMIT: 6M SKIP_DEFAULT_USERS: "true" TDR_DATABASE_PATH: /app/data/shd-build-staging.db TDR_AVATAR_STORAGE_PATH: /app/data/avatars TDR_GAME_ICON_STORAGE_PATH: /app/data/game-icons ports: - "127.0.0.1:${SHD_STAGE_PORT:-5569}:3000" volumes: - shd_stage_data:/app/data healthcheck: test: - CMD - node - -e - fetch('http://127.0.0.1:3000/api/health/database').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1)) interval: 15s timeout: 5s retries: 8 start_period: 30s stop_grace_period: 30s scheduler: image: ${SHD_IMAGE:-shd-build-stage:local} restart: unless-stopped init: true command: - scheduler env_file: - .env.staging.runtime environment: SCHEDULER_URL: http://app:3000/api/internal/scheduler depends_on: app: condition: service_healthy stop_grace_period: 30s volumes: shd_stage_data: name: shd-build-stage-data