Application Infrastructure Azure

DokuWiki on Ubuntu 24.04 on Azure User Guide

| Product: DokuWiki on Ubuntu 24.04 LTS on Azure

Overview

DokuWiki is a simple to use and highly versatile open source wiki that needs no database. Every page is a plain text file on disk, so backups are trivial, version history is built in, and there is no database server to run, tune or back up separately. It is a popular choice for documentation, knowledge bases, team wikis, runbooks and manuals. The cloudimg image installs the current stable DokuWiki release served by nginx and PHP 8.3 FPM on a hardened, fully patched Ubuntu 24.04 LTS base. DokuWiki runs behind an nginx reverse proxy on port 80, keeps all wiki content (pages, media, metadata and the search index) on a dedicated Azure data disk, and generates a unique administrator password on the first boot of every VM. Backed by 24/7 cloudimg support.

What is included:

  • DokuWiki (stable release) served by nginx and PHP 8.3 FPM, managed by systemd
  • The DokuWiki web interface on :80 with Access Control Lists enabled
  • A per VM admin account generated on first boot and recorded in a root only file
  • A dedicated Azure data disk at /var/lib/dokuwiki for pages, media, metadata and the search index
  • nginx.service and php8.3-fpm.service as systemd units, enabled and active
  • An unauthenticated /healthz endpoint for Azure Load Balancer health probes
  • 24/7 cloudimg support

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a sensible starting point; size up for busier wikis or large media libraries. NSG inbound: allow 22/tcp from your management network and 80/tcp for the wiki. DokuWiki serves plain HTTP on port 80; for production, terminate TLS in front of it with your own domain.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for DokuWiki by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) and HTTP (80). Review the dedicated data disk on the Disks tab, then Review + create then Create.

Step 2 - Deploy from the Azure CLI

az vm create \
  --resource-group <your-rg> \
  --name dokuwiki \
  --image <marketplace-image-urn> \
  --size Standard_B2s \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard

az vm open-port --resource-group <your-rg> --name dokuwiki --port 80 --priority 1010

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm the services are running

DokuWiki is served by nginx on port 80, which forwards PHP requests to PHP 8.3 FPM over a local socket. Confirm both services are active and nginx is listening on port 80:

systemctl is-active nginx php8.3-fpm dokuwiki-firstboot
ss -tlnp | grep ':80 '

nginx, php8.3-fpm and the dokuwiki-firstboot service active, with nginx listening on port 80

Step 5 - Retrieve your admin password

On the first boot of every VM the dokuwiki-firstboot.service generates a unique administrator password, seeds the DokuWiki admin account with it, and writes the details to a root only file. Read it with:

sudo cat /root/dokuwiki-credentials.txt

The per VM DokuWiki admin credentials file, with the generated password

Step 6 - Confirm the stack and health endpoint

nginx serves an unauthenticated /healthz endpoint for load balancer probes. Confirm the DokuWiki release, the PHP version and that the wiki responds:

cat /var/www/dokuwiki/VERSION
php -v | head -1
curl -sI http://127.0.0.1/healthz | head -1
curl -s http://127.0.0.1/doku.php?id=start | grep -o '<title>[^<]*</title>'

The DokuWiki release, PHP 8.3 version, the healthz endpoint returning 200 and the wiki start page title

Step 7 - Open the wiki in your browser

Browse to http://<vm-public-ip>/. The wiki start page is served to anonymous visitors (read access is granted to everyone by default). This is the welcome page shipped with the image.

The DokuWiki start page rendered in the browser

Step 8 - Sign in as admin

Click Log In in the top right, then enter admin and the password from Step 5.

The DokuWiki login form

Once signed in, the user tools show Logged in as: Administrator (admin) along with the Admin and Log Out links, and every section gains an Edit button.

Signed in to DokuWiki as the administrator

Step 9 - Create and edit pages

DokuWiki pages are created simply by visiting a page name that does not exist yet and clicking Create this page, or by editing an existing page. Pages are written in DokuWiki's simple wiki markup. Organise related pages into namespaces by separating names with a colon, for example projects:alpha. The editor provides a formatting toolbar and a live preview.

Creating a page in the DokuWiki editor

Step 10 - Manage users and Access Control Lists

Open the Admin menu to reach the administration panel. From here you can manage users in the User Manager, control who can read and edit which namespaces in Access Control List Management, adjust wiki behaviour in Configuration Settings, and install plugins from the Extension Manager. The default policy shipped with this image grants read access to everyone and edit access to logged in users; tighten or relax it to suit your organisation.

The DokuWiki administration panel with user and ACL management

Step 11 - Confirm wiki content lives on the dedicated disk

All wiki content lives under /var/lib/dokuwiki, which is a dedicated Azure data disk captured into the image and re provisioned on every VM. Because DokuWiki is database free, everything (pages, media, metadata, the search index and version history) is plain files under this mount:

df -h /var/lib/dokuwiki | tail -1
ls /var/lib/dokuwiki
findmnt -no SOURCE,TARGET,FSTYPE /var/lib/dokuwiki

The DokuWiki savedir on the dedicated ext4 data disk, listing the pages, media, meta and index directories

Maintenance

  • Back up your wiki: because DokuWiki needs no database, a backup is simply a copy of /var/lib/dokuwiki (all pages, media, metadata and history) plus /var/www/dokuwiki/conf (users and ACLs). Snapshot the data disk or tar the directory.
  • Add users: sign in as admin and use Admin then User Manager. Self registration is disabled by default on this appliance.
  • Namespaces and ACLs: use Admin then Access Control List Management to scope read and write access per namespace.
  • Plugins and templates: install extensions from Admin then Extension Manager.
  • Security updates: unattended security upgrades are enabled, so the OS keeps itself patched. Reboot when a new kernel is installed.
  • TLS: for production, front DokuWiki with your own domain and a TLS terminating reverse proxy or Azure Application Gateway.

Support

cloudimg provides 24/7/365 expert technical support for this image. Contact support@cloudimg.co.uk. DokuWiki is licensed under GPL 2.0. This image is provided by cloudimg; additional charges apply for build, maintenance and 24/7 support.