Dokuwiki am RPi in Docker einrichten

Letztes Update 2026/04/12 20:49

Vorbereitung

Info

Volumes (/path/to/dokuwiki/…): Ändern Sie /path/to/dokuwiki/ in einen echten Pfad auf Ihrem Host-System (z.B. /home/user/docker/dokuwiki/config).

Ports (8080:80): Wenn Sie Port 8080 bereits nutzen, ändern Sie die erste Zahl auf einen anderen freien Port (z.B. 8081:80).

PUID/PGID: Stellen Sie sicher, dass PUID und PGID korrekt sind, damit DokuWiki Schreibrechte auf dem Host-Verzeichnis hat. Um die PUID und PGID festzustellen, an der Konsole id eingeben.

Verzeichnisse anlegen

Unter /home/pi einen Ordner /dokuwiki anlegen. Unter /dokuwiki jeweils einen Ordner /data und einen Ordner /config anlegen. Diese Ordner in der .yaml unter volumes: eintragen.

sudo mkdir /home/pi/dokuwiki
sudo mkdir /home/pi/dokuwiki/data
sudo mkdir /home/pi/dokuwiki/config

Dokuwiki yaml

Kurzinfo: Portainer, neuer Stack, yaml einfügen, deploy the Stack

services: dokuwiki: image: lscr.io/linuxserver/dokuwiki:latest container_name: dokuwiki environment: - PUID=1000 # Die ID Ihres Benutzers auf dem Host (meist 1000) - PGID=1000 # Die Gruppen-ID Ihres Benutzers auf dem Host (meist 1000) - TZ=Europe/Berlin volumes: - /home/pi/dokuwiki/config:/config # Pfad zu den Konfigurationsdateien - /home/pi/dokuwiki/data:/var/www/html/data # Pfad zu den Wikidaten ports: - 8070:80 # Port 8070 auf dem Host auf 80 im Container restart: unless-stopped

Erster Aufruf

http://<IP>:8070/install.php

Im Auswahlmenü rechts oben die Sprache einstellen. Hier ist de für Deutsch ausgewählt. Anschließend den Benutzenamen des Administrators, dessen vollständigen Namen und dem Passwort eingeben. Eine eMail ist unbedingt einzugeben, auch wenn sie eine Fake-Adresse hat. Die Zugangskontrolle ist hier auf Lesen für alle, schreiben und hochladen nur für registrierte User eingestellt. Benutzer dürfen sich nicht selbst registrieren, Nutzerdaten werden nicht an Dokuwiki gesendet.

Wenn die Daten richtig eingegeben sind, auf <key>Speichern</key> klicken.

Es empfiehlt sich die Willkommensseite http://<IP>:8070/doku.php?id=wiki:welcome (auf englisch) aufzurufen, da hier einige grundlegende Informationen zu finden dind. Falls eine Sidebar geünscht wird, kann sie hier gleich eingerichtet werden, das kann aber auch zu einem stpäteren Zeitpunkt erfolgen.

Plugin's installieren

⇒ Plugin für geschütztes Leerzeichen

Das ursprünglich verwendete Plugin:nbsp wird nun nicht mehr verwendet, da es im laufenden Betrieb zu unerklärlichen Fehlern gekommen ist. Stattdessen wird eine Datei zur Umwandlung von \ in ein geschütztes Leerzeichen angelegt.

Details zur Umwandlung sind in der Datei conf/entities.conf festgehalten. Um das Überschreiben von Änderungen bei Updates von DokuWiki zu verhindern, wird die Datei conf/entities.local.conf erstellt, um benutzerdefinierte Ersetzungen festzulegen.

Durch das Ausführen der folgenden sechs Befehle wird diese Datei angelegt. Falls eine andere Verzeichnisstruktur vorliegt, entsprechend anpassen.

sudo touch /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf
sudo chmod 666 /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf
sudo echo '# geschütztes Leerzeichen (\ )' >> /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf
sudo echo $'\x5c'$'\x20'$'\x09'$'\xc2'$'\xa0' >> /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf
sudo chmod 644 /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf
sudo chown www-data:www-data /home/pi/dokuwiki/config/dokuwiki/conf/entities.local.conf

Damit kann man nun ein geschütztes Leerzeichen - Backslash gefolgt von einem Leerzeichen \ - im Editor eingeben.

# geschütztes Leerzeichen (\ ) \

⇒ Color Plugin - Farbigen Text in Dokuwiki-Seiten. Doku

In den Admin-Bereich wechseln:

Wechsel in den Adminbereich
Anschließend in den Bereich Erweiterungen verwalten gehen:
Erweiterungen verwalten
Suchen und Installieren auswählen, nach color suchen und im Eintrag color syntax plugin von Harald Hanche-Olsen den Button Installieren drücken, und den Anweisungen folgen.
Oberhalb der Tab's erscheint bei erfolgreicher Installation Meldung .
Die nächsten Plugin's werden analog zu der vorigen Installation im Programmteil Erweiterungen Verwalten eingefügt.

Installierte Plugins

⇒ BackupTool for DokuWiki - von Terence J. Grant, Andreas Wagner, Andreas Gohr
Führt ein Backup der Daten eines DokuWiki-Servers durch. Doku

⇒ Bureaucracy Plugin - von Andreas Gohr
Mit dem Bureaucracy Plugin können Sie ein HTML-Formular direkt in DokuWiki erstellen. Die Überprüfung des Eingabeformats wird automatisch vom Plugin durchgeführt und erfordert keine Codierung. Benutzereingaben können per E-Mail an eine vorkonfigurierte Adresse gesendet oder zum Erstellen neuer Seiten mithilfe einer Vorlage verwendet werden. Doku

⇒ color Plugin - von Harald Hanche-Olsen
Farbigen Text in Dokuwiki schreiben. Doku

⇒ Comment Syntax Plugin - von Satoshi Sahara
Damit ist es möglich, Kommentare im Seitenquelltext unterzubringen, welche in den präsentierten Seiten nicht angezeigt werden. Doku

⇒ Gallery Plugin - von Andreas Gohr
Erzeugt eine Bildergallerie aus einem Namespace oder einem RSS/ATOM Feed. Doku

⇒ keyboard Plugin - von Dokufreaks (previous author: Gina Häußge)
Markiert Text als eizelne Tasten der Tastatur. https://www.dokuwiki.org/plugin:keyboard

⇒ Note Plugin - von Anael Mobilia
Darstellung von auffälliger, bunter Notitz/Tip/Warnung. Doku

⇒ Open Document Plugin - von Andreas Gohr, Aurelien Bompard, Florian Lamml, LarsDW223
Exportiert eine Seite im Open Document Format (Libre-/Open Office). Doku
Bei der Erstellung von Seiten ist zu beachten, dass die Exportfunktionen kein HTML exportieren können!

⇒ sortablejs - von vaxquis JavaScript-basiertes (clientseitiges) DokuWiki-Plugin zum Sortieren von Tabellen. Doku

⇒ timer - von Otto Vainio
Ereignis zu einem definierten Zeitpunkt anzeigen. Doku

Achtung Das Timer-Plugin funktioniert nicht mit der installierten PHP-Version 8.x. Beim Aufruf einer Webseite tritt der Fehler mktime() expects at least 1 argument, 0 given auf. Dieser Fehler lässt sich beheben, indem die Funktion mktime() in der Datei …../dokuwiki/lib/plugins/timer/syntax.php durch die Funktion `time()` ersetzt wird. Dazu die syntax.php mit einem Editor aufrufen, den Ausdruck mktime() suchen und mit time() ersetzen. mktime() kommt drei mal in der Datei vor.

⇒ Upgrade Plugin - von Andreas Gohr
Upgradefunktion der Dokuwiki-Installation. Doku

⇒ Wrap Plugin - von Anika Henke
Mit diesem Plugin kann Wiki-Text in Container eingebunden werden. Doku

⇒ Yearbox Plugin - von Michael Große (formerly: Symon Bent)
Erstellt einen vollständigen HTML-Kalender für das angegebene Jahr mit einem Link zum Erstellen einer neuen Seite für jeden Tag des Jahres. Bestehende Seiten erhalten eine QuickInfo mit einer Vorschau des Seiteninhalts. Doku

Eigenes Logo

Das Logo, der Background und das Favicon liegen im Verzeichnis:

/home/pi/dokuwiki/config/dokuwiki/lib/tpl/dokuwiki/images

Bevor eigene Logos in das Verzeichnis kopiert werden, die originalen sicherheitshalber vorher sichern oder umbenennen.

Falls ein anderes Template installiert wird, dann ist der Pfad zu den Images zu ändern:

/home/pi/dokuwiki/config/dokuwiki/lib/tpl/TEMPLATE/images

Eigenes Favicon

Das favicon.ico ist eine Grafik, welche im Browser und bei Lesezeichen angezeigt wird.

Die in DokuWiki verwendete Standardeinstellung des favicon.ico enthält 8-Bit-PNG-Bilder mit den Abmessungen 16x16px, 32x32px und 48x48px.

DokuWiki verwendet favicon.ico aus dem Verzeichnis /Dokuwiki/lib/tpl/images, um das für Opensearch verwendete Bild zu generieren.

Benutzerdefinierte Favicons
Wenn Sie das standardmäßige DokuWiki-favicon.ico durch eine eigene Grafik ersetzen möchten, können Sie es an einer der folgenden Stellen platzieren:

dem Web Root (/www)

im Root des DokuWiki-Verzeichnisses

in DokuWiki/data/media ⇒ bevorzugt

in DokuWiki/lib/tpl/dokuwiki/images

Standardmäßig hat DokuWiki eine Datei favicon.ico in DokuWiki/lib/tpl/dokuwiki/images.

Weitere Info auf der DokuWiki.org Seite.

Eigene Smileys

vor der Änderung DokuWiki kann Text-Smileys in grafisch äquivalente konvertieren, d.h., die Grafik sollte 15px hoch sein. Die default Icons und die benutzerdefinierten Icons werden automatisch in der Smiley-Auswahl der Symbolleiste angezeigt.

Die default Smiley Images werden im Verzeichnis lib/images/smileys/ gespeichert und in der Datei conf/smileys.conf konfiguriert. Wiki-Admins können ihre eigenen Smileys konfigurieren.

Um eigene Smileys hinzuzufügen und upgradesicher zu speichern, sollten diese nicht mit den default Smileys aus dem Dokuwiki-Paket gemischt werden.

Dazu im Ordner /smileys/ einen Ordner /local anlegen

/dokuwiki/lib/images/smileys/local

und in diesen Ordner die neuen Images kopieren:
Eine Configdatei im Ordner /conf anlegen

/dokuwiki/conf/smileys.local.conf

und diese Einstellungen eintragen. Natürlich dann die eigenen. In diesem Fall sind das die Dateien icon_aut.gif und icon_brit.gif

# Eigene Smileys # Der Pfad der *.gif's sind relativ zum Smileys directory lib/images/smileys/ zu sehen # TEXT_TO_REPLACE FILENAME_OF_IMAGE # :d: local/icon_aut.gif :e: local/icon_brit.gif

Es wird empfohlen, den Ersetzungstext in Doppelpunkten einzuschliessen.

Die Zeichen # und $ dürfen nicht verwendet werden.

Falls das neu angelegte Icon nicht in der Auswahlliste der Toolbar zu sehen ist, was vermutlich passiert, so muss der Cache neu angelegt werden. Im einfachsten Fall als Administrator die Konfiguration aufrufen und neu Speichern. Eventuell eine unwichtige Einstellung vornehmen, die Konfig speichern und die Änderung wieder zurücknehmen.

Eine weitere Möglichkeit wäre, das Konfigurationsfile conf/local.php mit einem Editor aufrufen und mit einem neuen Zeitstempel wieder speichern.

nach der Änderung Falls alle Einstellungen richtig vorgenommen wurden, sollte die Smiley Anzeige der Toolbar, so wie links abgebildet, angezeigt werden.

Verwendete Icons

Die Icons sind im Arbeitsraum :icons: (/data/media/icons) abgelegt. Die angezeigte Größe ist ?20.

:icons:go-next.png	:icons:go-last.png
:icons:go-previous.png	:icons:go-first.png
:icons:go-up.png	:icons:go-top.png
:icons:go-down.png	:icons:bottom.png
:icons:go-redo.png	:icons:go-jump.png
:icons:dialog-information.png	:icons:dialog-warning.png
:icons:go-home.png	:icons:rss.jpg
:icons:baustelle.jpg	:icons:foto.jpg
:icons:foto2.jpg	:icons:pdf.png

FOOTER ändern

In der Datei

/mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/tpl_footer.php

sind die am unteren Rand angebrachten Buttons für z.B. Donate, PHP, etc. definiert. Um eigene Buttons für z.B. einen Link zu einem Impressum anzubringen, muss diese Datei nach folgendem Schema editiert werden:

sudo nano /mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/tpl_footer.php

<a href="http://IP-Adresse/dokuwiki/doku.php?id=impress" title="Impressum" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-impress.jpg" width="80" height="15" alt="Impressum" /></a>

Den Button Button mit einem Grafikprogramm mit der Größe 80×15 pixel erstellen und in das Verzeichnis

/mnt/ssd/www/html/dokuwiki/lib/tpl/dokuwiki/images

kopieren.

Signatur

Im Konfigurationsmanager / Darstellung / Signatur Folgenden Eintrag vornehmen:

'''**Letztes Update @DATE@**''\\ \\'

Nach der Änderung nicht das Speichern am Ende der Seite vergessen!

Die Signatur sieht nach dieser Einstellung aus wie folgt:

Letztes Update 2020/11/22 20:56

Weitere Info bei dokuwiki.org und php.net.

Einzelne Seite exportieren

Am Ende des Links in der Eingabezeile &do=export_xhtml anhängen.

Quelltext anzeigen

Am Ende des Links in der Eingabezeile &do=export_raw anhängen.

Vergessenes Passwort

Falls das Administrator-Passwort abhanden kommt, einen neuen User mit Administratorrechten in die /dokuwiki/conf/user.auth.php einfügen. In dieser Datei sind die User mit Rechten und Passwörtern in MD5 eingetragen.

sudo nano .../dokuwiki/conf/user.auth.php

…/dokuwiki muss das Dokuwikiverzeichnis sein. In dieser Datei nach der letzten Zeile den neuen User eintragen:

test:1a1dc91c907325c69271ddf0c944bc72:test:test@test.com:admin,user

Das sollte dann in etwa so aussehen:

# users.auth.php # <?php exit()?> # Don't modify the lines above # # Userfile # # Format: # # login:passwordhash:Real Name:email:groups,comma,seperated admin:$1$mreLgwU9$KW54/kHo48Sgt..KLJTFIo/:Anwender:user@webadresse.at:admin,user test:1a1dc91c907325c69271ddf0c944bc72:test:test@test.com:admin,user

Mit diesen Einstellungen kann man sich als User test mit dem Kennwort pass Anmelden und im Usermanager von Dokuwiki dem User admin ein neues Kennwort vergeben. den User test im Usermanager wieder löschen.

Icons als Links

Wenn gewünscht, kann ein Link auch über ein Icon verfolgt werden, wobei es egal ist, ob interner oder externer Link. So ergibt die Zeile:

[[http://192.168.20.210/pdf/4000.pdf|{{:icons:go-redo.png?30|Datenblatt HCF4000}}]] Datenblatt HCF4000

die folgende Anzeige:

Datenblatt HCF4000 Datenblatt HCF4000

Da die Icons in der Workgroup icons gespeichert wurden, ist der Ort dieser Grafiken anzugeben :icons:

Anzeigen des Quelltextes abschalten

Falls die Anzeige des Quelltextes nicht erwünscht ist, kann das durch einen Konfigurationseintrag abgeschaltet werden. Im Admin-Bereich → Konfigurations-Manager → Authentifizierung eine Haken bei Quelltext betrachten/exportieren setzen.

Konfiguration sneaky_index

Wenn diese Option aktiviert ist, werden Namespaces, für die ein Benutzer keine Leseberechtigung besitzt, nicht im Namespace-Index (auch bekannt als Sitemap) angezeigt. Dies kann die Indexansicht beschränken, wenn tiefere Namespaces höhere Berechtigungen als die oben genannten haben (was normalerweise der Fall ist). Nicht zu empfehlen, außer für paranoide Menschen .

Type: Boolean

Default: 0

Siehe weiters:

Configuring DokuWiki

Sneakyindexfix: Plugin to show namespace if one has higher permission in deeper namespace

Unterstützte Include-Hooks

Mit Include-Hooks können Sie der Vorlage zusätzliches HTML oder PHP hinzufügen, ohne die Vorlagendateien selbst zu ändern, sodass sie sicher sind, ein Update zu überstehen. Erstellen Sie einfach die entsprechende Datei entweder im Vorlagenverzeichnis lib/tpl/dokuwiki/ oder im conf/ Verzeichnis.

Filename	Position der eingebetteten HTML-Datei
meta.html	Verwenden Sie diese Option im HTML-<Header>, um zusätzliche Stile oder Metaheader hinzuzufügen
sidebarheader.html	Oben in der Sidebar (falls vorhanden)
sidebarfooter.html	Unten in der Sidebar (falls vorhanden)
pageheader.html	Oben im Inhaltsfeld über dem eigentlichen Inhalt
pagefooter.html	Unten im Inhaltsfeld unterhalb des eigentlichen Inhalts
header.html	Oben auf der Seite über dem Logo und dem Wiki-Titel
footer.html	Ganz am Ende der Seite nach allen anderen Seiteninhalten

Samba Share einrichten

Für die leichtere Eingabe von Images wird ein Samba Share eingerichtet. Das Einrichten ist bereits in Paperless in Docker einrichten beschrieben. Es wird nur ein weiterer Share in der smb.conf eingetragen:

sudo nano /etc/samba/smb.conf

[dw_doc]
comment = Dokuwiki Media Pfad
create mask = 0755
path = /home/pi/dokuwiki/config/dokuwiki
read only = No

Danach wird Samba neu gestartet:

sudo service smbd restart
sudo service nmbd restart

In gewohnter Weise, wie in Netzlaufwerk verbinden beschrieben, in Windows einhängen.

Quellenverzeichnis

Folgende Seiten wurden zur Informationsbeschaffung verwendet:

Quellen:
https://www.dokuwiki.org/template:dokuwiki
https://www.dokuwiki.org/start?id=de:installer
https://www.dokuwiki.org/de:entities
https://www.dokuwiki.org/dokuwiki
https://forum.dokuwiki.org/
https://projects.raspberrypi.org/
http://techgeeks.de/
http://tango.freedesktop.org/