0

Mise à jour de Rocket Chat en 1.1.1

 

La dernière version de Rocket Chat (1.1.1) est disponible depuis quelques jours et nécessitent un peu de paramétrage pour migrer d’une version antérieure à celle actuelle.

Pour ceux qui n’ont pas entendu parlé de Rocket Chat, il s’agit d’une application de messagerie instantanée Open Source et auto-hébergeable. Vous avez donc le contrôle total sur les données qui y transitent et cela permet de s’affranchir de solutions propriétaires et non-respectueuses de la vie privée de ses utilisateurs.

Techniquement, c’est écrit en NodeJS et repose sur une base NoSQL MongoDB.

Pour commencer

Version actuelle et système d’exploitation

J’utilise la version actuelle 0.71 sortis en Novembre 2018.

Au niveau serveur, je suis sur une Debian 9.9.

Changements avec la nouvelle version

Oplog

La version 1.0 de Rocket Chat nécessite maintenant l’activation du mode oplog de MongoDB. Le paramètre oplog est une collection spécifique à MongoDB permettant de garder un enregistrement continue de toutes les opérations faites sur la base de données. La définition d’un « replica set » sur MongoDB est nécessaire pour son fonctionnement.

Replica

Pour les versions antérieurs, l’activation du mode réplica était facultatif mais conseillé pour une mise en production de l’application, même si il n’y avait qu’un seul node au sein de ce réplica. Avec la nécessité d’avoir la partie oplog d’activée, c’est désormais obligatoire et Rocket Chat ne démarras pas sans la configuration de ce réplica.

Migration

Arrêt des services

On commence par arrêter l’applicatif Rocket Chat et la partie SQL pour ne plus avoir d’écriture :

$ systemctl stop rocketchat.service && systemctl stop mongod

MongoDB

On modifie la configuration pour définir notre réplica :

$ echo -e "replication:\n  replSetName: \"rs0\"" | sudo tee -a /etc/mongod.conf

On démarre ensuite MongoDB pour prendre en charge la nouvelle configuration :

$ systemctl start mongod

On utilise ensuite le mongoshell pour initier le réplica :

$ mongo
> rs.initiate()

On doit se retrouver avec une sortie similaire à cela :

On saisie ensuite la touche entrée pour passer en PRIMAIRE.

On vérifie le bon fonctionnement du réplica en affichant son statut :

> rs.status()
"ok" : 1,

Rocket Chat

Applicatif

Il est nécessaire de récupérer les derniers composants de l’application pour faire la mise à jour.

On sauvegarde l’applicatif au cas où un problème survienne !

$ tar zcvf backup_rocket.tar.gz /opt/Rocket.Chat/ && rm -Rf Rocket.Chat

Pour le reste, c’est du classique, issu de la documentation officielle.

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz && tar -xzf /tmp/rocket.chat.tgz -C /tmp && cd /tmp/bundle/programs/server && npm install && sudo mv /tmp/bundle /opt/Rocket.Chat && sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

Systemd

Il convient de modifier l’unit Systemd pour démarrer l’application avec une nouvelle “variable d’environnement”

$ vim /lib/systemd/system/rocketchat.service

Et on y rajoute la valeur suivante dans la partie “Environment

MONGO_OPLOG_URL=mongodb://<hôte>:<port>/local?replSet=<replica_name>

Ce qui dans mon cas, avec une configuration basique (emplacement et port d’écoute par défaut et une BDD sur le même hôte) donne :

[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs0 ROOT_URL=http://rocket.xyz:3000/ PORT=3000
[Install]
WantedBy=multi-user.target

On reload le daemon systemd pour prendre en charge la nouvelle configuration de l’unit :

$ systemctl daemon-reload

On redémarre ensuite l’applicatif Rocket Chat :

$ systemctl restart rocketchat.service

On vérifie ensuite le bon fonctionnement de l’unit :

$ journalctl -u rocketchat.service | tail -n 15

➔ System ➔ startup
 ➔ |              SERVER RUNNING              |
 ➔ +------------------------------------------+
 ➔ |                                          |
 ➔ |  Rocket.Chat Version: 1.1.1              |
 ➔ |       NodeJS Version: 8.11.4 - x64       |
 ➔ |      MongoDB Version: 4.0.10             |
 ➔ |       MongoDB Engine: wiredTiger         |
 ➔ |             Platform: linux              |
 ➔ |         Process Port: 3000               |
 ➔ |             Site URL: http://rocket.xyz  |
 ➔ |     ReplicaSet OpLog: Enabled            |
 ➔ |          Commit Hash: 80341ed12f         |
 ➔ |        Commit Branch: HEAD               |
 ➔ |                                          |
 ➔ +------------------------------------------+

C’est tout bon !

Un tour sur l’interface web nous confirme tout cela 🙂

Supras

Supras

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *