ConfigsApr 10, 2026·3 min read

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.

TL;DR
Wiki.js is a Node.js-based open-source wiki with Markdown/WYSIWYG editing, Git synchronization, and built-in full-text search.
§01

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.

§02

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.

§03

How to use

  1. Deploy Wiki.js using Docker. Pull the official image and connect it to a PostgreSQL database. The application runs on port 3000 by default.
  2. Complete the setup wizard in the browser, configure authentication (local, LDAP, OAuth, SAML), and set the default editor (Markdown or WYSIWYG).
  3. Create pages, organize them into folders, enable Git sync for backup or bidirectional editing, and configure search indexing.
§04

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
§05

Related on TokRepo

§06

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

What editors does Wiki.js support?+

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.

How does Git sync work in Wiki.js?+

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.

What authentication methods does Wiki.js support?+

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.

Can Wiki.js handle multi-language content?+

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.

What are the system requirements for Wiki.js?+

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)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets