Pokud hledáte open-source samoobslužnou chatovací platformu, Rocketchat může být tou nejlepší volbou. Rocket chat lze použít jako alternativu k různým komunikačním kanálům, jako je slack, matmost atd. Rocket chat přichází s různými funkcemi, jako jsou skupinové chaty, videokonference, a živý chat můžete integrovat s jinými platformami. V tomto článku se naučíme, jak nastavit systém Rocketchat s vlastním hostitelem pomocí let’s encrypt SSL certifikátů.
Předpoklady
- Nový server ubuntu
- Přístup uživatele root nebo privilegovaný účet sudo
- Název domény označený IP adresou serveru
- Připojení k internetu pro stahování aplikací
Nainstalujte požadované balíčky a závislosti
Před instalací balíčků aktualizujte systém Ubuntu pomocí následujícího příkazu
$ sudo apt-get update -y
Po dokončení aktualizace systému nakonfigurujte apt na instalaci balíčků MongoDB pomocí následujícího příkazu.
$ 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
Výstup:
Chcete-li nakonfigurovat Node.js, aby bylo možné instalovat pomocí apt správce balíčků spusťte následující příkaz.
$ sudo apt-get -y update && sudo apt-get install -y curl && curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
Výstup:
Nyní nainstalujte sestavení nástroje Nodejs, MongoDB a graphicsmagick:
$ sudo apt-get install -y build-essential mongodb-org nodejs graphicsmagick
Výstup:
Nyní nainstalujte dědičnosti a n a verzi uzlu požadovanou Rocketchatem.
$ sudo npm install -g inherits n && sudo n 12.18.4
Chcete-li zkontrolovat nainstalovanou verzi Nodejs, spusťte následující příkaz.
$ node --version
Výstup:
v12.18.4
Nainstalujte Rocketchat
Již jsme nainstalovali požadované závislosti. Nyní v tomto kroku stáhneme aplikaci Rocket Chat a nainstalujeme ji na Ubuntu 20.04.
Stáhněte si nejnovější verzi Rocketchat pomocí následujícího příkazu.
$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp
Výstup:
Rozbalte staženou aplikaci. Můžete si vybrat preferovaný adresář pro uložení extrahovaného souboru. V tomto příkladu jsem extrahoval soubor v /tmp adresář.
$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp
Nyní nainstalujte Rocketchat. V tomto článku /opt pro instalaci se používá adresář. Můžete preferovat jakýkoli adresář.
$ cd /tmp/bundle/programs/server && npm install
Výstup:
$ sudo mv /tmp/bundle /opt/Rocket.Chat
Nakonfigurujte službu Rocket.Chat
Vytvořte uživatele rocketchat, nastavte správné oprávnění k adresáři aplikace Rocket.Chat a vytvořte službu Rocket.Chat.
$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat
Chcete-li vytvořit rocketchat.service, spusťte na svém terminálu následující příkaz
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
Příklad:
Nyní musíme nastavit modul úložiště MongoDB a replikaci. Poté povolte a spusťte mongoDB jako:
$ 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())"
Výstup:
Nyní spusťte a povolte službu Rocket.Chat pomocí následujícího příkazu:
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
Ověřte stav služby Rocket.Chat”
$ sudo systemctl status rocketchat
Výstup:
Instalace Nginx a Reverzní konfigurace proxy
Chcete-li nakonfigurovat reverzní proxy nginx pro Rocket.Chat, nainstalujte nginx pomocí následujícího příkazu
$ sudo apt install nginx
Vytvořte konfiguraci virtuálního hostitele nginx pro rocketchat.
$ sudo nano /etc/nginx/conf.d/rocketchat.conf
Nyní vložte následující obsah a uložte soubor
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; } }
Zkontrolujte konfigurační soubor nginx
$ sudo nginx -t
Restartujte a povolte službu nginx
$ sudo systemctl restart nginx
$ sudo systemctl enable nginx
Nyní přistupujte ke své doméně rocketchat jako
http://vaše_doména_rocketchat
Získáte průvodce nastavením webu, dokončete jej a začnete používat Rocket.Chat
Nginx jako SSL reverzní proxy
Rocket.Chat jsme nakonfigurovali pouze s HTTP reverzním proxy. Chcete-li nakonfigurovat nginx jako reverzní proxy SSL, budete potřebovat soubory certifikátů. Upravte soubor nginx vhost a vložte následující obsah.
$ 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; }
Poznámka:
Vygenerujte nebo zakupte certifikát ssl a nasměrujte adresář souboru certifikátu do následujícího konfiguračního parametru.
ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]
Zkontrolujte konfigurační soubor nginx
sudo nginx -t
Restartujte službu nginx
sudo systemctl restart nginx
Přístup k Rocketchatu
Jakmile je reverzní proxy nakonfigurován, můžete přistupovat ke svému Rocket.Chat pomocí adresy URL jako:
https://you_rocket_chat_domain
Získáte průvodce nastavením webu Rocket.Chat. Dokončete nastavení a začněte používat svůj vlastní hostovaný Rocket.Chat.
Závěr
V tomto článku jsme se naučili, jak nainstalovat a nakonfigurovat vlastní hostovaný chat Rocket na Ubuntu 20.04. Také jsem probral, jak nainstalovat a nakonfigurovat nginx pro reverzní proxy pomocí šifrování SSL certifikátů.