• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Etherpad Lite installieren

07. August 2013
Raspberry Pi
13 Kommentare

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

Step 1

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.

Step 2

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

Step 3

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

Step 4

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

Step 5

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

Step 6 (optinal)

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
Step 8

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.

9001
Quellen: Startscript dem Wiki von Etherpad Lite entnommen

13 Kommentare. Hinterlasse eine Antwort

  • Sylvio
    November 7, 2013 8:27 pm

    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

    Antworten
    • Jan Karres
      November 7, 2013 9:39 pm

      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.

      Antworten
      • Sylvio
        November 7, 2013 9:45 pm

        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. 😉

        Antworten
        • Jan Karres
          November 7, 2013 10:07 pm

          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.

          Antworten
  • jpg
    Februar 22, 2014 4:06 pm

    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!

    Antworten
  • JanS
    August 5, 2014 3:46 pm

    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

    Antworten
    • Jan Karres
      August 8, 2014 3:03 pm

      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?

      Antworten
  • Flo
    November 21, 2014 6:10 pm

    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?

    Antworten
    • Jan Karres
      November 23, 2014 6:58 pm

      Klingt nach einem Programmierfehler. Ich würde es einfach mal mit der nächst älteren Version von Etherpad Lite versuchen.

      Antworten
  • nothx
    November 28, 2014 3:03 pm

    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

    Antworten
  • HansDampf
    Dezember 2, 2014 8:59 pm

    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

    Antworten
    • Jan Karres
      Dezember 6, 2014 11:05 pm

      Versuche doch mal eine ältere Version zu installieren und schau mal ob das geht.

      Antworten
  • Raspberry Pi als physikServer – hsander.net
    September 1, 2018 10:36 pm

    […] 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 […]

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum