Open Knowledge Management System — one governed knowledge network for people and agents.
Teams retrieve, contribute, and govern the same corpus—so answers stay sourced and permission-aware, not trapped in private chat or stale files. Documentation · Vision: docs/goals.md.
backend/— FastAPI API (default port 8102)frontend/— React + Vite (default port 5173)openkms-cli/— Parse and pipeline CLI (used by the background worker)openkms-skill/— Optional OpenCode-style SKILL + Python CLI for agents calling the public HTTP API (personal API keys in the app under Settings; seedocs/features/opencode-openkms-skill.md)vlm-server/— mlx-vlm HTTP server for PaddleOCR-VL document parsing (run this separately)docker/— Dockerfiles anddocker-compose.yml(run viadocker compose -f docker/docker-compose.yml …from repo root; seedocker/README.md)docs/— Architecture, features, developer setup, and research notes (published at yingrui.github.io/openKMS)qa-agent/— Optional LangGraph Q&A service (proxied by the backend for KB chat)
| Topic | Where |
|---|---|
| Run locally | docs/quickstart.md · docs/developer/setup.md |
| Vision | docs/goals.md |
| Features & APIs | docs/functionalities.md |
| Security design | docs/security.md · docs/features/data-security.md |
| Roadmap | docs/development_plan.md |
| Comparisons & evaluation research | docs/research/ (RAGFlow, Confluence AI, OKF, text quality) |
- Recommended: start mlx-vlm separately (see above and
vlm-server/README.md). cp backend/.env.example backend/.envand edit (secrets, auth, optional LLM URLs).docker compose -f docker/docker-compose.yml up -d --build— builds images and starts Postgres (pgvector), MinIO, Neo4j, backend, worker, and frontend (nginx).- Open http://localhost:8082.
See docker/README.md for ports, env overrides, and how the worker reaches a host VLM.
- Recommended: start mlx-vlm separately for parsing (
vlm-server/README.md). cp backend/.env.example backend/.envandcp frontend/.env.example frontend/.env.- Start Postgres, MinIO, and Neo4j (optional for ontology):
cd docker && docker compose -f docker-compose.yml up -d postgres minio neo4j cd backend && uv sync && alembic upgrade head- Run
uvicorn app.main:app --reload --port 8102inbackend/andnpm install && npm run devinfrontend/(two terminals). - Open http://localhost:5173 (Vite proxies
/apito the backend).
For a full walkthrough, auth modes, and optional services (QA agent, etc.), see docs/developer/setup.md and the docs site.
Document parsing expects a VLM server compatible with PaddleOCR-VL (default URL http://localhost:8101). Do not rely on the main Docker stack for this — run mlx-vlm on the host (or another machine) so you can use Apple Silicon / GPU and avoid huge images.
- See
vlm-server/README.mdfor how to start the server (e.g../start.shinvlm-server/). - Point
OPENKMS_VLM_URL(backend, worker,openkms-cli) at that URL. In the full Docker stack, the worker defaults tohttp://host.docker.internal:8101so a host-run mlx-vlm is reachable.
Without a running VLM, uploads and pipeline jobs that parse documents will fail.