Wiki.js

Extensible wiki with swappable editors, auth and storage

Wikis & Knowledge Bases AGPL-3.0 intermediate ★ 29,002 stars

What is Wiki.js?

Wiki.js is a Node.js wiki that keeps its content in a real database and routes almost everything else — authentication, editors, search, storage and rendering — through modules you turn on and off. It supports PostgreSQL, MySQL, MariaDB, MS SQL Server and SQLite, ships both a Markdown editor with live preview and a WYSIWYG builder, and is released under AGPL-3.0.

Best for

Teams that need one wiki with many authentication and storage backends

Why choose Wiki.js

The module system is what separates Wiki.js from the other wikis here. Authentication is the clearest example: local accounts, social logins, LDAP, SAML, CAS, Auth0, Okta, Azure AD, generic OAuth2 and OpenID Connect are all modules rather than forks or paid tiers, so a wiki that starts with local accounts can be pointed at a corporate identity provider later without a migration. Storage and search work the same way. On top of that it will run against five different database engines, which means it can usually be slotted into infrastructure you already have instead of demanding its own. Editors come in two flavours — Markdown for people who want it, a visual builder for people who do not — so the same instance can serve both without a fight about it.

Replaces

  • Confluence
  • Notion
  • MediaWiki

Key features

  • Markdown editor with live preview
  • Visual WYSIWYG builder
  • PostgreSQL, MySQL, MariaDB, MS SQL Server or SQLite
  • Local, social and enterprise authentication including LDAP, SAML, CAS and OIDC
  • Two-factor authentication
  • Storage modules for assets and content
  • Full page history and localisation
  • Themes and a full admin area

What to watch out for

This is the one entry on the site where the repository you land on is not the version you should install. The default branch is the 3.0 beta, and the maintainers put a caution at the top of the README saying it is not for production use; the stable 2.x line is in a separate repository and documented at js.wiki. Check which one you are actually deploying. Separately, Wiki.js expects outbound internet access: it calls api.github.com to check for updates, github.com for locale data and api.iconify.design for icons, so an install behind a default-deny firewall will misbehave in ways that look like bugs. The Docker image is roughly 850 MB because it bundles every extension. The licence is AGPL-3.0, which is the strongest copyleft here and matters if you ever modify it and expose the result to users over a network.

How to deploy

  • Docker
  • Kubernetes
  • Bare metal (Node.js)

Getting started

Confirm which major version you are installing before you start, and follow the 2.x documentation at js.wiki unless you specifically want to test the beta. Use Docker — it is what the project recommends, it bundles the dependencies apart from the database, and it gives the cleanest upgrade path. Pick PostgreSQL unless something forces you elsewhere; it is the best-trodden path. Decide on authentication up front, because switching from local accounts to an external provider later means reconciling user identities. Budget at least 1 GB of RAM and expect the first boot to take a while.

Typical setup

The common deployment is a single Wiki.js container plus a PostgreSQL container, behind a reverse proxy for TLS, on a small VPS or a home server. Teams with an identity provider point authentication at LDAP, SAML or OIDC and disable public registration entirely. Backups are a database dump; content lives in the database rather than in files, so there is no second directory to remember. Storage modules are used to push images and attachments at S3-compatible object storage on larger installs.

Who should look elsewhere

Not for anyone who wants the newest release by default — the interesting development is happening on a beta branch you are told not to run. Not for air-gapped environments, because it phones home for updates, locales and icons. And not if you want the simplest possible thing: the module system is a genuine advantage only if you intend to use more than one or two of its options.

Project health

  • GitHub stars: 29,002
  • Last code push: 2026-10-03
  • Open issues: 5
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

Wiki.js as an alternative

More in Wikis & Knowledge Bases