services: setlist: build: . image: setlist-app:latest container_name: ${CONTAINER_NAME:-setlist-app} restart: unless-stopped # Use Docker's default bridge network (no new subnet allocation). # This host's address pools are fully subnetted; creating a project # network would fail. network_mode: bridge ports: # host:container — host port is configured in .env (PORT) - "${PORT:-5036}:3000" environment: - TZ=Europe/London - NODE_ENV=production - PORT=3000 - HOST=0.0.0.0 - DB_PATH=/data/setlist.db - JWT_SECRET=${JWT_SECRET} volumes: - ./data:/data - /etc/localtime:/etc/localtime:ro healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/healthz"] interval: 30s timeout: 5s retries: 3 start_period: 5s