Installer une deuxième instance de do•doc sur un serveur dédié

Ce tutoriel permet d’installer un deuxième do•doc sur un serveur dédié. Il suppose donc qu’un premier do•doc est installé et tourne sur ce serveur.

Étape 1 : récupérer et installer do•doc

Pour ces étapes là il faut connaître quelques commandes pour naviguer dans le disque dur de votre serveur avec le terminal. La base, c’est :

  • cd /le-chemin/vers-le-dossier
    pour naviguer vers un dossier précis

  • cd mon-sous-dossier
    pour naviguer vers un sous-dossier du dossier courant

  • cd ../ pour remonter dans le dossier parent

  • ls pour lister tout le contenu du dossier courant

Rendez-vous dans le dossier home de votre serveur en tapant :

  • cd /home

Listez ensuite son contenu pour voir ce qui s’y trouve :

  • ls

Un dossier intitulé ubuntu se trouve sur ce serveur. Nous allons installer do•doc dedans (mais vous pouvez le placer ailleurs si vous préférez).

Nous pouvons rapatrier l’intégralité du code source de do•doc en une fois avec git en tapant (comme nous avons déjà un dossier dodoc, il est nécessaire de télécharger le code source dans un dossier avec un autre nom, pour cela ajouter à la fin de la ligne de commande le nom du dossier désiré, ici pour l’exemple: « dodoc-nouveau »)

  • git clone https://github.com/l-atelier-des-chercheurs/dodoc.git dodoc-nouveau

Cela va automatiquement créer un dossier du nom de dodoc-nouveau dans le dossier courant (ici, le dossier dont le chemin est /home/ubuntu).

Ouvrez ce dossier en tapant :

  • cd dodoc-nouveau

Il existe de nombreuses versions de do•doc et le code source est par défaut réglé sur la version application (celle que vous pouvez télécharger sur le site de l’Atelier des chercheurs). Il faut donc basculer vers une version spécifiquement adaptée aux contraintes des serveurs dédiés.

Pour changer de version (branche, en langage git) : git checkout nom-de-la-branche. À savoir qu’il y a deux branches possibles :

  • dodoc2-node est la dernière version stable du logiciel
  • dodoc2-dev-node est la dernière version expérimentale, qui contient des modifications peu testées encore.

Il est possible de passer de l’une à l’autre mais cela comporte le risque de ne plus pouvoir accéder à certains contenus (par exemple, une nouvelle recette de la marmite qui ne sera pas présente sur la version stable si vous revenez en arrière). Les versions expérimentales sont en règle général assez stable (nous les utilisons en atelier tout le temps) mais il existe toujours le risque d’un soucis important encore non détecté… Bref, à vous de voir :slight_smile:

Dans notre cas, nous allons installer la branche dev :

  • git checkout dodoc2-dev-node

Git devrait vous répondre ensuite Switched to a new branch 'dodoc2-dev-node'

Il nous faut maintenant installer les dépendances de do•doc. Il y en a plusieurs dizaines pour la partie serveur et pour la partie client (la gestion des données et l’interface graphique de do•doc).

Commencez par taper la commande qui indique de récupérer toutes les dépendances de la partie serveur. Cela peut prendre de 2 à 5 minutes en fonction de la puissance et de la vitesse de la connexion internet de votre serveur (et non la votre).

  • npm install

Rendez-vous dans le sous-dossier public et réitérez l’opération :

  • cd public

  • npm install

Puis lancez la création du code JavaScript « client » pour les navigateurs :

  • npm run build

Si vous changez de branche, n’oubliez pas de relancer les 4 étapes précédentes : npm install dans le dossier principal et dans /public, puis npm run build dans le dossier /public.

Revenez maintenant dans le dossier principal de dodoc-nouveau :

  • cd ../

Étape 2: configurer le nouveau do•doc

Pour que les deux dodoc fonctionnent en même temps, il faut configurer ce nouveau dodoc afin qu’il tourne sur un port différent et qu’il enregistre les contenus dans un dossier différent du premier.

  1. copiez le fichier nommé settings.example.json en renommant la copie settings.json
  • cp settings.example.json settings.json
  1. ouvrez la copie
  • nano settings.json

Le fichier de paramètres s’ouvre, allez à la ligne :
"desired_port": 8080, et changez 8080 par un autre port (1337 par exemple)

Puis allez à la ligne:
"userDirname": "dodoc2", et changez « dodoc2 » par un autre nom de dossier (dodoc-nouveau par exemple)

Quittez ensuite nano (Ctrl + X), qui vous demandera si vous souhaitez enregistrer vos modifications (touche Y puis entrée) ou non (touche N puis entrée).

À noter : le champ qui gère le port s’appelle desired_port car ce n’est qu’une préférence : si un autre logiciel occupe déjà ce port, alors do•doc prendra le prochain disponible (par exemple, le 8071 si le 8070 est occupé) et démarrera quand même.

Étape 3 : exécuter do•doc

Vous devriez pouvoir lancer do•doc avec la commande :

  • npm run debug

Un certain nombre de lignes apparaissent, elles permettent de « débugger » do•doc (pratique pour le développement). Si tout se passe bien la dernière ligne devrait être Server up and running. Go to https://localhost:1337. (ou le nom du port désiré)

Ouvrez votre navigateur web et connectez-vous à votre serveur en tapant https://XX.XX.XX.XX:1337/
(dans mon cas de figure, avec un serveur sur l’IP 51.75.69.173 ça donne https://51.75.69.173:1337/).

Un avertissement vous signale qu’il n’y a pas de certificat (ce qui est obligatoire pour une connexion en HTTPS), mais vous pouvez le contourner et continuer vers le site. Et voilà !

Pour stopper do•doc, appuyez sur les touches Ctrl + C du clavier. À noter que si vous fermez le terminal, cela arrêtera aussi do•doc. La prochaine étape est d’installer un gestionnaire de processus qui s’assurera que do•doc reste lancé même si nous fermons le terminal et la connexion par SSH.

Installer et utiliser pm2

PM2 est un gestionnaire d’application (process manager) écrit entièrement en Node.js. Le code est open source et disponible sur Github et il existe une documentation complète. Il va nous permettre de garantir que notre application continue d’être exécutée après avoir fermé la connexion SSH (plus d’informations sur openclassrooms).

Pour installer pm2 sur votre serveur (il n’est pas nécessaire de le réinstaller si vous l’avez déjà fait pour la première instance de do•doc) :

  • npm install pm2 -g

Vous pouvez ensuite créer un processus faisant tourner do•doc en lançant la commande suivante (remplacer dodoc-nouveau par le nom souhaité, le nom du processus doit être différent du processus du premier do•doc) :

  • pm2 start npm --name "dodoc-nouveau" -- run start

(la commande start tout à la fin de la ligne démarre do•doc en mode normal et pas en mode debug)

Quelques commandes de base avec pm2 :

  • arrêter le processus nommé dodoc-nouveau : pm2 stop dodoc-nouveau
  • le relancer : pm2 restart dodoc-nouveau
  • le supprimer de la liste : pm2 delete dodoc-nouveau
  • lister les processus dans pm2 : pm2 ls
  • lancer automatiquement pm2 au redémarrage du serveur : pm2 startup
  • enregistrer la liste des processus et leur état, pour qu’ils soient restaurés au redémarrage du serveur : pm2 save

En règle général c’est une bonne idée à cette étape de réaliser un pm2 save puis pm2 startup, histoire que pm2 relance dodoc tout seul si le serveur redémarre (suite à un plantage ou à une grosse mise à jour par exemple).

1 « J'aime »

Comment on adapte cette petite étape ?
#faire-pointer-le-domaine-sur-le-bon-dodoc

Il faut refaire la même chose : modifier l’entrée A d’un domaine, puis ajouter les lignes qu’il faut dans le fichier /etc/nginx/sites-available/default, et lancer Certbot.