version: '3.8' services: worldplay: build: . container_name: worldplay-website restart: unless-stopped environment: - NODE_ENV=production - PORT=3000 - DATA_DIR=/app/data - ADMIN_TOKEN=${ADMIN_TOKEN:-worldplay-admin-2026} - RESEND_API_KEY=${RESEND_API_KEY} - GOOGLE_SHEET_ID=${GOOGLE_SHEET_ID} - GOOGLE_CREDENTIALS=${GOOGLE_CREDENTIALS} volumes: - worldplay-data:/app/data labels: - "traefik.enable=true" - "traefik.docker.network=traefik-public" # Main domains - "traefik.http.routers.worldplay.rule=Host(`worldplay.art`) || Host(`www.worldplay.art`)" - "traefik.http.routers.worldplay.entrypoints=web" - "traefik.http.routers.worldplay.service=worldplay" - "traefik.http.services.worldplay.loadbalancer.server.port=3000" networks: - traefik-public healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/health"] interval: 30s timeout: 3s retries: 3 start_period: 10s volumes: worldplay-data: driver: local networks: traefik-public: external: true