Skip to content

openKMS

Open Knowledge Management System — channel-based document, article, and knowledge-base platform with RAG-style Q&A and a wiki workspace.

Repository on GitHub :material-github: Quickstart


What is openKMS?

openKMS organizes content in channel trees (similar to Google Drive folders). Three primary content surfaces sit on top of those channels:

  • Documents — upload PDF, HTML, ZIP, images; parse via PaddleOCR-VL on a separate VLM server; store originals in S3/MinIO; convert to Markdown.
  • Articles — markdown-first CMS with channels, versions, attachments, and article-to-article relationships (supersedes, amends, see_also, …).
  • Knowledge bases — RAG over indexed documents, with FAQs, hybrid search, and a separate QA Agent service.

A Wiki workspace offers free-form notes with vault import, a graph view, and an embedded Wiki Copilot.

A unified Knowledge Map ties terms (taxonomy) to channels, wiki spaces, and article channels.

Where to start

If you want to… Read
Try it locally with Docker or on the host Quickstart
Understand the system OverviewArchitecture
Find a specific feature or API Functionalities
Set up a dev environment Developer setup
Deploy with Docker Operations · Docker
Review the auth and permission model Security
See what's planned next Roadmap · Development plan
Edit the docs (human or AI agent) Doc conventions for AI agents

At a glance

flowchart LR
  User([Browser]) -->|Vite 5173 / nginx 8082| FE[React SPA]
  FE -->|/api| BE[FastAPI · 8102]
  BE --> PG[(PostgreSQL + pgvector)]
  BE --> S3[(S3 / MinIO)]
  BE --> WK[Procrastinate worker]
  WK --> CLI[openkms-cli]
  CLI --> VLM[mlx-vlm · 8101]
  BE -. /ask .-> QA[QA Agent]
  QA -. retrieve .-> BE
Service Default port
Backend (FastAPI) 8102
Frontend (Vite dev) 5173
Frontend (Docker, nginx) 8082
VLM server (mlx-vlm) 8101

Project layout

Path What's inside
backend/ FastAPI service, async SQLAlchemy, Alembic migrations
frontend/ React 19 + Vite SPA
openkms-cli/ Document parsing / pipeline CLI used by the worker
vlm-server/ mlx-vlm HTTP server (PaddleOCR-VL backend)
docker/ Dockerfiles and docker-compose.yml
docs/ This site