Etherpad Lite

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen

Etherpad Lite ist eine Webapplikation, mit der man im Team formatierte Texte in einem Browser erstellen und bearbeiten kann. Zusätzlich steht eine Chat-Funktion zur Verfügung.

Weblinks

Installation

Genau wie auf der Etherpad Lite Homepage beschrieben. Zusätzlich sollten folgende Schritte erfolgen, die auch auf der Homepage beschrieben sind:

  • MySQL-Integration
  • Boot-Script Integration
  • Betrieb hinter einem Apache Reverse Proxy (um Pads in die eigene Homepage zu integrieren)

Bei Update von Node, sollte bin/run.sh wiederholt werden, um die Node Module zu erneuern.

Konfiguration

Im folgenden sind die wichtigsten (geänderten) Konfigurationsparameter für den Betrieb unter openSUSE beschrieben.

MySQL

Einstellungen zur MySQL-Integration in settings.json:

   "dbType" : "mysql",
   "dbSettings" : {
                    "user"    : "xxxx",
                    "host"    : "localhost",
                    "password": "yyyy",
                    "database": "etherpad_lite"
                  },

   "abiword" : "/usr/bin/abiword",

Boot-Script

Boot-Script /etc/init.d/etherpad-lite:

#! /bin/sh
#
# Author: Ralf Kruedewagen
#
# /etc/init.d/etherpad-lite
#   and its symbolic link
# /usr/sbin/rcetherpad-lite
#
# System startup script for the router advertisement daemon
#
### 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_daemon
### END INIT INFO

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
LOGFILE="/var/log/etherpad-lite/etherpad-lite.log"
EPLITE_DIR="/opt/etherpad-lite/etherpad-lite"
EPLITE_BIN="bin/safeRun.sh"
USER="etherpad-lite"
GROUP="etherpad-lite"
DESC="Etherpad Lite"
NAME="etherpad-lite"

EPLITE_PIDDIR=/var/run/etherpad-lite
EPLITE_PIDFILE=$EPLITE_PIDDIR/etherpad-lite.pid

. /etc/rc.status

rc_reset

case "$1" in
    start)
        echo -n "Starting $NAME"
        test -d $EPLITE_PIDDIR || install -d -m 755 -o etherpad-lite $EPLITE_PIDDIR
        # run script is not a daemon, so send it to background
        start_daemon -u $USER -g $GROUP -p $EPLITE_PIDFILE $EPLITE_DIR/$EPLITE_BIN $LOGFILE &
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down $NAME"
        #killproc -p $EPLITE_PIDFILE -TERM $EPLITE_BIN
        killall -u $USER safeRun.sh
        killall -u $USER node
        rc_status -v
        ;;
    try-restart)
        $0 stop  &&  $0 start
        rc_status
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;
    status)
        echo -n "Checking for $NAME: "
        checkproc $EPLITE_DIR/$EPLITE_BIN
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
        ;;
esac
rc_exit

Hinweise zum Boot-Script:

  • Das Script ist recht rudimentär und verbesserungswürdig. Getestet wurde es unter openSUSE 13.1.
  • Bei start_daemon muss das Etherpad safeRun.sh Script mit "&" in den Hintergrund geschickt werden. Es wird dabei keine PID angelegt.
  • Das Stoppen des Dienstes geschieht daher recht brutal ohne Auswertung der PID. Achtung bei Betrieb mehrerer Etherpad Lite Instanzen!
  • Das Script basiert auf dem Script für radvd und ist systemd-kompatibel.
  • Ich habe Hinweise erhalten, dass für eine korrekte Funktionsweise unter openSUSE 12.3 das Kommando "rc_reset" entfernt werden muss.

Einstellungen in bin/safeRun.sh:

EMAIL_ADDRESS="webmaster@xxx.yy"

Apache Reverse Proxy

Da ich Etherpad Lite nicht explizit in einem eigenen Virtual Host laufen lassen wollte (sprich unter einem eigenen FQDN Namen), sondern in meine normale Homepage eingebettet, habe ich die Beispiel-Konfiguration auf der Etherpad Lite wie folgt angepasst.

Apache Module laden in /etc/sysconfig/apache2:

APACHE_MODULES="... proxy proxy_http"

Apache Reverse Proxy aktivieren in /etc/apache2/conf.d/etherpad-lite.conf:

<IfModule mod_proxy.c>
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyVia On
  #RewriteRule muss in Virtual Host gesetzt werden

  # / am Ende ist entscheidend fuer rev proxy
 <Location "/pad/">
  ProxyPass http://127.0.0.1:9001/
  ProxyPassReverse http://127.0.0.1:9001/
 </Location>
 <Proxy *>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
 </Proxy>
</IfModule>

In allen gewünschten Virtual Hosts sollte nun eine Rewrite-Regel erstellt werden, damit die URL zu Etherpad Lite immer mit einem "/" endet. Ohne "/" am Ende greift und funktioniert der Reverse Proxy nicht.

  RewriteEngine On
  RewriteRule ^/pad$ /pad/ [R]

Siehe auch: