Deploy DokuWiki

Wiki that keeps every page as a plain text file, no database

Deploy DokuWiki

Just deployed

/data

Just deployed

/storage

Deploy and Host DokuWiki on Railway

DokuWiki is an open-source wiki engine that stores every page, revision and upload as a plain file on disk — no database to administer, back up or migrate. Created by Andreas Gohr in 2004 and still actively released, it is what small teams reach for when they want a runbook or knowledge base that stays readable in a text editor and easy to move elsewhere. Access control lists, versioned pages with diffs, full-text search, a media manager and over 1,800 plugins come with the engine.

Self-host DokuWiki on Railway and you get two services. dokuwiki runs the official dokuwiki/dokuwiki image with a volume at /storage holding pages, revisions, media, the search index, accounts and configuration. mailpit is a real SMTP server on the private network, so password resets, the Notify user box in the User Manager and page-change subscriptions deliver instead of failing silently — the upstream image ships no mail transport. The wiki is installed, the superuser exists and the installer is closed before the first request arrives, so no stranger can claim your instance.

Diagram of the DokuWiki and Mailpit services on Railway

Getting Started with DokuWiki on Railway

Set an admin password when you deploy, or accept the generated one and read it back from DOKUWIKI_ADMIN_PASSWORD on the dokuwiki service. There is no setup wizard: open the deployment URL, click Log In, and sign in as admin. The default access policy is closed, so anonymous visitors get a permission-denied page and the wiki is private from the first second.

Your first useful action is to create a page. Put a colon-separated name in the URL, such as /team:runbook, and DokuWiki offers to create it; or edit the start page it ships with. The editor is a textarea with a formatting toolbar, and wiki:syntax documents every markup rule. Save, then open Old revisions — the quickest proof the volume is mounted and writable.

To add colleagues, open Admin → User Manager, fill in Add user and tick Notify user. A welcome message goes out through Mailpit; open the mailpit service's URL, signing in with the credentials in its MP_UI_AUTH variable, to read it. Configuration Settings renames the wiki and adjusts the access policy; Access Control List Management handles per-namespace permissions.

A DokuWiki page with a table of contents and a data table Editing DokuWiki markup with the formatting toolbar DokuWiki User Manager after adding a second account Mailpit showing a DokuWiki page-change notification diff

About Hosting DokuWiki

DokuWiki's defining decision is the absence of a database. A page is a .txt file, an old revision a gzipped file beside it, an upload just a file, and accounts live in one users.auth.php. Backing the wiki up is copying a directory; auditing it is git diff. That suits teams who want docs they can still read in ten years, and nobody who needs real-time collaborative editing or a Notion-grade WYSIWYG editor.

Key features:

  • Versioned pages with diffs, restore and an "old revisions" browser
  • Namespaces, groups and per-namespace access control lists
  • Full-text search, and a media manager with ImageMagick thumbnailing
  • Pluggable auth: local file, LDAP/Active Directory or SQL via authpdo
  • 1,800+ plugins and dozens of templates, installed from the admin panel
  • E-mail subscriptions per page or namespace, with digest and list modes

Architecture on Railway is deliberately small. dokuwiki is PHP 8.4 under Apache with mod_php, on port 8080 and health-checked at /healthz; its volume is the entire data store. mailpit captures everything the wiki sends and exposes a web inbox, with its own volume so mail survives a redeploy.

Why Deploy DokuWiki on Railway

Railway removes the tedious parts of self-hosting a PHP wiki:

  • Persistent volumes attached before first boot
  • TLS, a public hostname and HTTP/2, no certificate work
  • A private network, so the mail server never faces the internet
  • Redeploy on every push to the source repository
  • Health checks that exercise DokuWiki's own bootstrap

Common Use Cases

  • Engineering runbooks and on-call docs — versioned, searchable, diffable
  • A team handbook with namespaces per department and matching ACLs
  • Project documentation beside a codebase, exportable as plain text at any time
  • A personal or research wiki where owning the files beats a polished editor

Dependencies for DokuWiki

Environment Variables Reference

VariableServicePurpose
DOKUWIKI_ADMIN_USERdokuwikiSuperuser login, created on first boot
DOKUWIKI_ADMIN_PASSWORDdokuwikiSuperuser password, read on first boot only
DOKUWIKI_TITLEdokuwikiWiki name shown in the header
DOKUWIKI_ACL_POLICYdokuwikiclosed, public or open
DOKUWIKI_ALLOW_REGISTERdokuwikiWhether visitors may register
DOKUWIKI_SUBSCRIBERSdokuwikiEnables page-change subscriptions
DOKUWIKI_SMTP_HOSTdokuwikiSMTP server; your own relay in production
DOKUWIKI_MAIL_FROMdokuwikiSender address on outgoing mail
MP_UI_AUTHmailpituser:password for the web inbox

Deployment Dependencies

Hardware Requirements for Self-Hosting DokuWiki

ResourceMinimumRecommended
CPU0.5 vCPU1–2 vCPU
RAM512 MB1–2 GB
Storage1 GB volume5 GB+, sized to your media library
RuntimePHP 8.2+ with gd, intl, bz2PHP 8.4 with OPcache

Scaling notes

DokuWiki is unusually light: the cost driver is uploaded media, not page count. Run one instance — every store it has, from pages to the changelog to the search index, is a single-writer file on one volume, so a second replica would contend on it rather than share load. Give the container more CPU and memory instead; APACHE_MAX_WORKERS caps Apache's prefork pool, derived from the memory limit unless you set it.

Self-Hosting DokuWiki

The quickest local run uses the official image, which exposes port 8080 and keeps everything under /storage:

docker run -d --name dokuwiki -p 8080:8080 \
  -v dokuwiki-storage:/storage \
  dokuwiki/dokuwiki:stable

Open http://localhost:8080/install.php and complete the wizard to create the first administrator. From source it needs nothing but a PHP-capable web server:

git clone https://github.com/dokuwiki/dokuwiki.git
cd dokuwiki
php -S localhost:8080

Make conf/ and data/ writable by the web server user and visit /install.php. Upgrading means replacing everything except those two directories.

Is DokuWiki Free?

DokuWiki is free and open source under GPL-2.0 — no paid tier, seat limits or feature gates, and every plugin in the directory is free too. Mailpit is MIT-licensed. Deploying this template costs only the Railway resources the two containers and their volumes consume, which for a normal team's wiki is small.

FAQ

What is DokuWiki? A file-based wiki engine written in PHP. It stores pages, revisions and uploads as ordinary files rather than in a database, which makes backup, version control and migration trivial.

What does this Railway template deploy? Two services: DokuWiki on a persistent volume, and Mailpit as a private SMTP server with a web inbox. The wiki is installed and the superuser created on the first boot, so no setup wizard is left open.

Why is a mail server included? DokuWiki core sends through PHP's mail() and the official image ships no mail transport, so password resets, new-account notifications and page subscriptions fail silently on a stock install. Mailpit gives them somewhere to go; point the DOKUWIKI_SMTP_* variables at a real relay when you are ready.

Does DokuWiki need a database? No — that is the point of it. Pages live in data/pages, old revisions in data/attic and accounts in conf/users.auth.php, all on the one volume.

How do I make my DokuWiki public or allow sign-ups? Set DOKUWIKI_ACL_POLICY to public before the first deploy for a world-readable wiki only members can edit, and DOKUWIKI_ALLOW_REGISTER to true to let visitors register. After the first boot both move to Admin → Configuration Settings and the ACL manager.

How do I install a plugin, or use LDAP for login? Both start in Admin → Extension Manager: search the plugin directory or paste a download URL. Plugins install onto the volume and survive redeploys; bundled ones refresh from the image on every start. The authad and authldap backends ship with DokuWiki, disabled here — enable one and configure it in Configuration Settings.


Template Content

More templates in this category

View Template
Libredesk - Complete Setup
Complete self-hosted omnichannel customer support desk.

codestorm
1
View Template
Paperless-ngx
Paperless-ngx — document management with OCR and full-text search

INAPP
1
View Template
Instatic CMS - Postgres
Design, build and manage powerful static sites from state-of-the-art CMS

Instatic
162