services: bot: build: . restart: unless-stopped environment: BOT_TOKEN: ${BOT_TOKEN} BREEZ_API_KEY: ${BREEZ_API_KEY} DATABASE_URL: sqlite:./data/bot.db REGISTRY_URL: ${REGISTRY_URL:-} REGISTRY_WRITE_KEY: ${REGISTRY_WRITE_KEY:-} REGISTRY_READ_KEY: ${REGISTRY_READ_KEY:-} SESSION_SWEEP_INTERVAL_MS: ${SESSION_SWEEP_INTERVAL_MS:-60000} BOT_INSTANCE_NAME: ${BOT_INSTANCE_NAME:-mybot} WEBAPP_PORT: ${WEBAPP_PORT:-3000} WEBAPP_URL: ${WEBAPP_URL:-} NODE_ENV: production ports: - "${WEBAPP_PORT:-3000}:${WEBAPP_PORT:-3000}" volumes: - bot_data:/app/data healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:${WEBAPP_PORT:-3000}/health', r => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"] interval: 30s timeout: 10s retries: 3 volumes: bot_data: