Skip to content

Self-host DokuWiki

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

A long-lived PHP wiki engine that stores pages as plain text files — no database to run, back up, or migrate. The project's own Docker image (a PHP + Apache container with a single storage volume) is the whole install; a web installer configures the wiki on the first visit, and the plugin and template ecosystem is where most of its features live.

Key facts

CategoryWiki & docs
LicenseGPL-2.0
StackPHP, Apache
Min RAM256 MB
Official imageyes
Measured idle RAM21 MB
Difficulty
Our recommendation

Pick DokuWiki when you want the least infrastructure that can still be called a wiki: one container from the project's own image, one storage directory, no database. Pages are plain text files, so backup is a copy and migration is a move. It is the pick for a homelab or team wiki that has to keep working for years with minimal attention; if you want a Notion-style editor or real-time co-editing, look at Docmost or Outline instead.

What you need

  • Any VPS with at least 256 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

Install

Run these commands on your server:

# DokuWiki — the project's official image; one container, one storage volume, no database
mkdir -p dokuwiki/storage && cd dokuwiki
sudo chown 1000:1000 storage   # must match the user: line below, or the container crash-loops on /storage
cat > docker-compose.yml <<'EOF'
services:
  dokuwiki:
    image: dokuwiki/dokuwiki:stable
    user: "1000:1000"   # the storage volume must be writable by this uid
    restart: unless-stopped
    ports: ["8080:8080"]
    environment:
      PHP_TIMEZONE: Etc/UTC
    volumes: ["./storage:/storage"]
EOF
docker compose up -d   #  →  http://SERVER_IP:8080/install.php  (run the installer once; it refuses to re-run on a configured wiki — delete install.php afterwards)

What you take on

DokuWiki's simplicity is real, but the official image makes a few assumptions you should know about:

non-negotiableThe image's own README says it is meant to run behind a reverse proxy that terminates TLS — put Caddy or Nginx Proxy Manager in front of it rather than exposing port 8080 directly.
non-negotiableNo mail server is included; password resets and notifications need an external SMTP server via the SMTP plugin.
non-negotiableWhen you set a non-root user (as the example compose does), the mounted storage directory must be writable by that uid — a permissions mismatch is the usual first-run failure.
non-negotiableThe 256 MB figure is our estimate, taken from the image's default PHP memory limit; the project does not publish a RAM minimum.

An alternative to

Head-to-head

More in Wiki & docs

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.