Journal-indexDockup / praktijknotitie
Note / self-host-dokuwiki

DokuWiki zelf hosten in 2026: bestandsopslag, ACL's en back-ups

Een praktische handleiding voor het zelf hosten van DokuWiki, met aandacht voor Docker, poorten, persistente data, TLS, beveiliging, back-ups en de fouten die productiegebruik verhinderen. Inclusief controles.

Behandel DokuWiki als een klein systeem, niet als een Docker-image. Het doel voor gebruikers van DokuWiki is duidelijk: een wiki op basis van bestanden die geen database nodig heeft. De deployment is pas acceptabel wanneer je de setupgegevens kunt vervangen, een pagina kunt bewerken, media kunt uploaden, een ACL kunt toepassen, een revisie kunt bekijken en een oudere versie kunt herstellen.

Dat onderscheid brengt de foutmodus aan het licht die operators na lokale tests tegenkomen: bestandseigendom verhindert het opslaan van pagina's, ook al wordt de UI geladen. Het maakt het back-up- en upgradeplan bovendien specifiek genoeg om te testen.

Poorten, processen en private services

Begin met de netwerknamespace van DokuWiki: de weblistener gebruikt poort 80, niet een hostpoort die je uit een laptop-handleiding hebt overgenomen. De vereiste voor de lokale runtime is een persistent configuratievolume met pagina's, media en ACL's. Leg de verwachte capaciteit, het eigenaarschap en de foutmodus vast in plaats van dit als standaardinstelling van de image te laten staan.

Voer, zodra aan de vereiste is voldaan, het volledige scenario uit — vervang de setupgegevens, bewerk een pagina, upload media, pas een ACL toe, bekijk een revisie en herstel een oudere versie. Leg logs en metingen vast voor filesystemmetadata, het mediavolume, search indexing en PHP-workers. Dat bewijsmateriaal wordt de eerste bewezen werkende architectuur en maakt latere verplaatsingen tussen Dockup-compute en een aangesloten server testbaar.

Foutscenario's voor DokuWiki

Een groene container is noodzakelijk, maar niet voldoende. De service-level indicator is het succesvol voltooien van “vervang de setupgegevens, bewerk een pagina, upload media, pas een ACL toe, bekijk een revisie en herstel een oudere versie”. De waarschijnlijke signalen van druk zijn filesystemmetadata, het mediavolume, search indexing en PHP-workers.

Change control is belangrijk, omdat plugins en templates kunnen achterlopen op DokuWiki-releases, ook al blijven gewone paginabestanden leesbaar. Bewaar de oude image, test migraties op een kopie van de state en documenteer of rollback wordt ondersteund nadat het schema is gewijzigd. Als bestandseigendom het opslaan van pagina's verhindert, ook al wordt de UI geladen, stel dan vast welke eerste grens afwijkt van de werkende omgeving.

Leg een bewezen werkende DokuWiki-deployment vast

Een release candidate voor DokuWiki verdient verkeer door een vast scenario te voltooien: vervang de setupgegevens, bewerk een pagina, upload media, pas een ACL toe, bekijk een revisie en herstel een oudere versie. Leg de image digest, de effectieve niet-geheime configuratie, de publieke origin en de tijdstippen van dat scenario vast. De testdata moet wegwerpbaar zijn, maar realistisch genoeg om hetzelfde pad als gebruikers te doorlopen.

Voer dit uit nadat je de runtime hebt vervangen en bouw de service daarna opnieuw op uit pagina's, media, metadata, gebruikers, ACL's en plugins. Recovery is geslaagd wanneer pagina's, revisies, media, gebruikers, ACL's en plugins terugkeren en de beveiligde pagina beveiligd blijft. Vergelijk de resource-metingen voor filesystemmetadata, het mediavolume, search indexing en PHP-workers met de vorige release en onderzoek significante afwijkingen voordat je promoveert.

Voer tot slot deze gecontroleerde fout uit: dien onschadelijke invoer in nabij de resource- of formaatslimiet die bij deze grens hoort: bestandseigendom verhindert het opslaan van pagina's, ook al wordt de UI geladen. Controleer of DokuWiki de fout uitlegt, bestaande state niet beschadigt en hervat zodra de geldige toestand terugkeert. Bewaar een geredigeerd logfragment en de hersteltijd. Samen dekken deze controles gedrag, duurzaamheid en beheerbaarheid — niet alleen uptime van het proces.

Start de eerste productieachtige instance

Gebruik een commando waarin elke belangrijke keuze zichtbaar is. Deze basisconfiguratie bindt DokuWiki aan de loopback van de host, voegt de bekende datamounts toe en levert de eerste vereiste instelling. Controleer de lokale vereiste voordat je de service blootstelt: een persistent configuratievolume met pagina's, media en ACL's.

docker run -d \
  --name dokuwiki \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  -v dokuwiki-data:/config \
  lscr.io/linuxserver/dokuwiki:latest

Vervang zwevende tags door een geteste versie of digest. Controleer na het opstarten docker logs --tail 200 dokuwiki en bevestig dat het proces op 80 luistert. Voer daarna de DokuWiki-acceptatieactie uit; een response van de rootpagina bewijst niet dat het volledige scenario slaagt: vervang de setupgegevens, bewerk een pagina, upload media, pas een ACL toe, bekijk een revisie en herstel een oudere versie.

Volumes zijn slechts de eerste herstel-laag

Voor DokuWiki begint de veiligheid van redeployment bij pagina's, media, metadata, gebruikers, ACL's en plugins. Mount /config vóór de bootstrap, schrijf onschadelijke voorbeelddata en vervang de container om te bewijzen dat dit pad daadwerkelijk persistent is. Test het pad door de container te vervangen terwijl er onschadelijke voorbeelddata aanwezig is; zo ontdek je mounts die één map te hoog of te laag verwijzen.

Test vervolgens disaster recovery op een lege host. Gebruik waar nodig een applicatieconsistente database-export en controleer of pagina's, revisies, media, gebruikers, ACL's en plugins terugkeren en de beveiligde pagina beveiligd blijft. De handleiding voor database-back-ups die je hebt teruggezet biedt een sterker doel dan alleen controleren of er een archiefbestand is aangemaakt.

Geef DokuWiki één canoniek adres

TLS-uitgifte is slechts de helft van de DokuWiki-route. Bied de wiki aan via HTTPS en stel de canonieke basis-URL in. Stuur verkeer intern naar 80 en stuur het externe schema door, zodat gegenereerde URL's en secure cookies consistent blijven.

Gebruik het volledige DokuWiki-scenario vanaf een schoon netwerk, niet alleen de rootpagina. Een 502- of certificaatfout kun je isoleren met automatische domein- en TLS-configuratie. Als het verkeer het proces bereikt en bestandseigendom het opslaan van pagina's verhindert, ook al wordt de UI geladen, stel die toestand dan vast op de plek waar deze optreedt in plaats van redirects op elkaar te stapelen.

Sluit tijdelijke toegang tot de setup af

Maak een threat model voor de actie die DokuWiki uitvoert, niet alleen voor het loginformulier. De fout met het grootste risico is hier dat de installer- of registratie-instellingen open blijven staan. Implementeer deze grens: verwijder toegang tot de installer, controleer de registratie en bewaar ACL-bestanden samen met de pagina-inhoud.

DokuWiki heeft in deze basisconfiguratie geen verplicht bootstrap-secret; beveilig in plaats daarvan het daadwerkelijke administratoraccount of upstream authentication. Los een permissiefout niet op door de container als root uit te voeren of de host breed te mounten. Resource limits horen ook bij het beveiligingsontwerp wanneer gebruikers filesystemmetadata, het mediavolume, search indexing en PHP-workers kunnen activeren.

Gebruik Dockup voor de platformlaag

Een Dockup-template moet de image, poort 80, mounts, health timing, het domein, TLS en secret delivery vastleggen. Dockup moet de runtime-instellingen van DokuWiki behouden terwijl de operator deze lokale vereiste bevestigt: een persistent configuratievolume met pagina's, media en ACL's. Dezelfde deployment kan gericht worden op Dockup-servers of capaciteit die door klanten is aangesloten.

Pas nadat de route actief is het publieke setting toe en probeer de setupgegevens te vervangen, een pagina te bewerken, media te uploaden, een ACL toe te passen, een revisie te bekijken en een oudere versie te herstellen. Maak back-ups van pagina's, media, metadata, gebruikers, ACL's en plugins en houd de restore-oefening in het operationele plan; dit zijn verantwoordelijkheden van DokuWiki die ook na het beschikbaar stellen van de infrastructuur zichtbaar blijven.

Veelgestelde vragen

Wat heeft DokuWiki nodig voor een productie-deployment?

Routeer de DokuWiki-container op poort 80 via één HTTPS-origin. De vereiste voor de lokale runtime is een persistent configuratievolume met pagina's, media en ACL's. Verklaar DokuWiki pas gereed wanneer je de setupgegevens kunt vervangen, een pagina kunt bewerken, media kunt uploaden, een ACL kunt toepassen, een revisie kunt bekijken en een oudere versie kunt herstellen.

Welke DokuWiki-data hoort in een back-up?

Maak /config persistent en neem pagina's, media, metadata, gebruikers, ACL's en plugins op in hetzelfde recovery-manifest. Een schone DokuWiki-restore is pas geslaagd wanneer pagina's, revisies, media, gebruikers, ACL's en plugins terugkeren en de beveiligde pagina beveiligd blijft.

Heeft DokuWiki HTTPS nodig achter een reverse proxy?

Gebruik HTTPS voor de publieke DokuWiki-origin en houd poort 80 op de interne route. Pas de DokuWiki-instelling correct toe: bied de wiki aan via HTTPS en stel de canonieke basis-URL in. Voor DokuWiki beschermt HTTPS in-transit credentials of gebruikerscontent en houdt het origingevoelige clientgedrag consistent.

Hoe moet je een DokuWiki-upgrade testen?

Herstel de huidige DokuWiki-state in een geïsoleerde deployment, pas de kandidaatversie toe en herhaal de acceptatietransactie. Let hier extra op, omdat plugins en templates kunnen achterlopen op DokuWiki-releases, ook al blijven gewone paginabestanden leesbaar. Houd de vorige DokuWiki-image beschikbaar totdat de grenzen voor datamigratie en rollback duidelijk zijn.