Rocket.Chat
Updated 4 Août 2020
Introduction
Rocket.Chat est un logiciel de messagerie libre qui prend en charge les discussions de groupe, l'échange de données, la vidéoconférence, les bots et bien plus encore.
Préparer un conteneur LXC
Nous conseillons d'installer Rocket.Chat dans un conteneur dédié, à configurer conformément au manuel.
Installer et configurer MongoDB
Installez MongoDB :
emerge -a dev-db/mongodb
Configurez MongoDB pour qu'il puisse prendre en charge Rocket.Chat :
storage: dbPath: "/var/lib/mongodb" engine: mmapv1 replication: replSetName: rs01
Maintenant lancez MongoDB :
/etc/init.d/mongodb start
Puis ajoutez-le au démarrage automatique.
rc-update add mongodb
Initialiser la base de données
mongo --eval "printjson(rs.initiate())"
Obtenir le certificat Let's Encrypt
Procurez-vous le certificat de domaine Nginx pour rocketchat.example.org, comme expliqué dans le manuel.
Installer et configurer Nginx
Installez et configurez le serveur Web Nginx en tant que mandataire inverse, comme expliqué dans le manuel. Ajoutez le paramètre suivant pour rocketchat.example.org :
server { listen 443 ssl; server_name rocketchat.example.org; include ssl.conf; ssl_certificate /etc/nginx/ssl/rocketchat.example.org/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/rocketchat.example.org/privkey.pem; client_max_body_size 200M; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Installer et configurer Rocket.Chat
Commencez par installer le logiciel complémentaire :
emerge -a dev-python/nodeenv media-gfx/graphicsmagick
Créez un utilisateur système nommé rocketchat :
useradd -m -d /var/calculate/www/rocketchat -s /bin/bash rocketchat
Installez Node.js dans le répertoire utilisateur :
su - rocketchat
nodeenv --node=12.18.0 .node-12
ln -sfT .node-12 .node-live
source .node-live/bin/activate
echo 'source ~/.node-live/bin/activate' >> ~/.bash_profile
Mettre en place le serveur
Utiliser le serveur de validation
Téléchargez et décompressez Rocket.Chat :
curl -L https://releases.rocket.chat/latest/download -o Rocket.Chat.tar.gz
tar xf Rocket.Chat.tar.gz
Installez toutes les bibliothèques nécessaires pour NodeJS, puis abandonnez en tant que rocketchat :
cd ~/bundle/programs/server
npm install && exit
Créer un serveur à partir du code source
Installez la plateforme Meteor pour l'utilisateur "web" :
curl https://install.meteor.com/ | sh
echo 'PATH="${PATH}:${HOME}/.meteor"' >>.bash_profile
PATH="${PATH}:${HOME}/.meteor"
Récupérez le code source de votre futur serveur Rocket.Chat :
git clone https://github.com/RocketChat/Rocket.Chat.git Rocket.Chat.Source
Compilez l'archive dans le répertoire source :
cd Rocket.Chat.Source
meteor npm install
meteor build --directory ~
Installez toutes les bibliothèques nécessaires pour NodeJS, puis abandonnez en tant que rocketchat :
cd ~/bundle/programs/server
npm install && exit
Lancer Rocket.Chat
Le répertoire Rocket.Chat obtenu précédemment doit devenir le répertoire courant :
mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}
Créez un script OpenRC pour contrôler Rocket.Chat en indiquant https://rocketchat.example.org comme ROOT_URL :
#!/sbin/openrc-run # Copyright 2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 name="Rocketchat daemon" description="" pidfile=/run/rocketchat.pid command_user=rocketchat output_log=/var/log/rocketchat.log error_log=/var/log/rocketchat.log directory=/var/calculate/www/rocketchat/Rocket.Chat ROOT_URL="https://rocketchat.example.org" start_stop_daemon_args="-e ROOT_URL=$ROOT_URL -e MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 -e PORT=3000 -e MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 -e PATH=/var/calculate/www/rocketchat/.node-live/lib/node_modules/.bin:/var/calculate/www/rocketchat/.node-live/bin:\"$PATH\"" command="/var/calculate/www/rocketchat/.node-live/bin/node" command_args="main.js" command_background=true depend() { need nginx mongodb } start_pre() { checkpath -f -o rocketchat -m 0600 /var/log/rocketchat.log }
Définissez les droits d'accès :
chmod 755 /etc/init.d/rocketchat
Lancez le démon Rocket.Chat :
/etc/init.d/rocketchat start
Ajoutez Rocket.Chat à la liste de démarrage automatique :
rc-update add rocketchat
Finaliser la configuration de Rocket.Chat à la page https://rocketchat.example.org, sur votre navigateur Web.
Mise à jour de Rocket.Chat
Identifiez-vous en tant que rocketchat :
su - rocketchat
Obtenez le répertoire bundle pour Rocket.Chat. Plusieurs façons d'y parvenir sont décrites ci-dessus dans la rubrique Installation du serveur.
Arrêtez l'ancien serveur Rocket.Chat :
/etc/init.d/rocketchat stop
Remplacez l'ancien serveur par le nouveau :
mv /var/calculate/www/rocketchat/Rocket.Chat{,.$(date +%Y%m%d%H%M)}
mv /var/calculate/www/rocketchat/{bundle,Rocket.Chat}
Démarrez le nouveau serveur Rocket.Chat :
/etc/init.d/rocketchat start