Préparation nécessaire avant l’installation proprement dite
Dans un premier temps, nous allons créer un utilisateur système "etherpad" qui sera utilisé pour lancer le service :
- sudo adduser etherpad
Cet utilisateur dispose par défaut d’un répertoire personnel home/etherpad
.
On installe ensuite les dépendances disponibles dans les dépots APT :
- sudo apt-get install gzip git-core curl python libssl-dev pkg-config build-essential
Installation de node.js
node.js est le framework javascript avec lequel est programmé Etherpad-lite.
Pour des raisons de simplicité d’installation, nous allons utiliser les dépôts de Nodesource.
On lance ces deux commandes :
- curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
- sudo apt-get install -y nodejs
Cela ajoutera le bon dépot dans nos sources pour APT et installera NodeJS.
Installation d’Etherpad-lite à proprement dit
On utilise le nouvel utilisateur etherpad
que l’on vient de créer avec la commande suivante :
- su etherpad
Il est temps maintenant d’installer Etherpad-lite que l’on récupère tout d’abord via Git :
- cd ~
- git clone 'git://github.com/ether/etherpad-lite.git'
On se déplace ensuite dans le répertoire récupéré et on installe les dépendances node nécessaires :
- cd etherpad-lite
- ./bin/installDeps.sh
Ceci fait, on peut alors lancer Etherpad-Lite avec la commande suivante :
- ./bin/run.sh
Pour vérifier son fonctionnement, il faut se rendre à l’adresse : http://domaine.tld:9001
Si cela fonctionne, arrêtez le logiciel avec la commande clavier ctrl +c
Utiliser Etherpad comme un service
Cette étape permet d’installer Etherpad-lite comme un service afin qu’il soit démarré et éteint avec la machine sur laquelle il est installé.
On va créer tout d’abord un répertoire de logs dans /var/log
et lui donner les bons droits afin que l’utilisateur idoine puisse y écrire :
- sudo mkdir -p /var/log/etherpad/
- sudo chown -Rvf etherpad:etherpad /var/log/etherpad
On va ensuite créer le fichier /etc/init.d/etherpad-lite
:
- sudo nano /etc/init.d/etherpad-lite
Et on y colle le contenu suivant :
- #!/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/etherpad-lite.log"
- EPLITE_DIR="/home/etherpad/etherpad-lite"
- EPLITE_BIN="bin/run.sh"
- USER="etherpad"
- GROUP="etherpad"
- 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
On le rend ensuite exécutable et on l’active dans les bon runlevels
:
- sudo chmod +x /etc/init.d/etherpad-lite
- sudo update-rc.d etherpad-lite defaults
On peut ensuite lancer le service avec la commande :
- sudo /etc/init.d/etherpad-lite start
Et vérifier son fonctionnement à la même adresse qu’auparavant : http://domaine.tld:9001
Mise à jour d’Etherpad
Dans un premier temps mettez à jour node.js
si possible via les commandes :
- apt-get update && apt-get upgrade nodejs
Le plus simple ensuite est de repartir d’une installation propre.
On coupe d’abord le service, si installé :
- sudo /etc/init.d/etherpad-lite stop
On copie le contenu de l’installation actuelle dans un répertoire temporaire :
- cd ~/
- cp -Rvf etherpad-lite etherpad-lite_tmp
On récupère le code et on installe les dépendances :
- git clone git://github.com/ether/etherpad-lite.git
- cd etherpad-lite
- bin/installDeps.sh
On récupère notre ancienne configuration et base de donnée si vous utilisiez la base "dirty" par défaut :
- cp ../etherpad-lite_tmp/var/dirty.db var/
- cp ../etherpad-lite_tmp/settings.json ./
On peut alors relancer le service :
- sudo /etc/init.d/etherpad-lite start
Suivant la version depuis laquelle vous mettez à jour, il se peut que de nouvelles options de configuration soient possible :
-
users
: permettant de définir une liste d’utilisateurs, notamment les administrateurs ayant accès à l’administration (http://domaine.tld:9001/admin) ; -
title
: titre de la page ; -
favicon
: favicon de la page ; -
ssl
: permettant de définir une clé et un certificat ssl nativement ; -
requireAuthentication
: demande une identification pour chaque utilisateur (voirusers
) ; -
requireAuthorization
: demande une autorisation pour créer un pad par exemple à un module ou un administrateur ; -
trustProxy
: si vous utilisez un proxy ; -
logconfig
: permettant de configurer finement les logs ;