- pnpm monorepo: apps/api (Fastify + SQLite + SSE), apps/web (React+Vite), packages/shared, packages/pi-adapter - Local auth (admin/webhook-runner roles) + Keycloak JWT ready - Multi-session chat with reliable history (user persisted before LLM, assistant persisted after stream) - Markdown knowledge base with /api/docs/search + /api/docs/:id - YAML webhook catalog with backend-only execution, retry/backoff, audit (webhook_runs), and per-user rate limit - Skills config (sre-on-call, blameless-postmortem, security-incident) injected into LLM system prompt - LLM provider failover chain (config/models.yml fallback + LLM_FALLBACK_CHAIN override) - Context-aware webhooks panel + backend id-mention safety net - Per-message stats (time/duration/tokens/model), Markdown+GFM render, code & table copy/download buttons - Vitest suite, end-to-end smoke test (scripts/smoke.mjs), per-session system prompt override - /metrics Prometheus endpoint + /api/metrics JSON, request-id correlation - dotenv with explicit repo-root path; envString/envNumber helpers (handles empty-string env) - Runbooks + SOPs under knowledge/ in English; README, docs, and INDEX.md in English
28 lines
614 B
YAML
28 lines
614 B
YAML
services:
|
|
api:
|
|
build:
|
|
context: ..
|
|
dockerfile: deploy/docker/api.Dockerfile
|
|
ports:
|
|
- "8787:8787"
|
|
volumes:
|
|
- ../data:/app/data
|
|
- ../config:/app/config
|
|
- ../knowledge:/app/knowledge
|
|
environment:
|
|
AUTH_MODE: local
|
|
DATABASE_URL: sqlite:///app/data/pi-chat.db
|
|
API_PORT: 8787
|
|
LLM_BASE_URL: https://api.minimax.io/v1
|
|
LLM_API_KEY: ${MINIMAX_API_KEY:?set MINIMAX_API_KEY}
|
|
DEFAULT_MODEL: fast
|
|
|
|
web:
|
|
build:
|
|
context: ..
|
|
dockerfile: deploy/docker/web.Dockerfile
|
|
ports:
|
|
- "3000:3000"
|
|
depends_on:
|
|
- api
|