It's better when it's simple

User Tools

Site Tools


Using DokuWiki as a lightweight CMS

Wikis were originally intended as a way to work collaboratively in a very open environment. This is no different with DokuWiki. However DokuWiki provides certain features that make using it as a more conventional Content Management System possible. This page gives you a quick overview what you might want to do for configuring DokuWiki as a CMS.

Some steps are somewhat similar to when using DokuWiki as a blogging tool, so reading that page is recommended.



Locking up DokuWiki

The main difference between a Wiki and a conventional CMS is who is allowed to edit. For a CMS you want to restrict editing to a very small group or even a single user. This can be easily achieved with DokuWiki's ACL feature.

You will need to assign read permissions to the @ALL group on * namespace. The group of editors should get more permissions on that namespace of course.

Disabling Wiki-Functions

Many DokuWiki features are less useful or even unwanted for a CMS setup scenario. DokuWiki, allows you to disable certain function using the disableactions option. For a CMS setup you probably want to disable register, backlinks, index, recent, revisions, subscribe, subscribens and source.

Enable URL Rewriting

You should enable some sort of URL Rewriting so users don't see the ../doku.php?..


Your template should hide all edit buttons and other Wiki related features from unauthorized users. You can do this by checking the $_SERVER['REMOTE_USER'] variable.

Specially the templates dokucms (inclusive examples) and mcz are used for 'normal' websites.

Adding an always visible navigation

The classic sidebar for menus, search- or contactforms is easy using a sidebar plugin like sidebar or sidebarng.

Editing Messages

Certain messages generated by DokuWiki might not be sensible in a CMS context. This is most certainly true for the message you get when a page does not exist, which suggests to create the page. You should check the message files in inc/lang/<yourlanguage>/*.txt and then create your own version of these files in conf/lang/<yourlanguage>/*.txt.

Older DokuWiki version may require that you directly edit inc/lang/<yourlanguage>/*.txt. In this case, be sure to backup these changes as they will be overwritten by the next upgrade.

Enabling the send404 option is another good idea in this case.

Using plugins


Often people shrink back if you talk about a wiki for CMS use. They mostly think of a 'wikistyled' wiki with the Wikipedia- or Dokuwiki-style with all the buttons and menus. But you can customize dokuwiki as easy as any other CMS, but retain all they wiki-functionality like easy document orientated editing, versioncontrol, transclusions and no use for a database.

Some examples:

tips/cms.txt · Last modified: 2020-04-24 16:00 by Pankaj Rasgania

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki