Rocket.Chat est une plateforme de communication d'équipe complète, une alternative Slack auto-hébergée. Il est construit avec Meteor et offre diverses fonctionnalités, notamment le chat du service d'assistance, la vidéoconférence, le partage de fichiers, les messages vocaux, l'API, etc.
Dans ce tutoriel, nous allons vous montrer comment installer et déployer Rocket.Chat sur un serveur CentOS 7 avec Nginx comme proxy inverse SSL.
Prérequis #
Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :
- Serveur CentOS 7, selon la configuration système officielle de Rocket.Chat, vous avez besoin d'au moins 1 G de RAM.
- Vous êtes connecté en tant qu'utilisateur avec des privilèges sudo.
- Vous avez un nom de domaine pointant vers l'adresse IP de votre serveur. Dans cet article, nous utiliserons
example.com
. - Vous avez installé Nginx, sinon vous pouvez l'installer en suivant ce tutoriel.
- Un certificat SSL. Vous pouvez en générer un gratuitement auprès de Let's Encrypt ou en acheter un auprès d'un autre fournisseur.
Installer les dépendances #
Installez les packages suivants qui sont nécessaires pour construire le npm
requis module :
sudo yum install epel-release curl GraphicsMagick gcc-c++
Ensuite, installez Node.js
et npm
en tapant :
sudo yum install -y nodejs npm
Au moment de la rédaction de cet article, la version Node.js recommandée pour Rocket.Chat est Node.js v8.11.3.
Exécutez les commandes suivantes pour installer le n
et la version recommandée de Node.js :
sudo npm install -g inherits n
sudo n 8.11.3
MongoDB est une base de données orientée document NoSQL et est utilisée par Rocket.Chat comme magasin de données. Rocket.Chat recommande MongoDB version 3.6.
Nous allons installer MongoDBusing yum
depuis les dépôts MongoDB officiels.
Ouvrez l'éditeur de votre choix et créez le fichier de référentiel suivant :
sudo nano /etc/yum.repos.d/mongodb-org.repo
Collez le contenu suivant dans le fichier :
/etc/yum.repos.d/mongodb-org.repo[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
Enregistrez le fichier et fermez votre éditeur de texte.
Pour installer MongoDB, exécutez la commande suivante :
sudo yum install mongodb-org
Une fois l'installation terminée, activez et démarrez le service MongoDB :
sudo systemctl start mongod
sudo systemctl enable mongod
Créer un nouveau numéro d'utilisateur système
Créez un nouvel utilisateur et un groupe, qui exécutera notre instance Rocket.Chat. Pour plus de simplicité nous nommerons l'utilisateur rocket
:
sudo useradd -m -U -r -d /opt/rocket rocket
Ajouter le nginx
utilisateur au nouveau groupe d'utilisateurs et modifiez le /opt/rocket
les permissions du répertoire pour que le Nginx puisse y accéder :
sudo usermod -a -G rocket nginx
sudo chmod 750 /opt/rocket
Installation de Rocket.Chat #
Passer à l'utilisateurrocket
en tapant :
sudo su - rocket
Téléchargez la dernière version stable de Rocket.Chat avec curl :
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Une fois le téléchargement terminé, extrayez l'archive et renommez le répertoire en Rocket.Chat
:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Passez au Rocket.Chat/programs/server
répertoire et installez tous les npm
requis forfaits :
cd Rocket.Chat/programs/server
npm install
Avant de créer une unité systemd et de configurer un proxy inverse avec Nginxit, il est judicieux de tester si l'installation a réussi.
Pour ce faire, commencez par définir les variables d'environnement requises :
export PORT=3000
export ROOT_URL=http://example.com:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Ensuite, revenez dans le Rocket.Chat
répertoire et démarrez le Rocket.Chat
serveur en exécutant les commandes suivantes :
cd ../../
node main.js
S'il n'y a pas d'erreurs, vous devriez voir le résultat suivant :
➔ +---------------------------------------------+
➔ | SERVER RUNNING |
➔ +---------------------------------------------+
➔ | |
➔ | Rocket.Chat Version: 0.71.1 |
➔ | NodeJS Version: 8.11.3 - x64 |
➔ | Platform: linux |
➔ | Process Port: 3000 |
➔ | Site URL: http://0.0.0.0:3000/ |
➔ | ReplicaSet OpLog: Disabled |
➔ | Commit Hash: e73dc78ffd |
➔ | Commit Branch: HEAD |
➔ | |
➔ +---------------------------------------------+
À ce stade, Rocket.Chat est installé sur votre machine CentOS 7. Arrêtez le serveur Rocket.Chat avec CTRL+C
et passez aux étapes suivantes.
Créer un numéro d'unité Systemd
Pour exécuter Rocket.Chat en tant que service, créez un rocketchat.service
fichier d'unité dans le /etc/systemd/system/
répertoire :
sudo nano /etc/systemd/system/rocketchat.service
Collez le contenu suivant dans le fichier :
/etc/systemd/system/rocketchat.service[Unit]
Description=Rocket.Chat server
After=network.target nss-lookup.target mongod.target
[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocket
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Enregistrez et fermez le fichier.
Avertissez systemd qu'un nouveau fichier d'unité a été créé et démarrez le service Rocket.Chat en exécutant :
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Vérifiez l'état du service avec la commande suivante :
sudo systemctl status rocketchat
Le résultat devrait ressembler à ceci :
● rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
Main PID: 32356 (node)
CGroup: /system.slice/rocketchat.service
└─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
S'il n'y a pas d'erreurs, vous pouvez activer le démarrage automatique du service Rocket.Chat au démarrage :
sudo systemctl enable rocketchat
Configurer un proxy inverse avec Nginx #
Si vous avez suivi nos guides d'installation de Nginx sur CentOS 7 et de sécurisation de Nginx avec Let's Encrypt sur CentOS 7, Nginx devrait déjà être installé et configuré avec un certificat SSL.
Nous devons maintenant créer un nouveau bloc de serveur pour notre installation Rocket.Chat :
sudo nano /etc/nginx/conf.d/example.com.conf
Collez le contenu suivant dans le fichier :
/etc/nginx/conf.d/example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
location / {
proxy_pass http://rocketchat_backend/;
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;
}
}
Rechargez le service Nginx pour que les modifications prennent effet :
sudo systemctl reload nginx
Configuration de Rocket.Chat #
Ouvrez votre navigateur et tapez :http://chat.example.com
.
En supposant que l'installation est réussie, l'assistant de configuration de Rocket.Chat vous sera présenté, qui vous guidera dans la configuration de votre premier utilisateur administrateur, la configuration de votre organisation et l'enregistrement de votre serveur pour recevoir des notifications push gratuites et plus encore.
La première section de l'assistant de configuration initiale vous demandera de configurer votre utilisateur administrateur :
Une fois que vous avez terminé d'entrer les informations d'administration, cliquez sur Continue
et à l'étape suivante, entrez les informations de votre organisation :
La troisième section de l'assistant de configuration initiale vous demandera d'entrer les informations du serveur :
À l'étape suivante, il vous sera demandé si vous souhaitez utiliser les passerelles et proxys préconfigurés de Rocket.Chat. La sélection de cette option vous donnera accès au marché des applications Rocket.Chat et la plupart des autres fonctionnalités telles que les notifications push fonctionneront. de la boîte.
Faites votre choix, cliquez sur Continue
, et vous serez redirigé vers la page suivante indiquant que votre espace de travail est prêt à être utilisé :
Cliquez sur le Go to your workspace
et vous serez redirigé vers le tableau de bord Rocket.Chat connecté en tant qu'utilisateur administrateur.