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 suMettez à jour les dépôts Ubuntu :
apt-get updateInstallez les paquets requis :
apt-get install curl graphicsmagick build-essentialNote : 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 EA312927Ajoutez 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.listMettez à jour et installez MongoDB :
apt-get update
apt-get install mongodb-orgAjoutez MongoDB au démarrage et lancez-le :
systemctl enable mongod
systemctl start mongodMongoDB é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.confRepé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.1Ajoutez la section replication et définissez un nom de ReplicaSet (ici rs0) et une taille d’oplog minimale :
#replication:
replication:
oplogSizeMB: 1
replSetName: rs0Enregistrez et quittez, puis redémarrez MongoDB :
systemctl restart mongodInitialisez 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.

É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 npmInstallez n globalement avec npm :
npm install -g nPuis téléchargez et activez Node.js 4.5 :
sudo n 4.5Vérifiez les versions :
node --version
npm -v
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.tgzCré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.jsNotes 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.

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

É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 nginxCré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.keyCréez un fichier de virtual host Nginx :
cd /etc/nginx/sites-available/
vim rocket-chatCollez 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 -tS’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.jsOuvrez votre domaine (https://rocket-chat.co) : vous devriez être redirigé en HTTPS et voir l’écran d’enregistrement.

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

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

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

Validez le nom d’utilisateur :

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

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

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)
- Préparer l’OS et installer dépendances.
- Installer MongoDB et activer ReplicaSet.
- Installer Node.js (version compatible) et Rocket.Chat.
- Configurer Nginx comme reverse proxy HTTPS.
- Démarrer Rocket.Chat via un gestionnaire de processus.
- 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
Matériaux similaires
Installer et utiliser Podman sur Debian 11
Guide pratique : apt-pinning sur Debian
OptiScaler : activer FSR 4 dans n'importe quel jeu
Dansguardian + Squid NTLM sur Debian Etch
Corriger l'erreur d'installation Android sur SD