services: dispatcher: build: . ports: - "8030:8000" environment: ADMIN_USERNAME: ${ADMIN_USERNAME:-admin} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change-me-now} SESSION_SECRET: ${SESSION_SECRET:-replace-with-a-long-random-secret} WEBHOOK_TOKEN: ${WEBHOOK_TOKEN:-} RETENTION_DAYS: ${RETENTION_DAYS:-30} MAX_DELIVERY_ATTEMPTS: ${MAX_DELIVERY_ATTEMPTS:-3} RETRY_BACKOFF_SECONDS: ${RETRY_BACKOFF_SECONDS:-60} volumes: - dispatcher-data:/data worker: build: . command: ["python", "-m", "app.worker"] environment: ADMIN_USERNAME: ${ADMIN_USERNAME:-admin} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change-me-now} SESSION_SECRET: ${SESSION_SECRET:-replace-with-a-long-random-secret} WEBHOOK_TOKEN: ${WEBHOOK_TOKEN:-} RETENTION_DAYS: ${RETENTION_DAYS:-30} MAX_DELIVERY_ATTEMPTS: ${MAX_DELIVERY_ATTEMPTS:-3} RETRY_BACKOFF_SECONDS: ${RETRY_BACKOFF_SECONDS:-60} WORKER_INTERVAL_SECONDS: ${WORKER_INTERVAL_SECONDS:-15} volumes: - dispatcher-data:/data volumes: dispatcher-data: