Raspberry Pi: Etherpad Lite installieren
Zum Planen von z.B Demonstrationen oder einfach nur zum Brainstorming ist es praktisch, gemeinsam an einem Textdokument in Echtzeit arbeiten zu können. Möchte man dabei seine Daten nicht kommerziellen Diensten wie Google Docs anvertrauen, wird häufig das Etherpad Lite verwendet, welches auf Node.js basiert. Wie man dieses auf dem Raspberry Pi installiert erkläre ich im Folgenden.
Voraussetzung: Raspbian oder vergleichbare Distribution installiert
Zunächst müssen wir Node.js auf unseren Raspberry Pi installieren. Wie das geht, beschrieb ich in dem Artikel Node.js installieren. Dabei ist darauf zu achten, dass man die von Etherpad Lite benötigte Version installiert. Zum Zeitpunkt als das Tutorial geschrieben wurde benötigte es Node.js v0.10.x. Die aktuelle Voraussetzung findet man im Wiki von Etherpad Lite.
Nun aktualisieren wir zunächst die Software des Raspberry Pis und installieren anschließend mittels des Paketmanagers die benötigten Programme.
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install gzip git-core curl python libssl-dev pkg-config build-essential
Wir können jetzt Etherpad Lite mittels Git herunterladen. Darauf folgend lassen wir die aktuell stabile Version laden. Zum Zeitpunkt als dieses Tutorial geschrieben wurde, war die Version 1.2.91 aktuell. Die aktuelle Version findet man im Git Repository von Etherpad Lite.
git clone git://github.com/ether/etherpad-lite.git
cd etherpad-lite
git checkout 1.2.91
Um das Etherpad Lite erstmalig zu starten, rufen wir nun bin/run.sh auf. Beim ersten Start kann es einige Minuten dauern, bis alles geladen, installiert und erzeugt ist. Wenn You can access your Etherpad-Lite instance at http://0.0.0.0:9001/ angezeigt wird, ist das Etherpad Lite vollständig geladen. Wir beenden es zunächst aber wieder mittels STRG + C.
bin/run.sh
Während des ersten Starts wurde eine Konfigurationsdatei für das Etherpad erzeugt. Diese passen wir nun mittels des Editors nano unseren Wünschen an. In nano speichert man mittels STRG + X, Y und anschließend Enter. Eine ausführliche Erklärung zu jedem Parameter steht über diesem in der zu bearbeitenden Datei.
nano settings.json
Möchte man nun, dass das Etherpad Lite automatisch mit dem Raspberry Pi startet, so muss man folgendes Startscript im Ordner /etc/init.d ablegen. Dabei ist die Variable EPLITE_DIR anzupassen und in diese den Pfad zum Etherpad Lite Ordner einzutragen (bei mir /home/pi/etherpad-lite).
sudo nano /etc/init.d/etherpad-lite
#!/bin/sh ### BEGIN INIT INFO # Provides: etherpad-lite # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts etherpad lite # Description: starts etherpad lite using start-stop-daemon ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/node/bin" LOGFILE="/var/log/etherpad-lite/etherpad-lite.log" EPLITE_DIR="/home/pi/etherpad-lite" EPLITE_BIN="bin/safeRun.sh" USER="root" GROUP="root" DESC="Etherpad Lite" NAME="etherpad-lite" set -e . /lib/lsb/init-functions start() { echo "Starting $DESC... " start-stop-daemon --start --chuid "$USER:$GROUP" --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $EPLITE_DIR/$EPLITE_BIN -- $LOGFILE || true echo "done" } #We need this function to ensure the whole process tree will be killed killtree() { local _pid=$1 local _sig=${2-TERM} for _child in $(ps -o pid --no-headers --ppid ${_pid}); do killtree ${_child} ${_sig} done kill -${_sig} ${_pid} } stop() { echo "Stopping $DESC... " while test -d /proc/$(cat /var/run/$NAME.pid); do killtree $(cat /var/run/$NAME.pid) 15 sleep 0.5 done rm /var/run/$NAME.pid echo "done" } status() { status_of_proc -p /var/run/$NAME.pid "" "etherpad-lite" && exit 0 || exit $? } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "Usage: $NAME {start|stop|restart|status}" >&2 exit 1 ;; esac exit 0
Zuletzt geben wir dem Startscript nun noch Rechte, sodass es ausgeführt werden kann und tragen es in den Autostart ein. Sofern das Etherpad Lite nicht unter /home/pi/etherpad-lite abgelegt wurde muss auch hier der Pfad angepasst werden.
sudo chmod +x /etc/init.d/etherpad-lite
sudo ln -s /home/pi/etherpad-lite /usr/share/etherpad-lite
sudo update-rc.d etherpad-lite defaults
Fertig! Das Etherpad Lite ist nun installiert und kann, sobald es gestartet ist, unter http://IP:9001/ aufgerufen werden (IP durch IP-Adresse oder DynDNS Domain des Raspberry Pis ersetzten). In diesem Sinne: Lasst das Brainstorming beginnen!
Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router
Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.
13 Kommentare. Hinterlasse eine Antwort
Hallo Jan,
vielen Dank für Deine super Anleitung. Ich habe nun das Etherpad Lite am Laufen. Jedoch ist meine Auslastung vom CPU bei 98% und Etherpad lite freezt beim Erstellen einer neuen Notiz oder im Adminpannel ein. Habe den PI schon Medium übertaktet.
Gruß
Sylvio
Wenn mich meiner Erinnerung nicht trügt war es von der Performance schon dünne. Aber ich glaube eine Performance, die einigermaßen ging, erreichte ich mit Übertakten auf High.
Das mit dem Übertakten auf High traue ich mich nicht, da der PI am Router-USB hängt. Dennoch war mal ein schöner Versuch.
Es gibt übrigens unter https://github.com/midnightcodr/rpi_node_install ein komplettes Installscript. Aber das habe ich mir jetzt gespart (keine 3 Stunden auf make warten).
Du hast ja noch schöne TUTs, die ich noch an meinen PI ausprobieren kann. 😉
Danke für das Lob. Mit dem von dir genannten Script kann man jedoch nicht die Version von Node.js bestimmen, was ein Ausschlusskriterium ist, da die API von Node.js sich Version für Version noch stark verändert, wodurch Programme, wie das Etherpad Light, meist eine bestimmte Version von Node.js benötigen, und nicht die unbedingt neueste Version.
Hi Jan,
es wäre echt gut, wenn du soweit es möglich ist, auch immer etwas über die Ressourceninanspruchung der jeweiligen Tools wie hier bei Etherpad Lite schreiben könntest.
Also wieviel RAM wird dauerhaft bzw. bei starker benutzung belegt, wie sieht es mit der CPU Last aus, etc.
So wie sich das hier im obigen Kommentar liest, lohnt es sich kaum Etherpad Lite überhaupt auf den PI zu bringen. Insbesondere, wenn man darauf noch andere Dienste laufen lassen will.
Klar müsste man unterscheiden, ob man die PI als Test oder Produktivumgebung nutzen will. Für mich, der aktuell eher letztes beabsichtigt, wären solche Informationen sehr hilfreich.
Ansonsten: Gute Arbeit: Weiter so!
Hallo,
ich habe bei mir auf dem Raspberry Pi node.js in der version 11 installiert.
Wenn ich für Etherpad nun versuche das run.sh auszuführen bekomme ich immer die Meldung „Please install node.js ( http://nodejs.org )“.
Was mach ich falsch bzw. wie bekomme ich Etherpad dazu node.js zu finden?
Viele Grüße
Ich tippe darauf, dass Node.js nicht über das Kommando node ansprechbar ist. Vielleicht hast du Step 7 und/oder Step 8 im Node.js Tutorial vergessen?
Hey,
ich bekomme bei Punkt 4 immer folgendes ausgespuckt:
Segmentation fault
bin/installDeps.sh: 40: [: =: unexpected operator
Ensure that all dependencies are up to date… If this is the first time you have run Etherpad please be patient.
Segmentation fault
Woran könnte das denn liegen?
Klingt nach einem Programmierfehler. Ich würde es einfach mal mit der nächst älteren Version von Etherpad Lite versuchen.
Known issues
The node package is broken on Raspberry Pi, due to a compilation incompatibility between Rpi CPU architecture and other ARMs. It leads to a segfault error when a node process is launched.
https://forum.yunohost.org/t/etherpad-lite-package/68
Beim Aufruf von Etherpad nach der Installation bekomme ich folgende Fehlermeldung.
bin/run.sh
Illegal instruction
Ensure that all dependencies are up to date… If this is the first time you have run Etherpad please be patient.
Illegal instruction
Versuche doch mal eine ältere Version zu installieren und schau mal ob das geht.
[…] lässt sich Etherpad lite entsprechend der Anleitung von Jan Karres installieren. Wichtig: Etherpad lite sollte auf einem anderen Port des Pi installiert werden als […]