huggingFlow / docker-compose.yml
somratpro's picture
chore: production-readiness pass β€” add missing release files, clean up code
0ff29e3
version: '3.8'
# HuggingFlow β€” local development
# Usage:
# cp .env.example .env # fill in LLM_MODEL, LLM_API_KEY, etc.
# docker-compose up --build
services:
huggingflow:
build:
context: .
dockerfile: Dockerfile
container_name: huggingflow
environment:
# ── Required ────────────────────────────────────────────────
LLM_MODEL: ${LLM_MODEL:-openai/gpt-4o}
LLM_API_KEY: ${LLM_API_KEY:-}
# ── Search (optional) ────────────────────────────────────────
SERPER_API_KEY: ${SERPER_API_KEY:-}
TAVILY_API_KEY: ${TAVILY_API_KEY:-}
JINA_API_KEY: ${JINA_API_KEY:-}
# ── Auth ─────────────────────────────────────────────────────
AUTH_JWT_SECRET: ${AUTH_JWT_SECRET:-dev-secret-change-in-production}
# ── HF Dataset backup (optional) ─────────────────────────────
HF_TOKEN: ${HF_TOKEN:-}
HF_USERNAME: ${HF_USERNAME:-}
BACKUP_DATASET_NAME: ${BACKUP_DATASET_NAME:-huggingflow-backup}
SYNC_INTERVAL: ${SYNC_INTERVAL:-600}
# ── Custom LLM endpoint (optional) ───────────────────────────
CUSTOM_BASE_URL: ${CUSTOM_BASE_URL:-}
# ── Cloudflare (optional) ─────────────────────────────────────
CLOUDFLARE_WORKERS_TOKEN: ${CLOUDFLARE_WORKERS_TOKEN:-}
CLOUDFLARE_PROXY_URL: ${CLOUDFLARE_PROXY_URL:-}
# ── Timeouts ─────────────────────────────────────────────────
BACKEND_READY_TIMEOUT: ${BACKEND_READY_TIMEOUT:-120}
FRONTEND_READY_TIMEOUT: ${FRONTEND_READY_TIMEOUT:-120}
# ── Privacy ──────────────────────────────────────────────────
DO_NOT_TRACK: "1"
ports:
- "7860:7860" # Public: status dashboard + reverse proxy
volumes:
# Persist data between docker-compose up/down cycles
- huggingflow_data:/app/data
# Hot-reload orchestration scripts (no rebuild needed)
- ./start.sh:/app/start.sh
- ./health-server.js:/app/health-server.js
- ./deerflow-sync.py:/app/deerflow-sync.py
- ./nginx.conf:/etc/nginx/nginx.conf
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:7860/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 90s
restart: unless-stopped
volumes:
huggingflow_data:
driver: local