MoinMoin-Wiki
Zur Anleitung
Die Anleitung basiert auf meiner Synology 211+. Je nach Modell können die Pfade etwas anders sein.
MoinMoin Wiki
Was ist MoinMoin?
MoinMoin ist eine freie Wiki-Software, die in der Programmiersprache Python geschrieben ist. Der Name „MoinMoin“ ist eine Anspielung auf den norddeutschen Gruss „Moin“ sowie auf die Doppelung und „CamelCase“-Schreibweise von „WikiWiki“, einem Synonym von „Wiki“.
Vor- und Nachteile des MoinMoin-Wiki
Vorteile:
- OpenSource
- Sie läuft ohne Datenbank, d.h. läuft auf Dateiebene
- Einfach zu warten
- ACLs (Berechtigung)
- Crossplattform (Windows, Mac, Linux)
- Standalone Lösung, WSGY-Mode
- Versionsverwaltung
Nachteile:
- Python muss installiert sein, d.h. braucht einen Interpreter.
- Python als Skriptsprache (Noch eine Sprache die man lernen muss)
- WYSIWYG-Editor hat ein paar Macken.
Voraussetzungen
Damit das Wiki auf der Synology-Box läuft muss zwingend Python installiert werden. Will man das Ganze mit mod_wsgi betreiben braucht man einen Apache-Server und das mod_wsgi
Grundinstallation
ipkg install python #Python Framework ipkg install py25-moin #MoinMoin Wiki ipkg install procps #Für Standalone mit ps, top, vmstat, pgrep
Standalone Version
ipkg install procps #Für Standalone mit ps, top, vmstat, pgrep
mod_wsgi (Apache)
ipkg install mod-wsgi #Apache Modul für wsgi
Benutzer erstellen
Ich empfehle das Wiki unter einem anderen Benutzer laufen zu lassen. Sollte durch eine Schwachstelle im Wiki eingebrochen werden, ist nur das Wikiverzeichnis betroffen.
Benutzer: wiki Gruppe: www-wiki
Ordner / Dateistruktur
Ordner der Originalen Wiki-Seiten umbennen, ggf. später löschen wenn man ein Update zu einer älteren Version macht.
mv /opt/share/moin/data /opt/share/moin/data_old
Im Homeverzechnis des wiki-users einen Ordner data erstellen und Soflink erstellen:
cd /opt/share/moin/ ln -s /volume1/homes/wiki/data data
Softlink für das Sitepackages erstellen
cd /opt/share/moin/data/ ln -s /opt/lib/python2.5/site-packages/MoinMoin/web/static/htdocs htdocs
Softlink der Wiki Konfiguration im Root-Wiki-Verzeichnis erstellen
cd /opt/share/moin/ ln -s config/wikiconfig.py .
Order für Log's erstellen
mkdir /opt/share/moin/logs
Underlay-Daten entpacken. Dies sind Hilfeseiten für das Wiki.
tar xfv /opt/share/moin/underlaytmp.tar.gz
Konfiguration
wikiconfig.py
Folgende Optionen müssen definiert werden:
# Wiki Namen in der Titelheader sitename = u'Mein Wiki' # Startseite page_front_page = u"MyStartingPage" # AdminBenutzer superuser = [u"Moderator","Administrator", ] # ACL bevor die Seite geladen wird. Ist besonders für Nicht-Öffentliche Seiten praktisch. acl_rights_before = u"YourName:read,write,delete,revert,admin"
wikiserverconfig.py
Wiki-Server Konfiguration:
hostname = '[IP-Adresse]' port = 8081 user = 'wiki' group = 'www-wiki'
Berechtigung
Jetzt alle Daten und Unterverzeichnisse die richtigen Berechtigungen setzen. Ggf. wiederholen, wenn man Daten aus einem älteren Wiki migriert.
cd /opt/share/moin/ chown wiki:www-wiki -R *
Der erste Test
Jetzt kann man Testen, ob das Wiki richtig konfiguriert ist.
cd /opt/share/moin/ ./wikiserver.py
Werden keine Fehlermeldung angezeigt, kann man nun das Wiki direkt im Browser anzeigen:
http://[IP-Adresse]:8081
Wenn nun alles geklappt hat kann man hier sich entscheiden, will man das Wiki im Standalone-Modus oder im mod_wsgi betreiben:
Standalone-Version
Für 1-2 Benutzer reicht diese Betriebsart. Bei etwas schwachen NAS-Modellen (Bei 128Mb RAM) empfiehlt sich ebenso diesen Modus zu wählen.
S80moin
Damit das Wiki mit dem Start der NAS gestartet werden soll erstellt man im ini.d Verzeichnis ein Skript:
# # /opt/etc/init.d/S80moin # #!/bin/bash SERVICE="moin" PID="/opt/share/moin/var/moin.pid" CONFIG="/opt/share/moin/" USER="wiki" GROUP="www-wiki" PORT="8081" COMMAND_START="moin server standalone --user=$USER --group=$GROUP --config-dir=$CONFIG --port=$PORT --pidfile=$PID --start" COMMAND_STOP="moin server standalone --user=$USER --group=$GROUP --config-dir=$CONFIG --port=$PORT --pidfile=$PID --stop" DATE=date if [ "$1" == "start" ]; then echo "$DATE starting $SERVICE" $COMMAND_START elif [ "$1" == "restart" ]; then echo "$DATE restarting $SERVICE" if [ -f $PID ] then $COMMAND_STOP wait fi if [ -f $PID ] then killall $SERVICE wait rm $PID fi echo "$DATE starting $SERVICE" $COMMAND_START elif [ "$1" == "stop" ]; then echo "$DATE restarting $SERVICE" if [ -f $PID ] then $COMMAND_STOP wait fi killall $SERVICE elif [ "$1" == "check" ]; then # if ps -u $USER x | grep -v grep | grep $SERVICE > /dev/null; then if procps-ps -u $USER | grep $SERVICE > /dev/null; then echo "$DATE $SERVICE îs running, everything is fine" else echo "$DATE Alert! $SERVICE is not running, trying to restart" if [ -f $PID ] then rm $PID fi $COMMAND_START fi else echo "$DATE : Parameter missing, use start,stop,check or restart" fi exit 0
Wiki starten
Mit dem start des Skript und dem Parameter startet das Wiki als Dienst:
/opt/etc/init.d/S80moin start
Stoppen:
/opt/etc/init.d/S80moin stop
Apache-Version (mod_wsgi)
Die mod_wsgi Version läuft über den Apache. Sie ist bei grössere Benutzerzahl
moin.wsgi
Das WSGI Modul muss wissen wo das Root-Verzeichnis des Wikis liegt: /opt/share/moin/server/moin.wsgi
sys.path.insert(0, '/opt/share/moin')
httpd.conf
# #opt/etc/apache2/httpd.conf # # Wo der Apache Server abhört: Listen 8081 ServerName [IP-Adresse] # Directory-Direktive für Root-Apache-Verzeichnis auskommentieren. # Virtuelle Hosts Inkludieren Include etc/apache2/extra/httpd-vhosts.conf # Modul Mod WSGI laden Include etc/apache2/conf.d/mod_wsgi.conf
httpd-vhosts.conf
Die WSGI Parameter können je nach Anforderungen verändert werden.
# #opt/etc/apache2/extra/httpd-vhosts.conf # <VirtualHost *:8081> ServerName meinServer:8081 ServerAdmin mail@domain.ch DocumentRoot /opt/share/moin/htdocs/ ErrorLog /opt/share/moin/logs/error.log CustomLog /opt/share/moin/logs/access.log common # Aliase für Statische Dateien Alias /robots.txt /opt/share/moin/htdocs/robots.txt Alias /favicon.ico /opt/share/moin/htdocs/favicon.ico Alias /wiki/ /opt/share/moin/htdocs/ # URL http://servername:8081/ WSGIScriptAlias / /opt/share/moin/server/moin.wsgi # erstellt wsgi daemons - mit Benutzer und Gruppe WSGIDaemonProcess daemonwiki umask=0007 user=wiki group=www-wiki processes=5 threads=15 maximum-requests=2000 # Benutze den daemon für den Prozess-Request! WSGIProcessGroup daemonwiki </VirtualHost>
Finish
Da jetzt allen läuft muss man den SuperUser erstellen und noch die Sprache(n) installieren:
- Anlegen des Superusers (sofern noch nicht erfolgt)
- Einloggen als Superuser
- http://[IP-Adresse]:8081/LanguageSetup
- Deutsch und Englisch komplett installieren
Weitere Möglichkeiten
Mit dem Betrieb ergeben sie eine vielzahl an Möglichkeiten so z.B.
- Wiki zum Dokumentieren (Inventar)
- Wiki zum Mitnehmen. Auf Windows kopie installieren und mit dem Wiki auf der Synology-NAS synchronisieren. (/volume1/homes/wiki/htdoc/data/pages zu C:\wiki\data\pages)
Weitere Quellen
* MoinMoin * Hilfe für die Installation * MoinMoin unter Windows