Infozentrale mit Dokuwiki

Eine zentrale Ablage für Adressen, Notizen und oft benötigte Dateien wird nur dann angenommen und gerne genutzt, wenn sie einfach erreichbar ist und auch sonst keine technischen Ansprüche stellt. Dokuwiki ist ein Favorit für diese Aufgabe.

Schon Sie als Heim-Admin haben Mühe, Ihre digitalen Unterlagen zu finden, erst recht aber Ihre Familie, Ihre Mitbewohner oder Ihre Mitarbeiter? Eine per Browser erreichbare Zentrale mit den wichtigsten Dokumenten, Notizen, Anleitungen und Bildern bietet eine ansprechende Lösung. Dokuwiki erledigt diesen Job optisch überzeugend, ist schnell installiert und für alle Teilnehmer einfach zu nutzen.

Dokuwiki
Der Link „Admin“ führt jederzeit zur „Konfiguration“ oder zu den Erweiterungen: Änderungen an den Basiseinstellungen sind selten erforderlich, eine Ausnahme ist ein alternatives Design (Template).

Voraussetzungen und Vorbereitungen

Das ideale Gerät für das Dokuwiki ist ein ständig laufender Server von der Sorte Raspberry Pi, Odroid oder Banana Pi. Diese zusätzliche Aufgabe übernehmen Raspberry & Co. mühelos neben sonstigen Server-Diensten, denn das Dokuwiki stellt bei einer zwei- oder dreistelligen Anzahl von Wiki-Seiten kaum Ansprüche an die Hardware. Dokuwiki arbeitet ohne Datenbank ausschließlich mit kleinen TXT-Dateien und strukturierenden „Namensräumen“, die auf Dateiebene als Verzeichnisse erscheinen.

Voraussetzung ist ein laufender Apache-Server mit PHP. Sofern dieser noch nicht vorliegt, installieren Sie diesen unter Raspbian, Debian oder Ubuntu mit diesem Kommando:

sudo apt-get install apache2 php5 libapache2-mod-php5 php5-curl

Holen Sie sich dann mit wget das kleine Installationspaket von Dokuwiki ins Home-Verzeichnis:

cd ~
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

Unter den Debian/Raspbian-Distributionen liegt das vorbereitete Web-Verzeichnis von Apache unter /var/www, unter Ubuntu seit Version 14.04 unter /var/www/html. Entpacken Sie daher mit

sudo tar xzvf dokuwiki-stable.tgz -C /var/www/[html/]

das Archiv an die richtige Stelle. Das dort entstandene Verzeichnis mit Versionsangabe im Namen benennen Sie mit

sudo mv /var/www/[html/]dokuwiki* /var/www/[html/]dokuwiki

nach „dokuwiki“ um und setzen die Zugriffsrechte für Apache:

sudo chown -R www-data:www-data /var/www/[html/]dokuwiki

Ab sofort ist das Wiki betriebsbereit, und die weitere Einrichtung erfolgt im Browser mit dieser Adresszeile: http://[IP-Adresse]/dokuwiki/install.php?l=de

Folgen Sie den wenigen weiteren Schritten. Notwendig sind das Einrichten eines Administrator-Kontos und die Vergabe eines Wiki-Namens. Weitere Einstellungen wie das Festlegen der Startseite oder der Sprache Deutsch finden Sie jederzeit unter „Admin -> Konfiguration“. Damit Sie und die übrigen Teilnehmer das Wiki mit einem Browser-Lesezeichen zuverlässig erreichen, sollte der Server eine feste lokale IP besitzen. Dies erledigen Sie am besten im Router. Bei der Fritzbox findet sich der Punkt unter „Heimnetz -> Netzwerk“ und dann „…gleiche IPv4-Adresse zuweisen“ beim betreffenden Gerät. Ihre Lesezeichen können dann etwa mit „192.168.1.10/dokuwiki“ die Startseite anspringen oder jede andere Seite mit „192.168.1.10/dokuwiki/doku.php?id=adressen“.

Dokuwiki im Aufbau: Dieser Seitenindex zeigt erst wenige Seiten und Ordner („Namensräume“). Für private Heimnetze reicht aber oft schon eine zweistellige Seitenzahl.
Dokuwiki im Aufbau: Dieser Seitenindex zeigt erst wenige Seiten und Ordner („Namensräume“). Für private Heimnetze reicht aber oft schon eine zweistellige Seitenzahl.

Seiten anlegen und hierarchisch organisieren

Eine neue Seite entsteht typischerweise dadurch, dass Sie in der Browseradresse hinter „[IP]/dokuwiki/doku.php?id=“ einen bisher nicht benutzten Namen eintragen und dann auf den Link „Seite anlegen“ klicken. Der Editor erlaubt fundamentale Auszeichnungen wie Fett oder Kursiv, mehrere Überschriftenebenen und das Einfügen von Bildern, Dateien und URLs. Der Editor entspricht weitgehend demjenigen anderer Wikis oder Blog-Editoren wie WordPress. Einige Eigenheiten sollte man aber kennen:

Beachten Sie bei geschriebenem oder per Zwischenablage eingefügtem Text, dass ein Return keinen Zeilenumbruch bewirkt. Sie müssen mit zwei Returns eine sichtbare Leerzeile erzeugen oder das Zeilenende durch Doppelbackslash (\\) erzwingen.

Bei Listen aller Art (Telefonliste, Adressen, Scripts) wäre es nicht zumutbar, die notwendigen Zeileumbrüche manuell einzutragen. Fügen Sie daher Ihre Liste in den Editor ein, markieren Sie alles und formatieren Sie den gesamten Text mit dem Button „Listenpunkt“. Wenn Sie die Liste oder einen Listenteil später an anderer Stelle brauchen, kopieren Sie den Text in der Browseransicht (nicht im Editor mit dem störenden Formatierungszeichen).

Einige Zeichenkombinationen interpretiert Dokuwiki als Formatierungen, so etwa „//“ bei Linux-Pfadangaben. Hier lässt sich Klartext durch Maskieren mit „%%“ erzwingen – etwa %%//home/user%%.

Ohne weitere Gliederung landen alle Seiten auf oberster Ebene, was selbst bei kleinen Sammlungen schnell unübersichtlich wird. Um hierarchische Ebenen zu organisieren, also etwa für jeden Teilnehmer seinen eigenen Bereich, gibt es „Namensräume“ (Namespaces). Um einen Namensraum anzulegen, verwenden Sie statt „[IP]/dokuwiki/doku.php?id=[Seitenname]“ die Adresse „[IP]/dokuwiki/doku.php?id=[Name:][Seitenname]“ – also etwa „[IP]/dokuwiki/doku.php?id=Sepp:Adressen“. Die neue Wiki-Seite „Adressen“ wird dann unter der neuen Ebene „Sepp“ eingerichtet und in der Übersicht angezeigt.

Da Namensräume auf Dateiebene durch Verzeichnisse, Wiki-Seiten durch TXT-Dateien repräsentiert werden, ist es für den Basisaufbau oder bei größeren Umbauten des Wikis oft einfacher, die Grundstruktur unter /var/www/[html/]dokuwiki/data/pages auf Dateiebene zu unternehmen. Die Browseransicht folgt solchen Änderungen sofort oder spätestens nach dem Seiten-Refresh mit Taste F5.

Apropos Umbauten: Für das Löschen oder Umbenennen von Seiten werden Sie keine Option finden. Entweder erledigen Sie das auf Dateiebene oder im Browser – und hier so: Öffnen Sie die Wikiseite, und gehen Sie auf „Diese Seite bearbeiten“. Nach Löschen des kompletten Inhalts und „Speichern“ ist die Seite gelöscht. Namensräume verschwinden automatisch, sobald alle Seiten unterhalb des Namensraums gelöscht wurden. Zum Umbenennen von Seiten kopieren Sie kompletten Inhalt in eine neue Seite mit dem gewünschten Namen und löschen dann die ursprüngliche Seite auf die beschriebene Weise.

Erweiterungen und Themes

Über „Admin -> Erweiterungen verwalten -> Suchen und Installieren“ ist das Dokuwiki erweiterbar. Es gibt zahlreiche funktionale Erweiterungen und alternative Templates. Auch der standardmäßig vorhandene Konfigurationsdialog und die hier angesprochene Erweiterungsverwaltung sind bereits externe Plugins.

Unter „Suchen und Installieren“ können Sie nicht stöbern, sondern müssen einen Suchbegriff vorgeben. Wer stöbern will, sollte die Seite www.dokuwiki.org/extensions aufsuchen, die gewünschte Erweiterung danach aber über „Suchen und Installieren“ einrichten. Ein auf diese Weise heruntergeladenes Template können Sie dann unter „Admin -> Konfiguration -> Designvorlage“ auswählen und dann ganz unten auf „Speichern“ gehen. In der Regel benötigt der Browser mit Taste F5 einen Seiten-Refresh, um das neue Theme anzuzeigen.

Wer über das Dokuwiki viele Downloads anbieten will, sich aber das Hochladen über den „Medien-Manager“ in das Wiki sparen will, sollte das Plugin „directorylist“ nachrüsten. Dann listet nämlich eine neue Wikiseite (etwa „downloads“) mit folgender Code-Zeile

<directorylist: path="/home/ha/usb2/Transfer">

sämtliche Dateien des eingetragenen Pfads auf und erlaubt per Mausklick den Download. Eine mediengerechte Darstellung bietet diese Methode allerdings im Gegensatz zum eingebauten „Medien-Manager“ nicht, sie zeigt nur Dateinamen und Größen.

Versionsverwaltung: Dokuwiki speichert alle Bearbeitungszustände und ist damit auch für Teamarbeit an einem Dokument vorbereitet.
Versionsverwaltung: Dokuwiki speichert alle Bearbeitungszustände und ist damit auch für Teamarbeit an einem Dokument vorbereitet.

 

Designvorlage anpassen

Über „Admin -> Konfiguration“ erreichen Sie im Browser bequem die zahlreichen Basis-Einstellungen, die Sie sonst über die Datei …/conf/dokuwiki.php steuern müssten. Ganz oben unter „Basis“ definieren Sie die Designvorlage. Das ist beim Dokuwiki nicht nur eine optische Entscheidung, sondern bestimmt auch, ob und wo die Wiki-Übersicht, die Editieraktionen und die Konfiguration erreichbar sind. Beachten Sie, dass jedes Design im allerletzten Punkt „Template“ der Konfiguration noch diverse Detailanpassungen vorsieht: Das betrifft nicht nur die Farben, sondern auch die gewünschte Position der Elemente.

Rechtevergabe im Dokuwiki

Das Rechtesystem ist zunächst einfach: Der nach der Installation eingerichtete Administrator wird „Superuser“ (siehe „Admin -> Konfiguration -> Authentifizierung“) und hat Zugriff auf alle Seiten, auch auf solche anderer Benutzer. Alle weiteren Benutzer, die über „Admin -> Benutzerverwaltung“ angelegt werden (oder sich selbst registrieren), sind automatisch normale „user“. Sie dürfen Beiträge lesen und neue anlegen, es fehlt ihnen aber der Link „Admin“, der zur Konfiguration und Benutzerverwaltung führt.

Komplizierter wird es durch ACL-Rechte, die Sie über „Admin -> Zugangsverwaltung“ definieren können. Um den Überblick zu behalten, sind zwei einfache Grundstrategien möglich: Variante 1 ist ein offenes Wiki, das nur einen „privaten“ Bereich für den Superuser enthält, Variante 2 macht aus dem Dokuwiki eine Art private Notizensammlung für mehrere User:

Variante 1: Für „[Wurzel]“ gilt unter „Admin -> Zugangsverwaltung“ für die Gruppe „@user“ mindestens die Berechtigung „Anlegen“ (es gibt sechs Berechtigungen von „Keine“ über „Lesen“, „Bearbeiten“ bis maximal „Entfernen“). Ein einziger darunterliegender Namensraum etwa mit dem Namen „1st_user“ erhält hingegen die User-Berechtigung „Keine“. Das heißt, dass sich alle Benutzer überall austoben dürfen, aber den Namensraum „1st_user“ nicht betreten können. Das Dokuwiki bietet unter „Admin -> Konfiguration“ im Abschnitt „Darstellung“ sogar eine Option „sneaky_index“, die unzugängliche Namensräume bei anderen Benutzer automatisch ausblendet.

Variante 2: Auch hier sollte für „[Wurzel]“ und für die Gruppe „@user“ mindestens die Berechtigung „Anlegen“ gelten. Darunter setzen Sie für die Bereiche („Namensräume“) der einzelnen Benutzer die Gruppe „@user“ auf die Berechtigung „Keine“, geben aber dem jeweiligen Benutzer das maximale Recht „Entfernen“. Dieser Namensraum gehört damit exklusiv diesem Benutzer. Auch hier sorgt „sneaky_index“ dafür, dass andere Benutzer diesen Namensraum erst gar nicht sehen.

Links der Inhalt von "Alex", rechts der des "Superusers": ACLs ermöglichen geschützte Bereiche, die für andere Benutzer nicht zugänglich und optional ganz ausgeblendet werden.
Links der Inhalt von „Alex“, rechts der des „Superusers“: ACLs ermöglichen geschützte Bereiche, die für andere Benutzer nicht zugänglich und optional ganz ausgeblendet werden.

Dokuwiki im Internet

Wenn Sie das Wiki über eine Portfreigabe im Internet erreichbar machen, gelten verschärfte Sicherheitsansprüche. Dies vor allem dann, wenn Ihr Dokuwiki keinen öffentlichen Wiki-Charakter hat, sondern als persönliche Infozentrale dient. Die angesprochenen ACL-Rechte sind in diesem Fall nicht einschlägig, weil es hier nicht um differenzierte Rechte geht, sondern darum, Fremde kategorisch fernzuhalten:

  1. Wesentlichste Sicherheitsmaßnahme ist der Gang zu „Admin -> Konfiguration -> Authentifizierung“. Hier gibt es einen Punkt „DokuWiki-Aktionen deaktivieren“, wo die Option „Registrieren“ unbedingt ein Häkchen benötigt. Damit ist das offene Registrieren beliebiger Nutzer verboten. Dies würde nämlich dazu führen, dass jeder Internet-Nutzer, der zufällig Ihr Wiki findet, sich ein Konto anlegen könnte und Zugriff auf alle oder einige Inhalte hätte.
  2. Weitere Sicherheitsregeln sind banal: Vermeiden Sie die Benutzernamen „admin“ und „root“, die das Ratespiel eines Eindringlings stark vereinfachen. Verwenden Sie ferner sehr sichere, komplexe Passwörter für alle erlaubten Benutzer und so wenige Konten wie möglich.

Textimport statt „Seiten anlegen“

Normale Benutzer legen neue Seiten dadurch an, dass sie in der Browser-Adresszeile hinter http://[IP-Adresse]/dokuwiki/doku.php/ einfach einen neuen Seitennamen angeben und nach Eingabetaste die Option „Seite anlegen“ wählen. Die einfache Struktur ermöglicht aber auch einen Massenimport von Seiten. Es gibt dafür etliche Plugins, die aber entweder recht speziell ausfallen oder durch Hinweise auf Fehleranfälligkeit nicht zum Produktiveinsatz einladen. Der hier beschriebene Weg geschieht unter der Haube auf Dateiebene etwa in der SSH-Konsole:

  1. Die künftigen Dokuwiki-Seiten müssen im einfachen Textformat vorliegen und die Dateiendung .txt erhalten. Binär-Formate wie odt, pdf, docx, rtf müssen also gegebenenfalls erst konvertiert werden. Die Massenkonvertierung solcher Dateien ist ein Thema für sich und kann hier nicht vertieft werden. An dieser Stelle soll der Hinweis genügen, dass etwa der Writer aus Libre Office einen Schalter bietet, um alle Dateien eines Ordners umzuwandeln:
libreoffice –writer –convert-to "txt:Text (encoded):UTF8" *.odt
  1. Die Textdateien kopieren Sie dann etwa mit dem Midnight Commander nach /var/www/html/dokuwiki/data/pages (bei manchen Distributionen nach /var/www/dokuwiki/…/) oder in ein passendes Unterverzeichnis des Wikis.
  2. Was Sie jetzt als root oder mit einem anderen Systemkonto kopiert haben, hat nicht die korrekten Dateirechte. Sie könnten die Dateien im Dokuwiki lesen, aber nicht bearbeiten. Legen Sie daher mit chown den Benutzer „www-data“ und die gleichnamige Gruppe als Besitzer fest – etwa wieder im Midnight Commander unter „Datei -> Chown“.
  3. Falls in der Browseransicht des Dokuwikis trotzdem noch Seiten fehlen, dann hat das die triviale Ursache, dass das Dokuwiki Dateien mit Großbuchstaben und Leerzeichen im Dateinamen ignoriert. Das systematische Umbenennen von Dateien ist erneut ein komplexes Thema, das wir hier nur mit zwei kurzen Beispielbefehle andeuten können:
rename 'y/A-Z/a-z/' *
rename 's/ /_/g' *

Das erste Kommando sorgt für Kleinschreibung, das zweite ersetzt Leerzeichen durch Unterstriche.

Nach diesen Schritten sollten alle auf Dateiebene integrierten Textdateien als Wiki-Seiten erscheinen. Für bessere Lesbarkeit wird manche Nachbearbeitung nötig sein, aber das geht weit schneller als einzelnes Anlegen und manuelles Copy & Paste.

Deaktivieren von Aktionslinks: Das Dokuwiki wird dadurch übersichtlicher und sicherer. Vor allem das freie "Registrieren" ist nur für öffentliche Wikis geeignet.
Deaktivieren von Aktionslinks: Das Dokuwiki wird dadurch übersichtlicher und sicherer. Vor allem das freie „Registrieren“ ist nur für öffentliche Wikis geeignet.