Strumenti Utente

Strumenti Sito


services:etherpad

Etherpad - Sistema di editing collaborativo

Disponibile su |http://pad.lilik.it Etherpad è un sistema di editing collaborativo che consente a più persone di modificare e revisionare un documento di testo (anche formattato).

Più utenti possono visionare e modificare contemporaneamente un documento testuale. Il contributo di ciascun utente viene evidenziato con un colore diverso ed è possibile scorrere la cronologia per esaminare eventuali revisioni precedenti.

I documenti sono chiamati “pad” ed è possibile crearne di nuovi dalla home. Il nome associato può essere determinato dall'utente (per pad pubblici) oppure generato casualmente (per pad privati, accessibili solo a chi ha il link). Ulteriori metodi di sicurezza possono essere implementati tramite plugin.

Installazione

Occorre installare alcuni pacchetti per poter usare Etherpad. Fortunatamente, debian jessie ha la maggior parte del software pronto per essere installato:

apt-get install git-core nodejs curl npm

Il binario di node.js su debian si chiama nodejs, mentre Etherpad richiede come nome node, quindi creiamo un link simbolico per accontentarlo:

cd /usr/bin
ln -s nodejs node

Occorre poi clonare il repository di etherpad:

cd /srv
git clone https://github.com/ether/etherpad-lite.git
cd etherpad-lite

Al primo avvio etherpad provvederà a scaricarsi alcune dipendenze via npm.

Configurazione

Occorre creare un utente tramite cui eseguire Etherpad e scaricare le ulteriori dipendenze via npm:

adduser --system --home /srv/etherpad-lite --group etherpad
mkdir /var/log/etherpad
chown -R etherpad.etherpad /srv/etherpad-lite /var/log/etherpad
su - etherpad -s /bin/bash
./bin/installDeps.sh

Nel file di configurazione è consigliabile modificare il titolo dell'istanza di Etherpad, la sessionKey (con una chiave pseudocasuale) e il dbType per usare qualcosa di più robusto di dirtydb (sqlite, mysql, postgresql).

Script di init

Per automatizzare l'avvio è possibile salvare il seguente script in /etc/init.d/etherpad:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          etherpad
# 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"
LOGFILE="/var/log/etherpad/etherpad-lite.log"
EPLITE_DIR="/srv/etherpad-lite"
EPLITE_BIN="bin/safeRun.sh"
USER="etherpad"
GROUP="etherpad"
DESC="Etherpad"
NAME="etherpad"

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... "
  if test -f /var/run/$NAME.pid; then
    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
  fi
  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/et
	  start
	  ;;
  status)
	  status
	  ;;
  *)
	  echo "Usage: $NAME {start|stop|restart|status}" >&2
	  exit 1
	  ;;
esac

exit 0

Avere Etherpad sulla porta 80

Per avere Etherpad sulla porta 80 occorre installare e configurare nginx di modo tale che faccia da proxy verso la 9001. Etherpad infatti deve girare come utente non privilegiato e quindi non può aprire direttamente la porta. Fortunatamente anche qui la procedura è molto semplice:

apt-get install nginx

Occorre poi aggiungere alla sezione http di /etc/nginx/nginx.conf le direttive per Etherpad:

server {
        listen 80;
        server_name pad.lilik.it;
        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://127.0.0.1:9001;
        }
}
services/etherpad.txt · Ultima modifica: 2016/09/08 15:42 da edoput