Rocket.Chat è una piattaforma di comunicazione di squadra completa, un'alternativa Slack self-hosted. È realizzato con Meteor e offre varie funzionalità tra cui chat di helpdesk, videoconferenze, condivisione di file, messaggi vocali, API e altro ancora.
In questo tutorial, ti mostreremo come installare e distribuire Rocket.Chat su un server CentOS 7 con Nginx come proxy inverso SSL.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Server CentOS 7, secondo i requisiti di sistema ufficiali di Rocket.Chat è necessario almeno 1G di RAM.
- Sei loggato come utente con privilegi sudo.
- Hai un nome di dominio che punta all'indirizzo IP del tuo server. In questo articolo utilizzeremo
example.com
. - Hai installato Nginx, in caso contrario puoi installarlo seguendo questo tutorial.
- Un certificato SSL. Puoi generarne uno gratuito da Let's Encrypt o acquistarne uno da un altro provider.
Installa dipendenze #
Installa i seguenti pacchetti che sono necessari per compilare il npm
richiesto moduli:
sudo yum install epel-release curl GraphicsMagick gcc-c++
Quindi, installa Node.js
e npm
digitando:
sudo yum install -y nodejs npm
Al momento della stesura di questo articolo, la versione consigliata di Node.js per Rocket.Chat è Node.js v8.11.3.
Emetti i seguenti comandi per installare n
utility e la versione consigliata di Node.js:
sudo npm install -g inherits n
sudo n 8.11.3
MongoDB è un database NoSQL orientato ai documenti ed è utilizzato da Rocket.Chat come archivio dati. Rocket.Chat consiglia MongoDB versione 3.6.
Installeremo MongoDB usando yum
dai repository MongoDB ufficiali.
Apri il tuo editor preferito e crea il seguente file di repository:
sudo nano /etc/yum.repos.d/mongodb-org.repo
Incolla il seguente contenuto nel file:
/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
Salva il file e chiudi il tuo editor di testo.
Per installare MongoDB, esegui il seguente comando:
sudo yum install mongodb-org
Una volta completata l'installazione, abilita e avvia il servizio MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Crea nuovo utente di sistema #
Crea un nuovo utente e gruppo, che eseguirà la nostra istanza Rocket.Chat. Per semplicità chiameremo l'utente rocket
:
sudo useradd -m -U -r -d /opt/rocket rocket
Aggiungi nginx
utente nel nuovo gruppo utenti e cambia il /opt/rocket
permessi di directory in modo che Nginx possa accedervi:
sudo usermod -a -G rocket nginx
sudo chmod 750 /opt/rocket
Installazione di Rocket.Chat #
Passa all'utenterocket
digitando:
sudo su - rocket
Scarica l'ultima versione stabile di Rocket.Chat con curl:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Una volta completato il download, estrai l'archivio e rinomina la directory in Rocket.Chat
:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Passa a Rocket.Chat/programs/server
directory e installa tutti i npm
richiesti pacchetti:
cd Rocket.Chat/programs/server
npm install
Prima di creare un'unità systemd e configurare un proxy inverso con Nginxit è una buona idea verificare se l'installazione è andata a buon fine.
Per fare ciò, inizia impostando le variabili di ambiente richieste:
export PORT=3000
export ROOT_URL=http://example.com:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Quindi, torna a Rocket.Chat
directory e avvia la Rocket.Chat
server eseguendo i seguenti comandi:
cd ../../
node main.js
Se non ci sono errori dovresti vedere il seguente output:
➔ +---------------------------------------------+
➔ | 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 |
➔ | |
➔ +---------------------------------------------+
A questo punto, Rocket.Chat è installato sul tuo computer CentOS 7. Arresta il server Rocket.Chat con CTRL+C
e continua con i passaggi successivi.
Crea un'unità di sistema #
Per eseguire Rocket.Chat come servizio, crea un rocketchat.service
file unit nel /etc/systemd/system/
directory:
sudo nano /etc/systemd/system/rocketchat.service
Incolla il seguente contenuto nel file:
/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
Salva e chiudi il file.
Notifica a systemd che è stato creato un nuovo file di unità e avvia il servizio Rocket.Chat eseguendo:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Verifica lo stato del servizio con il seguente comando:
sudo systemctl status rocketchat
L'output dovrebbe essere simile a questo:
● 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
Se non ci sono errori puoi abilitare l'avvio automatico del servizio Rocket.Chat all'avvio:
sudo systemctl enable rocketchat
Configura un proxy inverso con Nginx #
Se hai seguito il nostro come installare Nginx su CentOS 7 e come proteggere Nginx con Let's Encrypt su CentOS 7guides dovresti già avere Nginx installato e configurato con certificato SSL.
Ora dobbiamo creare un nuovo blocco server per la nostra installazione di Rocket.Chat:
sudo nano /etc/nginx/conf.d/example.com.conf
Incolla il seguente contenuto nel file:
/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;
}
}
Ricarica il servizio Nginx per rendere effettive le modifiche:
sudo systemctl reload nginx
Configurazione di Rocket.Chat #
Apri il browser e digita:http://chat.example.com
.
Supponendo che l'installazione abbia esito positivo, ti verrà presentata la procedura guidata di configurazione di Rocket.Chat che ti guiderà attraverso la configurazione del tuo primo utente amministratore, la configurazione della tua organizzazione e la registrazione del tuo server per ricevere notifiche push gratuite e altro ancora.
La prima sezione della procedura guidata di configurazione iniziale ti chiederà di configurare il tuo utente amministratore:
Dopo aver inserito le informazioni sull'amministratore, fai clic su Continue
e nel passaggio successivo inserisci le informazioni sulla tua organizzazione:
La terza sezione della procedura guidata di configurazione iniziale ti chiederà di inserire le informazioni sul server:
Nel passaggio successivo ti verrà chiesto se desideri utilizzare i gateway e i proxy preconfigurati di Rocket.Chat. Selezionando questa opzione avrai accesso al mercato delle app Rocket.Chat e la maggior parte delle altre funzionalità come le notifiche push funzioneranno. della scatola.
Fai la tua scelta, clicca su Continue
pulsante e verrai reindirizzato alla pagina seguente indicando che il tuo spazio di lavoro è pronto per l'uso:
Fai clic su Go to your workspace
pulsante e verrai reindirizzato alla dashboard di Rocket.Chat effettuato l'accesso come utente amministratore.