What Wiki.js Does
- Multiple Editors: Markdown, WYSIWYG (Visual), and raw HTML editors
- Git Sync: Bi-directional sync with Git repositories (GitHub, GitLab, Bitbucket)
- Search: Full-text search via built-in engine, Elasticsearch, Algolia, or PostgreSQL full-text
- Authentication: Local, LDAP, SAML, OAuth 2.0, OpenID Connect, and 20+ social login providers
- Permissions: Granular page-level and group-based access control
- Multi-language: Interface in 40+ languages with per-page language support
- Diagrams: Built-in support for Mermaid, PlantUML, and Draw.io diagrams
- Comments: Page-level discussions and comments
- Asset Management: Upload and manage images, files, and attachments
- Theming: Customizable themes with light/dark mode
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Browser │────▶│ Wiki.js │────▶│ PostgreSQL /│
│ │ │ (Node.js) │ │ MySQL / │
└──────────────┘ └──────┬───────┘ │ SQLite │
│ └──────────────┘
┌──────┴───────┐
│ Git Repo │
│ (Optional) │
└──────────────┘Self-Hosting
Docker Compose (PostgreSQL)
services:
wikijs:
image: ghcr.io/requarks/wiki:2
ports:
- "3000:3000"
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijs
DB_NAME: wikijs
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: wikijs
POSTGRES_PASSWORD: wikijs
POSTGRES_DB: wikijs
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
pg-data:Key Features
Markdown Editor
# Project Documentation
## Architecture Overview
```mermaid
graph TD
A[Client] --> B[API Gateway]
B --> C[Service A]
B --> D[Service B]
C --> E[(Database)]API Reference
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/users | List all users |
| POST | /api/users | Create a user |
Note: All endpoints require authentication.
Code Example
const response = await fetch('/api/users');
const users = await response.json();
### Git Storage Sync
Wiki.js can sync content with any Git repository:
Wiki.js ←→ Git Repository ├── Push changes to Git on every save ├── Pull changes from Git on schedule ├── Full version history via Git ├── Edit wiki pages via Git/IDE └── CI/CD pipeline integration
This enables:
- Edit wiki pages in your IDE or GitHub
- Code review for documentation changes
- Automated doc deployment pipelines
- Full Git history and blame
### Search Configuration
| Engine | Best For |
|--------|----------|
| Built-in (SQLite) | Small wikis, < 1000 pages |
| PostgreSQL | Medium wikis, already using PG |
| Elasticsearch | Large wikis, advanced queries |
| Algolia | Hosted search, fastest |
### Authentication Modules
Local ── email/password registration LDAP ── Active Directory, OpenLDAP SAML ── Enterprise SSO (Okta, OneLogin) OAuth ── Google, GitHub, Discord, Slack OIDC ── Keycloak, Authentik, Auth0 API Key ── programmatic access
## Wiki.js vs Alternatives
| Feature | Wiki.js | Docmost | MediaWiki | Confluence |
|---------|---------|---------|-----------|------------|
| Open Source | Yes (AGPL-3.0) | Yes (AGPL) | Yes (GPL) | No |
| Editor | MD + WYSIWYG + HTML | Block editor | Wikitext | WYSIWYG |
| Git sync | Yes | No | No | No |
| Search | Multiple engines | Built-in | CirrusSearch | Built-in |
| Auth providers | 20+ | SSO/OAuth | LDAP | LDAP/SSO |
| Diagrams | Mermaid + PlantUML | Mermaid | Extensions | Draw.io |
| Stack | Node.js | NestJS | PHP | Java |
## FAQ
**Q: When will Wiki.js 3.0 be released?**
A: Wiki.js 3.0 is in development and will bring a brand-new editor, real-time collaboration, an improved permissions system, and better performance. For now, the 2.x branch is the stable production release.
**Q: Can I import existing documents?**
A: Yes. Use the Git sync feature — drop your Markdown files into a Git repo and they'll be imported automatically. MediaWiki migration is also supported.
**Q: Does it support math formulas?**
A: Yes. Wiki.js ships with KaTeX and MathJax rendering engines, letting you use LaTeX math formulas in Markdown.
## Sources & Credits
- GitHub: [requarks/wiki](https://github.com/requarks/wiki) — 28.1K+ ⭐ | AGPL-3.0
- Website: [wiki.js.org](https://wiki.js.org)