Comment installer l'application nodeJS Etherpad ?

Etherpad est un éditeur de texte en ligne, qui permet à plusieurs personnes de travailler sur un même texte simultanément. C'est une solution de travail collaborative.

L'application est développé en NodeJS. Il est possible d'installer Etherpad sur un hébergement o2switch avec l'outil Setup NodeJS App. C'est l'outil permet de créer un environnement nodeJS virtuel et l'outil qui sert à déployer des applications conçus avec nodeJS.

L'installation de Etherpad est malheureusement assez compliqué car il y a beaucoup de problématique liés aux chemins. Il faut donc utiliser quelques astuces et notamment des liens symboliques pour s'en sortir. Ce guide explique tout de A à Z donc vous devriez vous y retrouver facilement.

La première étape est de télécharger les fichiers sources de l'application Etherpad puis de mettre cela dans un dossier à la racine de l'hébergement.

Une archive avec les fichiers sources est trouvable sur la page d’accueil du projet Etherpad. Il faut prendre la version Linux/Mac.

Nous allons faire cela en SSH (ou avec l'aide de l'outil Terminal de cPanel si vous préférez). Si vous n'êtes pas à l'aise avec SSH, vous pouvez aussi télécharger l'archive sur votre ordinateur et l'envoyer en FTP ou avec le gestionnaire de fichier de cPanel.

On va placer les fichiers sources de l'application dans un dossier à la racine de l'hébergement qui se nomme appEtherpad.

# On se remplace dans son dossier principal 
cd
# On télécharge Etherpad. Prendre le lien sur le site officiel (peut changer régulièrement)
wget https://github.com/ether/etherpad-lite/archive/1.8.0-beta.1.zip
# On extrait les données dans un dossier
unzip 1.8.0-beta.1.zip
# On renomme le dossier en appEtherpad
mv etherpad-lite-1.8.0-beta.1/ appEtherpad

L'étape suivante consiste à créer notre environnement Virtuel nodeJS en créant l'application dans l'outil Setup NodeJS App.

Cela va nous permettre de travailler en SSH dans l'environnement nodeJS mais également d'avoir accès aux commandes qui permettent d'installer les dépendances du projet, comme npm par exemple.

Formulaire de création de l'environnement virtuel nodeJS pour installer Etherpad
Dans le formulaire de création de notre environnement nodeJS, il faut définir les choses suivantes :
  1. Node Version : on choisi la version 10 de NodeJS, c'est la version recommandée par Etherpad (au moment de la rédaction de cet article)
  2. Application mode : production car on souhaite installer l'application pour l'utiliser et non pour faire des tests ou du développement
  3. Application root : c'est le répertoire qui contient les fichiers sources de l'application, précédemment nous avons placé cela dans appEtherpad
  4. Application URL : on choisi le domaine/URL sur laquelle l'application va répondre
  5. Application startup file : dans le cas d'Etherpad, c'est le fichier src/node/server.js qui sert à lancer Etherpad
  6. Enfin, il ne reste plus qu'à valider en cliquant sur Create

Une fois l'application créée, cela nous donne accès à la commande source qui permet d'entrer dans l'environnement SSH !

La commande source permet d'entrer dans l'environnement nodeJS en SSH

Maintenant que l'environnement virtuel est créé, on peut se connecter en SSH, lancer la commande source qui est donné par l'outil puis installer les dépendances avec npm. C'est lors de cette étapes qu'il faudra faire plusieurs manipulations avec des liens symboliques pour corriger des problèmes de chemins.

Ces problèmes de chemins sont liées à trois choses essentiellement :

  • les fichiers sources et le package.json se trouve dans un sous-dossier src dans l'application
  • l'application etherpad à besoin d'un lien symbolique sur ep_etherpad-lite qui pointe vers src
  • il y a d'autres fichiers de dépendances dans src/static qui sont requis par l'application et sans faire de lien symbolique, l'application ne les trouve pas car ira chercher dans cela dans node_modules
# On entre dans l'environnement nodeJS virtuel 
source /home/o3dev/nodevenv/appEtherpad/10/bin/activate && cd /home/o3dev/appEtherpad
 
# Afin qu'on puisse lancer la commande npm directement dans appEtherpad, on fait un lien symbolique vers le fichier de dépendance dans src 
# C'est nécessaire de lancer npm dans appEtherpad directement, pour que le dossier node_modules soit géré correctement (lien symbolique, spécificité de setup nodejs app)
ln -s src/package.json package.json
 
# Ensuite on fait le lien nécessaire à etherpad
ln -s src ep_etherpad-lite
 
# A présent on peut installer les dépendances 
npm install
 
# Dés que cela est terminé, un lien symbolique node_modules est créé à la racine du projet
# Récupérer le chemin vers le dossier vers lequel pointe ce lien avec 
# Attention, dans de / après node_modules !!
# Vous devriez avoir un chemin qui ressemble à /home/o3dev/nodevenv/appEtherpad/10/lib/node_modules
ls -lh node_modules 
 
# Le prochain lien à créer dans le dossier src, vers le dossier trouvé à l'étape précédente
cd src
ln -s /home/o3dev/nodevenv/appEtherpad/10/lib/node_modules node_modules
cd ..
 
# Il reste un lien à faire dans node_modules vers le dossier src 
# Cela afin que Etherpad retrouve ces fichiers de dépendances qui sont en dehors de node_modules
cd node_modules
ln -s /home/o3dev/appEtherpad/src ep_etherpad-lite
 
# Note : si vous ne connaissez pas le chemin complet, comme /home/o3dev/appEtherpad/src dans l'exemple
# Avant de faire cd node_modules, lancez la commande pwd
# Cela vous indiquera le chemin complet vers votre application, il ne reste plus qu'à ajouter /src à la fin de ce chemin

Pour résumé un peu tous les liens symboliques que vous devriez avoir à la fin, votre projet devrait ressembler à cela :

# Dans le dossier principal de l'application
[appEtherpad (10)] [o3dev@californie appEtherpad]$ pwd
/home/o3dev/appEtherpad
[appEtherpad (10)] [o3dev@californie appEtherpad]$ ls -lh ep_etherpad-lite node_modules package.json
lrwxrwxrwx 1 o3dev o3dev  3 Mar 26 11:59 ep_etherpad-lite -> src
lrwxrwxrwx 1 o3dev o3dev 52 Mar 26 11:59 node_modules -> /home/o3dev/nodevenv/appEtherpad/10/lib/node_modules
lrwxrwxrwx 1 o3dev o3dev 16 Mar 26 11:55 package.json -> src/package.json
 
# Dans le dossier src
[appEtherpad (10)] [o3dev@californie src]$ pwd
/home/o3dev/appEtherpad/src
[appEtherpad (10)] [o3dev@californie src]$ ls -lh node_modules
lrwxrwxrwx 1 o3dev o3dev 52 Mar 26 12:06 node_modules -> /home/o3dev/nodevenv/appEtherpad/10/lib/node_modules
 
# Dans le dossier node_modules
[appEtherpad (10)] [o3dev@californie node_modules]$ pwd
/home/o3dev/appEtherpad/src/node_modules
[appEtherpad (10)] [o3dev@californie node_modules]$ ls -lh ep_etherpad-lite
lrwxrwxrwx 1 o3dev o3dev 27 Mar 26 12:02 ep_etherpad-lite -> /home/o3dev/appEtherpad/src
Il ne reste plus qu'à lancer l'application en cliquant sur le bouton restart de l'outil Setup NodeJS App. Lancement de l'application Etherpad
L'application Etherpad est bien fonctionnelle !
  • Dernière modification: il y a 4 mois
  • par o2switch