Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Team Wiki

Self-hosted wiki workspace for teams that want their documents to become a durable, searchable knowledge base instead of another pile of files.

简体中文

Team Wiki takes source documents, extracts text, generates structured wiki pages and chunks, and then uses those pages for search, graph exploration, review, deep research, and grounded chat. It follows the same core idea as the llm-wiki pattern: raw sources stay traceable, generated pages become the working knowledge layer, and humans remain in control of review and correction.

The maintained open-source web app lives in app/. Legacy desktop prototype sources are kept out of the first web release package so the public repository has one clear deployment path.

Why Team Wiki

Traditional RAG often retrieves raw chunks every time you ask a question. Team Wiki adds a persistent knowledge layer in between:

source files -> text extraction -> wiki pages + chunks -> graph/search/review/chat

That gives the team a shared artifact to inspect, edit, search, lint, and improve over time. The AI is not the only interface; the generated wiki is readable and editable by people.

Highlights

  • Document ingestion for md, txt, pdf, docx, pptx, and xlsx.
  • Generated wiki pages with source traceability, page types, frontmatter, chunks, and search metadata.
  • Optional LLM chat over workspace knowledge with cited source pages.
  • Knowledge graph and graph insights for relationships, clusters, gaps, and source overlap.
  • Review workflow for semantic checks, structure checks, contradictions, missing pages, and suggestions.
  • Deep research workflow that can turn web search results into wiki pages when a search provider is configured.
  • Workspace memory for stable facts, preferences, terminology, and project decisions.
  • Activity timeline for uploads, ingest jobs, searches, chats, research, review, and wiki edits.
  • Email-based workspace sharing for registered users.
  • Schema presets for the default knowledge structure, personal growth, project management, process management, deep research, and reading notes.
  • Optional model providers: OpenAI-compatible endpoints, DeepSeek, Qianfan, Tavily, and custom embedding endpoints.

Quick Start

Docker Compose is the recommended path. It starts the app and PostgreSQL with matching defaults.

cd app
cp .env.example .env
docker compose up --build

Open http://localhost:3000.

To create the first admin user, set these values in app/.env:

ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=replace-with-a-strong-password
ADMIN_NAME=Admin

Then run:

docker compose exec app npm run seed

If ADMIN_EMAIL or ADMIN_PASSWORD is not set, the seed step is skipped.

Non-Docker Setup

Use this path when PostgreSQL is already available.

cd app
cp .env.example .env
npm install
npx prisma migrate deploy
npm run build
npm start

For development:

npm run dev

Configuration

Required values:

  • DATABASE_URL
  • AUTH_SECRET
  • AUTH_URL or NEXTAUTH_URL
  • STORAGE_ROOT

Optional AI configuration:

  • Chat model: LLM_API_KEY, LLM_BASE_URL, LLM_MODEL, or the OPENAI_* aliases.
  • DeepSeek: DEEPSEEK_API_KEY, DEEPSEEK_BASE_URL, DEEPSEEK_MODEL.
  • Web search: SEARCH_PROVIDER, TAVILY_API_KEY, QIANFAN_API_KEY.
  • Embeddings: EMBEDDING_ENDPOINT, EMBEDDING_MODEL, EMBEDDING_API_KEY.

Without a chat model, chat, AI-assisted ingest, semantic review, and research synthesis are unavailable. Without embeddings, semantic/vector search is disabled and Team Wiki falls back to keyword search where possible.

See:

Supported Files

Format Support
md, txt, code-like text Direct text read
pdf PDFium extraction with fallback parser
docx Raw text extraction via Mammoth
pptx Basic slide XML text extraction
xlsx Workbook and sheet text extraction

Uploads and generated workspace files live under STORAGE_ROOT. In Docker, the default volume is mounted at /app/uploads.

How Ingest Works

  1. Upload one or more source files.
  2. Team Wiki stores the file under STORAGE_ROOT.
  3. The ingest queue extracts text and runs the configured generation pipeline.
  4. Generated pages, chunks, graph data, review items, and activity records are saved.
  5. Search, graph, review, chat, and research use the generated wiki layer rather than only raw chunks.

Validation

Run the same checks used before publishing this open-source build:

cd app
npm run test:unit
npx tsc --noEmit --pretty false
npm run lint
npm run build
npm run smoke:p0
npm run smoke:e2e
npm run smoke:full

smoke:e2e needs a registered user. Set E2E_EMAIL and E2E_PASSWORD, or create a temporary account before running it.

Security Notes

  • Do not commit .env, .env.local, uploaded files, generated workspace data, database dumps, or provider keys.
  • .env.example contains placeholders only.
  • Legacy enterprise integrations are optional and disabled by default.
  • All workspace APIs should be treated as permissioned APIs; keep AUTH_SECRET private and rotate provider keys if they are exposed.

Inspiration

Team Wiki is inspired by:

This project adapts those ideas into a self-hosted web application for teams, with PostgreSQL, local accounts, email sharing, schema presets, activity records, and deployment-oriented documentation.

License

GPL-3.0. See LICENSE.

About

Self-hosted wiki workspace for team knowledge bases

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages