services: web: build: context: . dockerfile: Dockerfile ports: - "4321:4321" volumes: - content-data:/app/content - ./site-context.json:/app/site-context.json environment: - HOST=0.0.0.0 - PORT=4321 - REPO_ROOT=/app - SITE_DATA_TTL_MS=${SITE_DATA_TTL_MS:-500} - EDITOR_SESSION_SECRET=${EDITOR_SESSION_SECRET:-change-me} - API_EDIT_SECRET=${API_EDIT_SECRET:-change-me} - PUBLIC_ORCHESTRATOR_URL=http://localhost:3001 depends_on: - orchestrator restart: unless-stopped orchestrator: build: context: . dockerfile: server/Dockerfile ports: - "3001:3001" volumes: - content-data:/app/content - ./site-context.json:/app/site-context.json - sqlite-data:/app/data environment: - ORCHESTRATOR_PORT=3001 - REPO_ROOT=/app - IDEMPOTENCY_DB_PATH=/app/data/dynamic-sites.db - SITE_DATA_TTL_MS=${SITE_DATA_TTL_MS:-500} - API_EDIT_SECRET=${API_EDIT_SECRET:-change-me} - OLLAMA_API_KEY=${OLLAMA_API_KEY:-} - OLLAMA_HOST=${OLLAMA_HOST:-https://ollama.com} - TELNYX_API_KEY=${TELNYX_API_KEY:-} - TELNYX_PUBLIC_KEY=${TELNYX_PUBLIC_KEY:-} - CORS_ALLOWED_ORIGIN=http://localhost:4321 - LOG_LEVEL=${LOG_LEVEL:-info} - PROPOSAL_TTL_MS=${PROPOSAL_TTL_MS:-900000} - SMS_RATE_LIMIT_PER_HOUR=${SMS_RATE_LIMIT_PER_HOUR:-10} stop_grace_period: 35s restart: unless-stopped volumes: content-data: sqlite-data: