Rocket.Chat je open-source týmová komunikační platforma, alternativa Slack s vlastním hostitelem. Je vyvinut pomocí rámce Meteor a poskytuje různé funkce včetně chatu na helpdesku, sdílení souborů, videokonferencí, hlasových zpráv, API a dalších.
Rocket.Chat je perfektní řešení pro společnosti a komunity, které chtějí hostovat svůj vlastní chatovací systém.
V tomto tutoriálu vám ukážeme, jak nasadit Rocket.Chat na server Ubuntu 18.04 a nakonfigurovat Nginx jako SSL reverzní proxy.
Předpoklady #
Než budete pokračovat v tomto kurzu, ujistěte se, že máte následující předpoklady.
- Server Ubuntu 18.04. Podle oficiálních systémových požadavků Rocket.Chat potřebujete alespoň 1G RAM.
- Název domény odkazující na IP adresu vašeho serveru. Použijeme
chat.example.com
. - Nginx byl nainstalován podle tohoto návodu.
- Máte nainstalovaný certifikát SSL pro vaši doménu. Podle tohoto návodu si můžete vygenerovat bezplatný certifikát Let’s Encrypt SSL.
Instalace Node.js #
Začněte aktualizací seznamu systémových balíčků:
sudo apt update
Nainstalujte Node.js, npm a všechny ostatní závislosti potřebné pro vytváření balíčků npm ze zdroje:
sudo apt install nodejs npm build-essential curl software-properties-common graphicsmagick
V době psaní tohoto článku je doporučená verze Node.js pro Rocket.Chat Node.js v8.11.3.
Budeme používat n
, balíček npm, který nám umožňuje interaktivně spravovat verze Node.js.
Chcete-li nainstalovat n
, zadejte následující příkazy a doporučená verze Node.js:
sudo npm install -g inherits n
sudo n 8.11.3
Instalace MongoDB #
MongoDB je NoSQL databáze orientovaná na dokumenty a Rocket.Chat ji používá jako úložiště dat.
MongoDB nainstalujeme z oficiálních úložišť MongoDB.
Importujte veřejný klíč MongoDB a povolte oficiální úložiště MongoDB pomocí následujícího příkazu:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Jakmile je repozitář apt povolen, aktualizujte seznam balíčků a nainstalujte MongoDB zadáním:
sudo apt update
sudo apt install mongodb-org
Po dokončení instalace povolte a spusťte službu MongoDB:
sudo systemctl start mongod
sudo systemctl enable mongod
Vytvořit nového systémového uživatele #
Chcete-li vytvořit nového uživatele a skupinu s názvem rocket
, která spustí instanci Rocket.Chat, zadejte:
sudo useradd -m -U -r -d /opt/rocket rocket
Přidejte www-data
uživatele do nové skupiny uživatelů a změňte /opt/rocket
oprávnění k adresáři, aby Nginx mohl přistupovat k instalaci Rocket.Chat:
sudo usermod -a -G rocket www-data
sudo chmod 750 /opt/rocket
Instalace Rocket.Chat #
Přejděte na uživatelerocket
:
sudo su - rocket
Následující příkazy předpokládají, že aktuálně pracujete jako uživatel rocket
.
Stáhněte si nejnovější stabilní verzi Rocket.Chat s curl:
curl -L https://releases.rocket.chat/latest/download -o rocket.chat.tgz
Jakmile je stahování dokončeno, rozbalte archiv a přejmenujte adresář na Rocket.Chat
:
tar zxf rocket.chat.tgz
mv bundle Rocket.Chat
Změňte se na Rocket.Chat/programs/server
adresář a nainstalujte všechny požadované balíčky npm:
cd Rocket.Chat/programs/server
npm install
Abychom otestovali naši instalaci před vytvořením systémové jednotky a nastavením reverzního proxy pomocí Nginxwe, nastavíme požadované proměnné prostředí a spustíme server Rocket.Chat
export PORT=3000
export ROOT_URL=http://0.0.0.0:3000/
export MONGO_URL=mongodb://localhost:27017/rocketchat
Změňte se zpět na Rocket.Chat
a spusťte Rocket.Chat
serveru zadáním následujících příkazů:
cd ../../
node main.js
Pokud nejsou žádné chyby, měli byste vidět následující výstup:
➔ +---------------------------------------------+
➔ | 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 |
➔ | |
➔ +---------------------------------------------+
Zastavte server Rocket.Chat pomocí CTRL+C
.
Přepněte zpět na uživatele sudo zadáním exit
a pokračujte dalšími kroky.
Vytvořit jednotku Systemd #
Pro spuštění Rocket.Chat jako služby vytvoříme rocketchat.service
soubor jednotky v /etc/systemd/system/
adresář.
sudo nano /etc/systemd/system/rocketchat.service
Vložte následující obsah:
/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=https://chat.example.com PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
[Install]
WantedBy=multi-user.target
Informujte systemd, že jsme vytvořili nový soubor jednotky a spusťte službu Rocket.Chat provedením:
sudo systemctl daemon-reload
sudo systemctl start rocketchat
Zkontrolujte stav služby zadáním:
sudo systemctl status rocketchat
* rocketchat.service - Rocket.Chat server
Loaded: loaded (/etc/systemd/system/rocketchat.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2018-11-07 14:36:24 PST; 5s ago
Main PID: 12693 (node)
Tasks: 10 (limit: 2319)
CGroup: /system.slice/rocketchat.service
`-12693 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js
Nakonec povolte automatické spouštění služby Rocket.Chat při spouštění pomocí následujícího příkazu:
sudo systemctl enable rocketchat
Nastavit reverzní proxy s Nginx #
Pokud jste postupovali podle našich pokynů, jak nainstalovat Nginx na Ubuntu 18.04 a jak zabezpečit Nginx pomocí příruček Let’s Encrypt na Ubuntu 18.04, měli byste již mít Nginx nainstalovaný a nakonfigurovaný s certifikátem SSL.
Nyní musíme vytvořit nový blok serveru Nginx pro instalaci Rocket.Chat.
Otevřete textový editor a vytvořte následující soubor:
sudo nano /etc/nginx/sites-available/chat.example.com.conf
/etc/nginx/sites-available/chat.example.com.confupstream rocketchat_backend {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name chat.example.com;
include snippets/letsencrypt.conf;
return 301 https://chat.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name chat.example.com;
ssl_certificate /etc/letsencrypt/live/chat.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/chat.example.com/chain.pem;
include snippets/ssl.conf;
access_log /var/log/nginx/chat.example.com-access.log;
error_log /var/log/nginx/chat.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;
}
}
Povolte nový blok serveru vytvořením symbolického odkazu ze souboru na adresář s povolenými servery:
sudo ln -s /etc/nginx/sites-available/chat.example.com.conf /etc/nginx/sites-enabled/
Znovu načtěte službu Nginx, aby se změny projevily:
sudo systemctl reload nginx
Konfigurace Rocket.Chat #
Otevřete prohlížeč a zadejte:http://chat.example.com
.
Za předpokladu, že instalace bude úspěšná, zobrazí se vám průvodce nastavením Rocket.Chat, který vás provede nastavením prvního administrátora, konfigurací vaší organizace a registrací vašeho serveru, abyste mohli dostávat bezplatná oznámení push a další.
V první části průvodce počátečním nastavením budete požádáni, abyste nastavili uživatele správce:
Po zadání údajů o správci klikněte na Continue
a v dalším kroku zadejte informace o vaší organizaci:
Třetí část průvodce počátečním nastavením vás vyzve k zadání informací o serveru:
V dalším kroku budete dotázáni, zda chcete používat předkonfigurované brány a proxy serveru Rocket.Chat. Výběrem této možnosti získáte přístup na tržiště aplikací Rocket.Chat a další funkce, jako jsou upozornění push, budou fungovat ihned po vybalení. .
Vyberte si, klikněte na Continue
a budete přesměrováni na následující stránku, která označuje, že váš pracovní prostor je připraven k použití:
Klikněte na Go to your workspace
a budete přesměrováni na řídicí panel Rocket.Chat přihlášený jako uživatel admin.