Overview
Discover what makes DokuWiki powerful
DokuWiki is a lightweight, file‑based wiki engine written in pure PHP that eliminates the need for an external database. Internally it stores pages as plain‑text files with a simple markup syntax, making the data layer trivial to backup, version‑control, or migrate. The engine is built around a modular architecture that exposes hooks and an event system for developers, while still providing a full‑featured web interface out of the box. This design keeps the core footprint under 1 MB, yet it can scale to thousands of pages with minimal overhead.
File‑based persistence
Revision history & rollback
Access Control Lists (ACLs)
Extensible plugin API
Overview
DokuWiki is a lightweight, file‑based wiki engine written in pure PHP that eliminates the need for an external database. Internally it stores pages as plain‑text files with a simple markup syntax, making the data layer trivial to backup, version‑control, or migrate. The engine is built around a modular architecture that exposes hooks and an event system for developers, while still providing a full‑featured web interface out of the box. This design keeps the core footprint under 1 MB, yet it can scale to thousands of pages with minimal overhead.
Key Features
- File‑based persistence – pages, attachments and metadata are stored in a hierarchical directory structure (
data/pages/,data/media/). - Revision history & rollback – every edit creates a new file snapshot; the built‑in diff engine compares revisions.
- Access Control Lists (ACLs) – fine‑grained permissions per namespace or page, integrated with external authentication backends (LDAP, OAuth, SAML).
- Extensible plugin API – over 200 community plugins cover search engines, version control integrations, UI themes, and more.
- Template system – skins/themes alter the presentation without touching core code; templates can be swapped at runtime.
Technical Stack
- Language: PHP 7.4+ (full compatibility with PHP 8).
- Frameworks: No heavy frameworks; a lightweight MVC‑like structure is used internally.
- Database: None – file system only; optional SQLite support for auxiliary data in newer releases.
- Web Server: Apache, Nginx or any server capable of executing PHP;
.htaccessrules handle clean URLs. - Front‑end: Vanilla JavaScript, optional jQuery for plugins; CSS is minimal but customizable via templates.
Core Capabilities
- REST‑like API –
doku.phpexposes an XML‑RPC interface for page read/write, search, and user management. - Event system – developers can hook into events such as
io_wiki_write,action_plugin_rendered, ormedia_upload. - Template hooks – templates can register custom page rendering callbacks, enabling advanced UI logic.
- CLI tools –
dokuwiki.phpscript offers commands for maintenance, backup, and bulk operations.
Deployment & Infrastructure
- Self‑hosting: A single PHP file (
index.php) plus thedata/directory is all that’s required; no database server or complex setup. - Containerization: Official Docker images exist, making it trivial to spin up isolated instances or roll them into Kubernetes deployments.
- Scalability: Horizontal scaling is straightforward—share the
data/directory over NFS or a distributed file system, and run multiple PHP workers behind a load balancer. - Performance: With caching enabled (e.g., APCu or Redis), read latency is negligible; writes are atomic file operations.
Integration & Extensibility
- Plugin ecosystem: The plugin API supports event listeners, toolbar buttons, and custom page types.
- Authentication connectors: LDAP, OAuth2, SAML, and Shibboleth are supported via plugins.
- Webhooks: Plugins can trigger external HTTP callbacks on page changes, facilitating CI/CD pipelines or notification services.
- Custom templates: Themes can override core layouts, CSS, and JavaScript without modifying the engine.
Developer Experience
- Configuration: All core settings are stored in
conf/files (local.php,plugins.php). The admin UI provides a guided configuration wizard. - Documentation: The official development manual is comprehensive, covering plugin creation, event hooks, and template design.
- Community: An active mailing list, GitHub repository, and regular releases ensure quick issue resolution.
- Licensing: GPLv2+ encourages open collaboration while allowing commercial use.
Use Cases
- Corporate Knowledge Base – ACLs and LDAP integration make it ideal for internal documentation.
- Project Workspace – With the “Task” plugin, teams can manage issues and tasks directly within DokuWiki.
- CMS / Intranet – Templates convert it into a lightweight content management system for small to medium sites.
- Software Manuals – The “DokuWiki syntax” and version history simplify maintaining up‑to‑date documentation.
Advantages
- Zero database overhead simplifies backups and migrations.
- Low resource footprint allows deployment on shared hosting or IoT devices.
- High flexibility: plugins and templates let developers tailor the stack to specific workflows without core modifications.
- Strong community support ensures rapid patching and a rich set of extensions.
In summary, DokuWiki offers a developer‑friendly, extensible wiki platform that blends simplicity with powerful customization options—making it an excellent choice for teams needing a lightweight, self‑hosted knowledge base or CMS.
Open SourceReady to get started?
Join the community and start self-hosting DokuWiki today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
MantisBT
Open‑source issue tracker for teams and clients
Varnish
High-performance HTTP reverse proxy and caching
DOCAT
Versioned self‑hosted docs, simple and fast
Screego
Low‑latency screen sharing for developers
Chhoto URL
Tiny, fast URL shortener for self‑hosted use
InspIRCd
Modular, lightweight IRC server for modern OSes