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 internet 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.
Téléchargement d'Etherpad
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
Création de l'environnement nodeJS
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.
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)Application mode
: production car on souhaite installer l'application pour l'utiliser et non pour faire des tests ou du développementApplication root
: c'est le répertoire qui contient les fichiers sources de l'application, précédemment nous avons placé cela dansappEtherpad
Application URL
: on choisi le domaine/URL sur laquelle l'application va répondreApplication startup file
: dans le cas d'Etherpad, c'est le fichiersrc/node/server.js
qui sert à lancer Etherpad- 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 !
Installation des dépendances
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-dossiersrc
dans l'application - l'application etherpad à besoin d'un lien symbolique sur
ep_etherpad-lite
qui pointe verssrc
- 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 dansnode_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
Lancement de l'application
restart
de l'outil Setup NodeJS App.