Wiki.js — Modern Open Source Wiki Platform
Wiki.js is a powerful open-source wiki built on Node.js with Markdown/WYSIWYG editors, Git sync, full-text search, and multi-language support. Beautiful, fast, and extensible.
What it is
Wiki.js is an open-source wiki platform built on Node.js that provides both Markdown and WYSIWYG editors for creating and managing documentation. It synchronizes content with Git repositories, supports full-text search powered by PostgreSQL or Elasticsearch, and handles multi-language content natively.
It targets engineering teams, documentation writers, and organizations that need a self-hosted knowledge base with modern editing tools. Wiki.js works well as an internal documentation hub, a public-facing knowledge base, or a team wiki.
How it saves time or tokens
Wiki.js reduces documentation overhead by providing Git-based version control for all content. Every edit is tracked, diffable, and reversible. The Git sync feature means teams can write documentation in their preferred text editor, push to a repository, and have Wiki.js render it automatically.
Full-text search eliminates the time spent navigating folder hierarchies. PostgreSQL-powered search indexes all content and returns results ranked by relevance, which is faster than scanning through file trees or grepping repositories.
How to use
- Deploy Wiki.js using Docker. Pull the official image and connect it to a PostgreSQL database. The application runs on port 3000 by default.
- Complete the setup wizard in the browser, configure authentication (local, LDAP, OAuth, SAML), and set the default editor (Markdown or WYSIWYG).
- Create pages, organize them into folders, enable Git sync for backup or bidirectional editing, and configure search indexing.
Example
# Deploy Wiki.js with Docker Compose
version: '3'
services:
wikijs:
image: ghcr.io/requarks/wiki:2
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
ports:
- '3000:3000'
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_DB: wiki
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: wikijsrocks
Related on TokRepo
- AI tools for documentation — More documentation and knowledge management tools
- AI tools for self-hosted — Self-hosted alternatives for your infrastructure
Common pitfalls
- Choosing SQLite for production deployments. Wiki.js works with SQLite for testing but full-text search performance degrades significantly with larger content volumes. Use PostgreSQL for any serious deployment.
- Enabling Git sync without understanding the conflict resolution model. If two users edit the same page simultaneously through different interfaces (web UI and Git push), the last write wins, which can silently overwrite changes.
- Not configuring a search engine beyond the default. PostgreSQL built-in search works for most teams, but organizations with thousands of pages should evaluate Elasticsearch for faster and more flexible querying.
Frequently Asked Questions
Wiki.js provides a Markdown editor with live preview, a full WYSIWYG visual editor, and a raw HTML editor. You can set a default editor per site or let users choose their preferred editor. The Markdown editor supports common extensions including tables, task lists, and diagrams.
Wiki.js can synchronize all pages with a Git repository. You can configure one-way sync (Git to Wiki or Wiki to Git) or bidirectional sync. Pages are stored as Markdown files in the repository. This enables backup, version control, and editing through external tools like VS Code.
Wiki.js supports local accounts, LDAP/Active Directory, OAuth 2.0 (Google, GitHub, GitLab, Microsoft), SAML 2.0, OpenID Connect, and API key authentication. You can enable multiple authentication strategies simultaneously and map external groups to Wiki.js roles.
Yes. Wiki.js has built-in multi-language support. You can create pages in multiple languages and Wiki.js handles locale switching for readers. The interface itself is translated into over 40 languages. Each page can have independent translations linked together.
Wiki.js requires Node.js 18 or later and a supported database (PostgreSQL recommended, MySQL, MariaDB, SQLite, or SQL Server). The Docker image bundles everything. Minimum hardware is 1 CPU core and 1 GB RAM, though larger installations benefit from more resources and a dedicated PostgreSQL instance.
Citations (3)
- Wiki.js GitHub Repository— Wiki.js is built on Node.js with Markdown/WYSIWYG editors and Git sync
- Wiki.js Installation Documentation— Wiki.js supports PostgreSQL, MySQL, MariaDB, SQLite, and SQL Server databases
- Wiki.js Authentication Documentation— Wiki.js supports LDAP, OAuth 2.0, SAML 2.0, and OpenID Connect authentication
Related on TokRepo
Discussion
Related Assets
Cucumber.js — BDD Testing with Plain Language Scenarios
Cucumber.js is a JavaScript implementation of Cucumber that runs automated tests written in Gherkin plain language.
WireMock — Flexible API Mocking for Java and Beyond
WireMock is an HTTP mock server for stubbing and verifying API calls in integration tests and development.
Google Benchmark — Microbenchmark Library for C++
Google Benchmark is a library for measuring and reporting the performance of C++ code with statistical rigor.