Rocket.Chat na Ubuntu 20.4.

https://architechpro.com/rocketchat/

Rocket.Chat je Open Source chat. Je to náhrada za Microsoft Teams a má veľmi podobné funkcie. Aby to bola plnohodnotná náhrada za Microsoft Teams, tak je vhodné použiť Jitsi Meet.

Jitsi Meet je aplikácia, určená na Video konferencie, ktorá umožňuje okrem video chatu aj samostatný chat. Svojím spôsobom to je nadstavbová aplikácia, ktorú je možné implementovať do rozličných ďalších aplikácií. Osobne som sa s Jitsi Meet stretol v Nextcloude. Okrem toho, že NextCloud je dátové uložiško je možné cez to aj chatovať a aj robiť videochat bodobne, ako v rocket.chat. Aby bolo možné implementovať Jitsi Meet do rocket.Chat, musíte vlastniť doménu.

Ako nainštalovať a nakonfigurovať rocketChat spolu s Jitsi Meet sa znázorním v tomto článku nižšie.

Okrem chatovania je možné:

  • Vytvárať skupiny prípadne triedy
  • Robiť Video Konferencie (Jitsi Meet)
  • Nahrávať konferenciu (je potrebné mať konto na Dropbox)
  • Robiť stream
  • Zdieľať obrazovku s ostatnými účastníkmi

Užívatelia sa nemusia prihlasovať cez webové rozhranie, je možné si stiahnuť aplikáciu a nainštalovať si ju na:

  • Windows
  • Linux
  • Android
  • iOS
  • MAC OS

Inštalácia

Urobte update

sudo apt-get -y update

Nainštalujte požadované baličky

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

Pridajte mondo repozitáre

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Nakonfigurujte node.js

sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -

Nainštalujte node.js mongoDB

sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick

Môžete overiť verziu príkazom

node --version
sudo npm install -g inherits n

Vytvorte symbolický link

sudo ln -s /usr/bin/node /usr/local/bin/node

Stiahnite najnovšiu verziu rocketchat

curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz

Rozbaľte najnovšiu verziu

tar -xzf /tmp/rocket.chat.tgz -C /tmp

Nainštalujte Rocket.Chat do adresára podľa vášho výberu. V tejto príručke ho nainštalujeme do adresára /opt

cd /tmp/bundle/programs/server && npm install
cd ~/
sudo mv /tmp/bundle /opt/Rocket.Chat

Vytvorte rocketchat system user

cat << EOF |sudo tee -a /etc/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?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Nakonfigurujte ukladací mechanizmus a replikáciu pre MongoDB a potom spustite službu MongoDB.

sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf

Nastavte, aby sa služba spúšťala priamo so spustením OS

sudo systemctl daemon-reload
sudo systemctl enable mongod && sudo systemctl restart mongod

Skontrolujte, či služba beží

systemctl status mongod

Môžete urobiť test

mongo --eval "printjson(rs.initiate())"

Spustite službu

sudo systemctl enable rocketchat && sudo systemctl start rocketchat

Nainštalujte Nginx

sudo apt install nginx

Je možné, že Vás pri inštalácií nepustí ďalej pokračovať. Pretože sa spustí process, ktorý sa sám nezastaví. Ak budete mať problém s procesom tak ho musíte zabiť. Na to použite príkaz

Kill -9 14130

Znovu zopakujte inštaláciu nginx

Otestujte, či je to v poriadku príkazom

sudo nginx  -t

Povoľte službu, aby sa spúšťala priamo so spustením OS

sudo systemctl restart nginx
sudo systemctl enable nginx

Generovanie certifikátu

SSL certifikát, alebo v mojom prípade Let’s encrypt je dôležitý z pohľadu bezpečnosti, nech komunikácia nejde cez http (80), ale cez https (443)

  • Komunikácia bude šifrovaná
  • a je dokonca certifikát vyžadovaný, keď chcete implementovať Video chat do Rocket.Chat v opačnom prípade to žiaľ fungovať nebude.

Na to aby ste mohli implementovať certifikát musíte mať vo vlastníctve doménu, na IP adresu, nieje možné vygenerovať certifikát. Je potrebné urobiť tzv. A záznam

Nainštalujte certboot

sudo apt install certbot python3-certbot-nginx

Choďte do conf.d a vytvorte súbor

cd /etc/nginx/conf.d
nano rocketchat.conf
upstream rocket_backend {
  server 127.0.0.1:3000;
}

server {
    server_name rocketchat.ibasterisk.sk;
    access_log /var/log/nginx/rocketchat-access.log;
    error_log /var/log/nginx/rocketchat-error.log;

    location / {
        proxy_pass http://rocket_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;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/rocketchat.ibasterisk.sk/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/rocketchat.ibasterisk.sk/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}


server {
    if ($host = rocketchat.ibasterisk.sk) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name rocketchat.ibasterisk.sk;
    return 404; # managed by Certbot
}

Príkazom sudo nginx -t skontrolujte, či je syntax správny

sudo nginx  -t

Keď test prešiel test v poriadku, môžete reštartovať nginx

sudo systemctl restart nginx

Úvodné okno

naspäť