Guide de déploiement

Héberger Rocket.Chat sur votre propre VPS

Déployer sur un VPS Cloud →

Self-hosting9 min de lecture

Héberger Rocket.Chat sur votre propre VPS

Rocket.Chat est une plateforme de communication open source très complète : chat, appels audio/vidéo, omnicanal et fédération Matrix. Auto-hébergée sur un VPS, elle devient un hub de communication entièrement sous votre contrôle — sans frais par siège, sans plafond de messages, sans données chez un tiers. Ce guide vous accompagne de l'installation initiale avec Docker et MongoDB jusqu'à la mise en production : configuration SSL, ouverture des canaux WhatsApp et e-mail, administration post-déploiement, stratégie de mise à jour, surveillance et SSO.

Pourquoi self-héberger Rocket.Chat sur un VPS

Rocket.Chat va bien au-delà d'une simple messagerie d'équipe : il propose un module omnicanal natif (WhatsApp Business, e-mail, widgets de chat sur site web), des appels audio et vidéo, et une fédération via le protocole Matrix permettant de communiquer avec d'autres serveurs. Pour une agence ou une PME qui veut centraliser à la fois la communication interne et le support client, l'auto-hébergement sur VPS évite de multiplier les abonnements et garde l'ensemble des échanges — y compris les conversations clients — sur une infrastructure que vous maîtrisez. Rocket.Chat s'appuie sur MongoDB, ce qui le rend un peu plus gourmand que Mattermost, mais ouvre la voie à de riches intégrations et à une marketplace d'extensions.

Bénéfices concrets d'un Rocket.Chat auto-hébergé

  • Module omnicanal intégré pour traiter support web, e-mail et messageries depuis une seule interface.
  • Appels audio/vidéo et partage d'écran sans dépendre d'un service tiers.
  • Fédération Matrix pour interconnecter votre serveur avec d'autres organisations.
  • Marketplace d'applications et large catalogue d'intégrations (webhooks, bots).
  • Personnalisation poussée du thème et de l'image de marque de l'instance.
  • Données de conversation et fichiers conservés sur votre propre VPS.
  • SSO (LDAP, SAML, OAuth) inclus gratuitement — sans surcoût contrairement à Slack ou Teams.

Prérequis matériels et logiciels

Rocket.Chat et MongoDB sont relativement exigeants en mémoire. Pour une équipe jusqu'à 50 utilisateurs, prévoyez un VPS de 2 à 4 vCPU et au moins 4 Go de RAM ; visez 8 Go pour une instance active avec omnicanal et appels vidéo. MongoDB doit impérativement tourner en mode replica set (même à un seul nœud) car Rocket.Chat utilise l'oplog pour le temps réel. Comptez 30 à 50 Go de SSD. Il vous faut Docker et Compose, un sous-domaine chat.votredomaine.com avec enregistrement A, et un reverse proxy gérant les WebSockets.

Déployer Rocket.Chat avec Docker et SSL

01

Provisionner le VPS

Installez Docker et le plugin Compose, créez /opt/rocketchat. Vérifiez que la RAM disponible est suffisante : MongoDB et Rocket.Chat peuvent saturer un VPS 2 Go sous charge.

02

Configurer MongoDB en replica set

Déclarez un service mongodb (image bitnami/mongodb ou mongo) en activant le replica set : c'est obligatoire pour l'oplog. Sans cette étape, Rocket.Chat démarre mais le temps réel et certaines fonctions échouent. Persistez les données dans un volume dédié.

03

Définir le service Rocket.Chat

Ajoutez le service rocketchat (image registry.rocket.chat/rocketchat/rocket.chat) avec les variables MONGO_URL, MONGO_OPLOG_URL et ROOT_URL en HTTPS. Faites-le dépendre de MongoDB et exposez le port 3000 en interne uniquement.

04

Démarrer et vérifier

Lancez docker compose up -d puis docker compose logs -f rocketchat. Le premier démarrage migre le schéma MongoDB et peut prendre une à deux minutes. Attendez le message indiquant que le serveur est prêt sur le port 3000.

05

Mettre en place reverse proxy et SSL

Avec Caddy : chat.votredomaine.com { reverse_proxy localhost:3000 }. Avec Nginx, proxifiez vers 127.0.0.1:3000 en transmettant les en-têtes Upgrade/Connection pour le WebSocket, puis générez le certificat via certbot.

06

Fermer l'assistant d'installation

Laissé à lui-même, Rocket.Chat affiche au premier chargement un assistant qui crée le compte administrateur — n'importe quel visiteur arrivé avant vous peut le revendiquer. Passez ADMIN_USERNAME, ADMIN_PASS, ADMIN_EMAIL et OVERWRITE_SETTING_Show_Setup_Wizard=completed en variables d'environnement dès le premier boot : l'administrateur existe avant que l'URL ne réponde.

07

Se connecter la première fois

Sur une installation depuis le catalogue ServOrbit, le compte administrateur est déjà créé avec un mot de passe aléatoire affiché dans votre espace client. Ouvrez https://chat.votredomaine.com, connectez-vous, changez le mot de passe, désactivez l'inscription publique si l'instance est privée, et configurez le SMTP pour les invitations.

Administration post-déploiement : salons, rôles et webhooks

Une fois connecté en tant qu'administrateur, rendez-vous dans Administration > Rooms pour créer vos salons (canal public, groupe privé, canal de discussion). Définissez une convention de nommage dès le départ : par exemple #equipe-dev, #support-clients, #annonces-generales. Assignez les rôles via Administration > Roles : les rôles Admin, Moderator, User et Guest sont préconfigurés ; vous pouvez en créer de personnalisés avec des granularités fines (lire mais pas écrire, voir mais pas inviter, modérer mais pas administrer). Pour les grandes équipes, utilisez les groupes LDAP pour affecter automatiquement les rôles à la connexion. Les webhooks entrants permettent d'envoyer des notifications depuis des outils tiers (GitLab, Grafana, votre CRM) directement dans un salon : Administration > Integrations > New Integration > Incoming WebHook. Rocket.Chat génère une URL unique ; l'appelant envoie un POST JSON avec au moins le champ text. Un alias et un avatar optionnels permettent d'identifier la source du message d'un coup d'oeil. Vous pouvez aussi définir des scripts pour filtrer ou transformer les messages entrants avant affichage, et configurer des déclencheurs sortants (Outgoing WebHook) pour notifier un service tiers à chaque message posté dans un salon donné.

Connecter l'omnicanal : WhatsApp, widget web et e-mail

Le module omnicanal (Omnichannel) de Rocket.Chat unifie les canaux externes dans une file d'attente de tickets gérée par vos agents. Activez-le dans Administration > Omnichannel > Activation. Pour le widget web, allez dans Omnichannel > Livechat > Installation : Rocket.Chat génère un snippet JavaScript à coller sur votre site ; vous pouvez personnaliser sa couleur, son titre et les champs pré-remplis. Pour l'e-mail, configurez une adresse IMAP dans Omnichannel > Email Inbox : chaque e-mail entrant crée automatiquement un ticket assigné à votre département de support. Pour WhatsApp Business API, vous avez besoin d'un fournisseur officiel (BSP) comme 360dialog ou Twilio : dans l'App Marketplace, installez l'app WhatsApp et renseignez vos identifiants BSP. Les conversations WhatsApp arrivent alors dans la même file que le chat web et l'e-mail, avec historique unifié. Les agents basculent d'un canal à l'autre sans changer d'outil — c'est l'avantage principal d'un omnicanal natif.

SSO inclus gratuitement en self-hosted. Rocket.Chat prend en charge LDAP/Active Directory, SAML 2.0 et OAuth (Google, GitHub, GitLab, etc.) sans surcoût d'abonnement. Sur Slack, le SSO SAML est réservé aux plans Business+ ; sur Rocket.Chat auto-hébergé, activez-le dans Administration > Settings > LDAP ou > SAML. C'est un différenciateur majeur pour les entreprises qui utilisent déjà un annuaire Active Directory ou un IdP comme Keycloak.

Mettre à jour Rocket.Chat avec Docker (rolling update)

01

Sauvegarder MongoDB avant toute mise à jour

Exécutez mongodump depuis le conteneur : docker exec <mongodb_container> mongodump --out /data/backup/$(date +%Y%m%d). Copiez le dump hors du serveur (scp ou rsync vers un stockage distant). Ne sautez jamais cette étape : certaines migrations de schéma Rocket.Chat sont irréversibles.

02

Mettre à jour l'image Docker

Dans votre docker-compose.yml, remplacez le tag de l'image (exemple : rocket.chat:7.4 vers rocket.chat:7.5) ou passez à latest si vous acceptez les mises à jour automatiques. Puis exécutez docker compose pull && docker compose up -d. Rocket.Chat s'arrête, la nouvelle image se lance et migre la base. Surveillez les logs : docker compose logs -f rocketchat.

03

Vérifier la migration et revenir en arrière si nécessaire

Après redémarrage, connectez-vous et vérifiez dans Administration > Info que la version affichée correspond bien à la cible. Si la migration échoue, stoppez le conteneur, restaurez le dump MongoDB avec mongorestore, et rétablissez l'ancienne image. Rocket.Chat ne propose pas de rollback automatique — le dump est votre seul filet.

Dépannage : les erreurs réellement rencontrées

Replica set non initialisé : c'est l'erreur la plus courante. Sans rs.initiate(), l'oplog est indisponible, le chat en temps réel est cassé et des fonctions d'administration échouent silencieusement. Si vous utilisez l'image Bitnami, passez MONGODB_REPLICA_SET_MODE=primary et MONGODB_REPLICA_SET_KEY dès le premier boot. WebSocket coupé : si les messages arrivent en polling HTTP plutôt qu'en WebSocket, vérifiez que votre reverse proxy transmet bien les en-têtes Upgrade et Connection. Avec Nginx, ajoutez proxy_http_version 1.1 et les directives proxy_set_header correspondantes. Assistant accessible publiquement : si vous n'avez pas passé OVERWRITE_SETTING_Show_Setup_Wizard=completed, n'importe qui peut créer le compte admin. RAM épuisée par MongoDB : WiredTiger peut consommer jusqu'à 50 % de la RAM disponible par défaut. Sur un VPS contraint, limitez avec --wiredTigerCacheSizeGB 0.5. Erreur de certificat SSL en interne : vérifiez que ROOT_URL contient bien votre domaine en HTTPS sans slash final ; un mauvais ROOT_URL casse les redirections OAuth et les e-mails de notification.

Surveillance et monitoring de votre instance

Pour détecter rapidement une panne, mettez en place trois couches de surveillance. Couche conteneur : docker stats --no-stream donne CPU, RAM et I/O réseau en temps réel. Configurez une alerte si un conteneur s'arrête avec docker events --filter event=die dans un script systemd ou supervisord ; une simple boucle qui relance automatiquement les conteneurs en échec peut aussi suffire pour les cas non critiques. Couche applicative : Rocket.Chat expose des métriques Prometheus sur /metrics (activez-les dans Administration > Settings > General > Enable Prometheus). Couplez à Grafana pour des tableaux de bord sur les utilisateurs connectés, le nombre de messages par minute, la latence de réponse WebSocket et la taille de la base MongoDB. Programmez des alertes sur les seuils critiques : consommation RAM de MongoDB supérieure à 80 %, queue de messages en attente, ou certificat SSL expirant dans moins de 14 jours. Couche infrastructure : un check HTTP externe (UptimeRobot, Better Uptime ou votre propre Blackbox Exporter) sur https://chat.votredomaine.com/ vous alerte en cas d'indisponibilité globale, y compris coupure réseau ou extinction du VPS. Pensez aussi à vérifier régulièrement la taille des volumes Docker : la base MongoDB et les fichiers téléversés par les utilisateurs peuvent croître rapidement sur une instance très active.

Erreur replica set MongoDB : si les logs affichent MongoServerError: not primary and secondaryOk=false, votre connexion pointe vers un nœud secondaire ou le replica set n'est pas encore élu. Vérifiez avec docker exec -it <mongodb> mongosh que l'état du membre est PRIMARY via rs.status(). Si le replica set n'est pas initialisé, exécutez rs.initiate() manuellement une seule fois.

Rocket.Chat face à Mattermost

CritèreRocket.ChatMattermost
Base de donnéesMongoDB (replica set obligatoire)PostgreSQL
Empreinte mémoirePlus gourmand (MongoDB)Plus sobre à charge égale
Omnicanal / support clientModule natif intégréVia intégrations tierces
Appels audio/vidéoIntégrésVia plugins / Calls (édition payante)
FédérationMatrixLimitée
SSO (LDAP / SAML)Gratuit en self-hostedPayant au-delà de la licence Pro
Marketplace d'appsRiche et nativePlugins, catalogue plus restreint
Public cibleCommunication + support client unifiésÉquipes techniques et ChatOps
Mise en placePlus de paramétrage (replica set)Plus directe avec PostgreSQL

Hébergez Rocket.Chat sur un VPS Cloud ServOrbit

Avec un VPS Cloud à ressources dédiées et Docker prêt à l'emploi, déployez Rocket.Chat et MongoDB en quelques minutes. IPv4 dédiée, réseau 1 Gbit/s, snapshots automatiques inclus.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.