Guide des technologies

Installer Rocket.Chat sur Ubuntu 16.04 avec Nginx

6 min read Administration système Mis à jour 21 Oct 2025
Installer Rocket.Chat sur Ubuntu 16.04 avec Nginx
Installer Rocket.Chat sur Ubuntu 16.04 avec Nginx

Important : adaptez ROOT_URL, MONGO_URL et server_name à votre domaine/IP avant de lancer en production.

Intentions de l’article

  • Installer et configurer Rocket.Chat sur Ubuntu 16.04
  • Configurer MongoDB avec un ReplicaSet local
  • Utiliser Nginx comme reverse proxy HTTPS

Prérequis

  • Ubuntu 16.04 LTS installé
  • Accès root ou privilèges sudo
  • Nom de domaine (recommandé) ou adresse IP publique
  • Ports ouverts : 80 (HTTP), 443 (HTTPS) et 3000 (interne)

Aperçu des composants (une ligne chacun)

  • Rocket.Chat : solution de chat open source pour équipes.
  • MongoDB ReplicaSet : configuration de réplication pour l’oplog nécessaire à Rocket.Chat.
  • Nginx : serveur web et reverse proxy HTTPS.

Étape 1 — Installer les dépendances de Rocket.Chat

Connectez-vous au serveur via SSH et passez root :

ssh [email protected]
sudo su

Mettez à jour les dépôts Ubuntu :

apt-get update

Installez les paquets requis :

apt-get install curl graphicsmagick build-essential

Note : graphicsmagick est utilisé pour le traitement d’images (avatars, miniatures). Si vous avez des besoins spécifiques, vous pouvez remplacer par ImageMagick.

Étape 2 — Installer MongoDB

Rocket.Chat nécessite MongoDB. Ici nous installons MongoDB 3.2 depuis le dépôt officiel.

Ajoutez la clé du dépôt MongoDB :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Ajoutez le dépôt MongoDB (la commande utilise la sortie de lsb_release pour la distribution) :

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Mettez à jour et installez MongoDB :

apt-get update
apt-get install mongodb-org

Ajoutez MongoDB au démarrage et lancez-le :

systemctl enable mongod
systemctl start mongod

MongoDB écoute par défaut sur le port 27017.

Étape 3 — Configurer le ReplicaSet MongoDB

Rocket.Chat utilise l’oplog d’un ReplicaSet pour assurer la propagation des messages et la scalabilité. Même pour un déploiement simple, il faut activer la configuration de ReplicaSet.

Éditez le fichier de configuration mongod.conf :

vim /etc/mongod.conf

Repérez la section réseau et commentez la ligne bindIp pour autoriser d’autres IPs (ou laissez si vous êtes sur une VM isolée) :

net:
    port: 27017
    #bindIp: 127.0.0.1

Ajoutez la section replication et définissez un nom de ReplicaSet (ici rs0) et une taille d’oplog minimale :

#replication:
replication:
   oplogSizeMB: 1
   replSetName: rs0

Enregistrez et quittez, puis redémarrez MongoDB :

systemctl restart mongod

Initialisez le ReplicaSet depuis le shell MongoDB :

export LC_ALL=C
mongo
rs.initiate()

Exemple de résultat attendu :

{
  "info2" : "no configuration specified. Using a default configuration for the set",
  "me" : "nyanko-sensei:27017",
  "ok" : 1
}

Assurez-vous que la clé “ok” vaut 1. Sinon, vérifiez les journaux systemd et /var/log/mongodb.

Capture d'écran : configuration d'un ReplicaSet MongoDB

Étape 4 — Installer npm et Node.js

Rocket.Chat (version utilisée ici) nécessite Node.js 4.5. Nous installons nodejs et npm depuis les dépôts Ubuntu, puis utilisons le paquet n pour changer de version.

Installez nodejs et npm :

apt-get install nodejs npm

Installez n globalement avec npm :

npm install -g n

Puis téléchargez et activez Node.js 4.5 :

sudo n 4.5

Vérifiez les versions :

node --version
npm -v

Capture d'écran : gestion de la version Node.js avec n

Remarque : selon la version de Rocket.Chat que vous installez, une autre version de Node.js peut être requise. Consultez la documentation officielle pour la correspondance versions Node.js / Rocket.Chat.

Étape 5 — Installer le serveur Rocket.Chat

Nous installons Rocket.Chat dans /var/www/.

Téléchargez la dernière version et extrayez-la :

curl -L https://rocket.chat/releases/latest/download -o rocket.chat.tgz
tar -xzvf rocket.chat.tgz

Créez le répertoire et placez la bundle :

mkdir -p /var/www/
mv bundle Rocket.Chat
mv Rocket.Chat /var/www/

Entrez dans le dossier et installez les dépendances côté serveur :

cd /var/www/Rocket.Chat/
cd programs/server/
npm install

cd ../../
export ROOT_URL=http://192.168.1.110:3000/
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js

Notes importantes :

  • Remplacez 192.168.1.110 par l’IP ou le nom d’hôte de votre serveur.
  • En production, utilisez un gestionnaire de processus (systemd, pm2, forever) plutôt qu’un node main.js en premier plan.

Capture d'écran : installation du serveur Rocket.Chat sur Ubuntu

Ouvrez votre navigateur sur http://192.168.1.110:3000 pour vérifier que Rocket.Chat tourne.

Capture d'écran : Rocket.Chat installé et opérationnel

Étape 6 — Installer et configurer Nginx comme reverse proxy

Pour sécuriser et accélérer l’accès, placez Rocket.Chat derrière Nginx en HTTPS.

Installez Nginx :

apt-get install nginx

Créez un répertoire pour les certificats SSL :

mkdir -p /etc/nginx/ssl/
cd /etc/nginx/ssl/

Générez un certificat auto-signé (en production, utilisez Let’s Encrypt ou un certificat valide) :

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/rocket-chat.crt -keyout /etc/nginx/ssl/rocket-chat.key
chmod 400 rocket-chat.key

Créez un fichier de virtual host Nginx :

cd /etc/nginx/sites-available/
vim rocket-chat

Collez la configuration suivante (adaptez server_name et proxy_pass à votre setup) :

# Upstreams
upstream backend {
    server 127.0.0.1:3000;
}

# Redirect Options
server {
  listen 80;
  server_name rocket-chat.co;
  # enforce https
  return 301 https://$server_name$request_uri;
}

# HTTPS Server
server {
    listen 443;
    server_name rocket-chat.co;

    error_log /var/log/nginx/rocketchat.access.log;

    ssl on;
    ssl_certificate /etc/nginx/ssl/rocket-chat.crt;
    ssl_certificate_key /etc/nginx/ssl/rocket-chat.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE

    location / {
        proxy_pass http://192.168.1.110: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-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Important : remplacez rocket-chat.co par votre nom de domaine et ajustez proxy_pass si Rocket.Chat n’écoute pas sur la même machine.

Activez le site et testez Nginx :

ln -s /etc/nginx/sites-available/rocket-chat /etc/nginx/sites-enabled/rocket-chat
nginx -t

S’il n’y a pas d’erreurs, redémarrez Nginx :

systemctl restart nginx

Étape 7 — Tester Rocket.Chat via Nginx et HTTPS

Mettez à jour les variables d’environnement pour utiliser l’URL publique (HTTPS) puis relancez Rocket.Chat :

cd /var/www/Rocket.Chat/
export ROOT_URL=https://rocket-chat.co
export MONGO_URL=mongodb://nyanko-sensei:27017/rocketchat?replicaSet=rs0
export PORT=3000
node main.js

Ouvrez votre domaine (https://rocket-chat.co) : vous devriez être redirigé en HTTPS et voir l’écran d’enregistrement.

Capture d'écran : Rocket.Chat avec le serveur Nginx

Créez le compte administrateur en cliquant sur “Register a new account” (ou “S’enregistrer”) :

Capture d'écran : Rocket.Chat sur SSL - page d'enregistrement

Remplissez nom, email et mot de passe puis cliquez sur REGISTER A NEW ACCOUNT.

Capture d'écran : création d'un compte administrateur

Confirmez l’utilisation du SITE-URL mis à jour :

Capture d'écran : confirmation du SITE-URL

Validez le nom d’utilisateur :

Capture d'écran : enregistrement du nom d'utilisateur

Vous arriverez sur le tableau de bord Rocket.Chat où vous pouvez créer des canaux et inviter votre équipe.

Capture d'écran : tableau de bord Rocket.Chat

Après mise à jour des variables d’environnement et redémarrage, vérifiez les logs et l’accès HTTPS :

Capture d'écran : mise à jour des variables d'environnement

Bonnes pratiques et options pour la production

  • Utiliser un gestionnaire de processus (systemd, pm2) pour garder Rocket.Chat actif au redémarrage.
  • Remplacer le certificat auto-signé par Let’s Encrypt pour éviter les avertissements de navigateur.
  • Restreindre l’accès à MongoDB (firewall, utilisateurs authentifiés, TLS si possible).
  • Configurer la rotation des logs pour Nginx et Rocket.Chat.

Contre-exemples et limites

  • Si vous utilisez une version récente de Rocket.Chat, Node.js 4.5 peut être obsolète. Vérifiez la compatibilité versionnelle sur la documentation officielle.
  • Déploiement sur des environnements conteneurisés (Docker, Kubernetes) suit une méthodologie différente et peut nécessiter des images officielles.
  • Pour les grandes installations, préférez un ReplicaSet MongoDB réel avec plusieurs nœuds et stockage dédié.

Approches alternatives

  • Utiliser Docker Compose avec l’image officielle Rocket.Chat pour un déploiement plus reproductible.
  • Utiliser un PaaS ou un service managé si vous ne souhaitez pas gérer l’infrastructure.

Checklist par rôle

Administrateur système :

  • Firewall configuré (ports 80, 443, 3000 restreint localement)
  • Certificat HTTPS valide
  • Process manager configuré pour Rocket.Chat

Développeur/Opérations :

  • Backup MongoDB automatisé
  • Monitoring (CPU, mémoire, latence MongoDB)
  • Tests de charge sur le service Web

Sécurité :

  • Accès SSH restreint
  • Utilisateurs MongoDB avec mot de passe
  • TLS pour MongoDB (si exposition réseau)

Mini-méthodologie (résumé rapide)

  1. Préparer l’OS et installer dépendances.
  2. Installer MongoDB et activer ReplicaSet.
  3. Installer Node.js (version compatible) et Rocket.Chat.
  4. Configurer Nginx comme reverse proxy HTTPS.
  5. Démarrer Rocket.Chat via un gestionnaire de processus.
  6. Vérifier l’accès et sécuriser (certificats, firewall, backups).

Exigences d’acceptation

  • Rocket.Chat accessible via HTTPS sur le domaine configuré.
  • Création d’un compte administrateur réussie.
  • Logs Nginx sans erreurs critiques au démarrage.
  • MongoDB ReplicaSet initialisé avec état HEALTHY.

Glossaire (1 ligne chacun)

  • ReplicaSet : ensemble de nœuds MongoDB permettant la réplication et l’oplog.
  • ROOT_URL : variable d’environnement indiquant l’URL publique du service.
  • Nginx : serveur web utilisé ici comme reverse proxy SSL.

Résumé

  • Ce guide montre l’installation manuelle de Rocket.Chat sur Ubuntu 16.04 avec MongoDB ReplicaSet et Nginx en HTTPS. Adaptez les variables d’environnement et remplacez les certificats auto-signés en production. Pour la haute disponibilité et la sécurité, déployez un ReplicaSet complet et activez TLS sur MongoDB.

Référence

Auteur
Édition

Matériaux similaires

Installer et utiliser Podman sur Debian 11
Conteneurs

Installer et utiliser Podman sur Debian 11

Guide pratique : apt-pinning sur Debian
Administration système

Guide pratique : apt-pinning sur Debian

OptiScaler : activer FSR 4 dans n'importe quel jeu
Jeux PC

OptiScaler : activer FSR 4 dans n'importe quel jeu

Dansguardian + Squid NTLM sur Debian Etch
réseau

Dansguardian + Squid NTLM sur Debian Etch

Corriger l'erreur d'installation Android sur SD
Android, Dépannage

Corriger l'erreur d'installation Android sur SD

KNetAttach et remote:/ — Dossiers réseau KDE
Tutoriel

KNetAttach et remote:/ — Dossiers réseau KDE