Se stai cercando una piattaforma di chat self-hosted open source, Rocketchat può essere l'opzione migliore. Rocket chat può essere utilizzato come alternativa a diversi canali di comunicazione come slack, mattermost ecc. Rocket chat include diverse funzionalità come chat di gruppo, videoconferenze e puoi integrare la chat dal vivo con altre piattaforme. In questo articolo impareremo come configurare un sistema Rocketchat self-hosted con crittografiamo i certificati SSL.
Prerequisiti
- Server Ubuntu fresco
- Accesso root o account sudo privilegiato
- Un nome di dominio puntato con l'IP del server
- Connessione Internet per scaricare applicazioni
Installa i pacchetti e le dipendenze richiesti
Prima di installare i pacchetti, aggiorna il sistema Ubuntu usando il seguente comando
$ sudo apt-get update -y
Una volta completato l'aggiornamento del sistema, configura apt per installare i pacchetti MongoDB utilizzando il comando seguente.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Uscita :
Per configurare Node.js in modo che possa essere installato utilizzando apt gestore pacchetti esegui il comando seguente.
$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Uscita:
Ora installa gli strumenti di compilazione Nodejs, MongoDB e graphicsmagick :
$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
Uscita :
Ora installa eredita e n e la versione del nodo richiesta da Rocketchat.
$ sudo npm install -g inherits n && sudo n 12.18.4
Per verificare la versione di Nodejs installata, esegui il comando seguente.
$ node --version
Uscita:
v12.18.4
Installa Rocketchat
Abbiamo già installato le dipendenze richieste. Ora, in questo passaggio, scaricheremo l'applicazione Rocket Chat e la installeremo su Ubuntu 20.04.
Scarica l'ultima versione di Rocketchat usando il seguente comando.
$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Uscita :
Estrarre l'applicazione scaricata. Puoi scegliere la tua directory preferita in cui archiviare il file estratto. In questo esempio, ho estratto il file in /tmp directory.
$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp
Ora installa Rocketchat. In questo articolo /opt directory viene utilizzata per l'installazione. Puoi preferire qualsiasi directory.
$ cd /tmp/bundle/programs/server && npm install
Uscita:
$ sudo mv /tmp/bundle /opt/Rocket.Chat
Configura il servizio Rocket.Chat
Crea un utente Rocket.Chat, imposta l'autorizzazione corretta per la directory dell'applicazione Rocket.Chat e crea il servizio Rocket.Chat.
$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Per creare rocketchat.service, esegui il seguente comando sul tuo terminale
cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service [Unit] Description=The Rocket.Chat server After=network.target remote-fs.target nss-lookup.target nginx.service mongod.service [Service] ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js StandardOutput=syslog StandardError=syslog SyslogIdentifier=rocketchat User=rocketchat Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=http://localhost:3000/ PORT=3000 [Install] WantedBy=multi-user.target EOF
Esempio:
Ora è necessario configurare un motore di archiviazione e una replica MongoDB. Successivamente, abilita e avvia mongoDB come:
$ sudo sed -i "s/^# engine:/ engine: mmapv1/" /etc/mongod.conf
$ sudo sed -i "s/^#replication:/replication:\n replSetName: rs01/" /etc/mongod.conf
$ sudo systemctl enable mongod && sudo systemctl start mongod
$ mongo --eval "printjson(rs.initiate())"
Uscita :
Ora avvia e abilita il servizio Rocket.Chat usando il seguente comando:
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Verifica lo stato del servizio Rocket.Chat”
$ sudo systemctl status rocketchat
Uscita:
Installazione di Nginx e configurazione del proxy inverso
Per configurare nginx reverse proxy per Rocket.Chat, installa nginx usando il seguente comando
$ sudo apt install nginx
Crea la configurazione dell'host virtuale nginx per rocketchat.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
Ora incolla il seguente contenuto e salva il file
upstream backend { server 127.0.0.1:3000; } server { listen 80; server_name your_rocketchat_domain_name; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; location / { proxy_pass http://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; } }
Controlla il file di configurazione di nginx
$ sudo nginx -t
Riavvia e abilita il servizio nginx
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
Ora accedi al tuo dominio Rocketchat come
http://tuo_dominio_rocketchat
Otterrai la procedura guidata di configurazione web, la completerai e inizierai a utilizzare Rocket.Chat
Nginx come proxy inverso SSL
Abbiamo configurato Rocket.Chat con solo proxy inverso HTTP. Per configurare nginx come proxy inverso SSL avrai bisogno di file di certificato. Modifica il file vhost di nginx e incolla i seguenti contenuti.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
upstream backend { server 127.0.0.1:3000; } server { listen 443 ssl; Server_name your_rocketchat_domain_name; client_max_body_size 200M; access_log /var/log/nginx/rocket.chat.access.log; error_log /var/log/nginx/rocket.chat.error.log; ssl_certificate /etc/nginx/certificate.crt; ssl_certificate_key /etc/nginx/private.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://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-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
Nota :
Genera o acquista un certificato SSL e punta la directory del file del tuo certificato nel seguente parametro di configurazione.
ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]
Controlla il file di configurazione di nginx
sudo nginx -t
Riavvia il servizio nginx
sudo systemctl restart nginx
Accesso a Rocketchat
Una volta configurato il proxy inverso, puoi accedere a Rocket.Chat utilizzando l'URL come:
https://you_rocket_chat_domain
Otterrai la procedura guidata di configurazione web di Rocket.Chat. Completa la configurazione e inizia a utilizzare la tua Rocket.Chat auto-ospitata.
Conclusione
In questo articolo, abbiamo imparato come installare e configurare la chat Rocket self-hosted su Ubuntu 20.04. Inoltre, ho spiegato come installare e configurare nginx per il proxy inverso con crittografiamo i certificati SSL.