Skip to main content

Overview

This template provides a production‑ready DokuWiki instance as a Monk runnable. You can:
  • Run it directly to get a managed wiki for documentation and knowledge management
  • Inherit it in your own projects to add collaborative documentation capabilities
DokuWiki is a simple to use and highly versatile wiki software that doesn’t require a database. It’s loved by users for its clean and readable syntax, ease of maintenance, and built-in access controls.

What this template manages

  • DokuWiki container (PHP-based)
  • File-based storage (no database required)
  • Web server (Apache or Nginx)
  • Plugin and template system
  • Web UI on port 80

Quick start (run directly)

  1. Load templates
monk load MANIFEST
  1. Run DokuWiki with defaults
monk run dokuwiki/dokuwiki
  1. Customize configuration (recommended via inheritance)
Running directly uses the defaults defined in this template’s variables. Secrets added with monk secrets add will not affect this runnable unless you inherit it and reference those secrets.
  • Preferred: inherit and replace variables with secret("...") as shown below.
  • Alternative: fork/clone and edit the variables in dokuwiki/dokuwiki.yaml, then monk load MANIFEST and run.
Once started, access DokuWiki at http://localhost:80 (or the runnable hostname inside Monk networks) and complete the initial setup. Default wiki is publicly viewable. Configure access control in the admin panel.

Configuration

Key variables you can customize in this template:
variables:
  dokuwiki-image-tag: "latest"        # DokuWiki image tag
  dokuwiki-port: "80"                 # HTTP port
  wiki-title: "My Wiki"               # wiki title
  admin-username: "admin"             # admin username
  admin-password: "..."               # admin password
Data is persisted under ${monk-volume-path}/dokuwiki on the host. Inherit DokuWiki for team documentation. Example:
namespace: myteam
docs:
  defines: runnable
  inherits: dokuwiki/dokuwiki
  variables:
    wiki-title: "Team Documentation"
    admin-password: <- secret("dokuwiki-admin-password")
Then set the secrets once and run:
monk secrets add -g dokuwiki-admin-password="STRONG_PASSWORD"
monk run myteam/docs

Ports and connectivity

  • Service: dokuwiki on TCP port 80
  • Web UI accessible at http://\<host>/
  • Admin panel: http://\<host>/doku.php?do=admin
  • From other runnables in the same process group, use connection-hostname("\<connection-name>") to resolve the host.

Persistence and configuration

  • Wiki data: ${monk-volume-path}/dokuwiki/data:/dokuwiki/data
  • Config: ${monk-volume-path}/dokuwiki/conf:/dokuwiki/conf
  • Plugins: ${monk-volume-path}/dokuwiki/plugins:/dokuwiki/lib/plugins
  • Templates: ${monk-volume-path}/dokuwiki/templates:/dokuwiki/lib/tpl

Features

  • No Database: File-based storage is simple and portable
  • Clean Syntax: Easy-to-learn wiki markup
  • Access Control: Granular permissions per page and namespace
  • Version Control: Built-in revision history
  • Media Manager: Upload and organize images and files
  • Extensible: 1000+ plugins available
  • Search: Built-in full-text search
  • Namespaces: Organize pages hierarchically
  • Templates: Customizable appearance

Wiki Syntax

DokuWiki uses simple markup:
====== Heading 1 ======
===== Heading 2 =====

**bold** //italic// __underlined__

  * Bullet list
  * Another item

  - Numbered list
  - Another item

[[page_link|Link text]]
{{wiki:image.png|Image}}

<code php>
<?php echo "Code block"; ?>
</code>
Extend DokuWiki:
  • Markdown: Write in Markdown instead of wiki syntax
  • TableEdit: Edit tables visually
  • Discussion: Add comments to pages
  • Task: Create todo lists
  • Gallery: Image galleries
  • Diagram: Create diagrams with PlantUML, Graphviz

Access Control

Configure in Admin → Access Control List:
  • Set permissions per namespace or page
  • Define user groups
  • Control read, write, upload, and delete permissions
  • Support for LDAP/AD authentication

Use cases

DokuWiki excels at:
  • Technical documentation
  • Team knowledge bases
  • Project wikis
  • API documentation
  • Meeting notes and collaboration
  • Personal knowledge management
  • Software documentation

Backup and Migration

DokuWiki is easy to backup:
  • All data is in flat files
  • Simply backup the /dokuwiki/data directory
  • No database dumps required
  • Restore by copying files to new installation
  • See other templates in this repository for complementary services
  • Combine with monitoring tools (prometheus-grafana/) for observability
  • Integrate with your application stack as needed

Troubleshooting

  • Access admin panel at http://localhost/doku.php?do=admin
  • First-time setup runs automatically on first access
  • Reset admin password by editing conf/users.auth.php
  • For permission issues, check file permissions on data directory
  • For plugin issues, disable in conf/plugins.local.php
  • Enable debugging in conf/local.php for detailed error messages
  • Clear cache: Admin → Configuration Settings → Clear cache
  • Check logs:
monk logs -l 500 -f local/dokuwiki/dokuwiki