如果您正在尋找開源自託管聊天平台,Rocketcatat 適合您。 Rocket Chat 可以替代 Slack 和 Mattermost 等各種溝通渠道。 Rocket Chat 具有群聊、視頻會議等多種功能,讓您可以將實時聊天與其他平台集成。在本文中,您將學習如何使用 Let’s Encrypt SSL 證書設置自託管 Rocketcat 系統。

先決條件

  1. 新鮮的 ubuntu 服務器
  2. root 訪問權限或 sudo 特權帳戶
  3. 指向服務器IP的域名
  4. 互聯網連接以下載應用程序

安裝所需的包和依賴項

在安裝軟件包之前使用以下命令更新您的 Ubuntu 系統

$ sudo apt-get update -y

系統更新完成後,使用以下命令配置 apt 安裝 MongoDB 包:

$ 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

輸出:

安裝和配置 Node.js 以供使用 簡單的 包管理器運行以下命令:

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

輸出:

接下來,安裝構建工具 Nodejs、MongoDB、graphicsmagick。

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

輸出:

安裝圖形魔術師

然後安裝繼承和n,以及Rocketetchat需要的節點版本。

$ sudo npm install -g inherits n && sudo n 12.18.4

安裝 npm

要檢查安裝的 Nodejs 版本,請運行以下命令:

$ node --version

輸出:

v12.18.4

安裝 RocketChat

您已安裝所需的依賴項。在此步驟中,您將在 Ubuntu 20.04 上下載並安裝 RocketChat 應用程序。

使用以下命令下載最新版本的 Rocketcat:

$ curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
tar -xzf /tmp/rocket.chat.tgz -C /tmp

輸出:

下載 Rocket.chat

解壓縮下載的應用程序。您可以選擇您喜歡的目錄來保存提取的文件。在這個例子中,我提取了文件 /tmp 目錄。

$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp

立即安裝 Rocketcatat。在文中 /選擇 安裝目錄。您可以優先考慮任何目錄。

$ cd /tmp/bundle/programs/server && npm install

輸出:

使用 npm 包管理器解壓縮存檔並安裝 RocketChat

$ sudo mv /tmp/bundle /opt/Rocket.Chat

配置 Rocket.Chat 服務

創建 Rocketat 用戶,並在 Rocket.Chat 應用程序目錄上設置相應的權限,以創建 Rocket.Chat 服務。

$ sudo useradd -M rocketchat && sudo usermod -L rocketchat
$ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

要創建 Rocketat.service,請在終端上運行以下命令

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=https://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

例子:

Rocket.chat 系統文件

接下來,您需要設置 MongoDB 存儲引擎和復制。在此之後,啟用並啟動 mongoDB。

$ 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())"

輸出:

設置 mongo.db

然後使用以下命令啟動並啟用 Rocket.Chat 服務:

$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat

檢查 Rocket.Chat 服務的狀態”

$ sudo systemctl status rocketchat

輸出:

systemctl 狀態火箭聊天

Nginx安裝和反向代理配置

要為 Rocket.Chat 配置 nginx 反向代理,請使用以下命令安裝 nginx:

$ sudo apt install nginx

創建 Rocketat nginx 虛擬主機配置。

$ sudo nano /etc/nginx/conf.d/rocketchat.conf

然後粘貼以下內容並保存文件

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 https://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;
}
}

檢查nginx配置文件

$ sudo nginx -t

配置 nginx

重啟nginx服務以啟用它

$ sudo systemctl restart nginx
$ sudo systemctl enable nginx

立即訪問您的火箭聊天域

https://your_rocketchat_domain

獲取網絡設置嚮導,完成它並開始使用 Rocket.Chat

Nginx 作為 SSL 反向代理

Rocket.Chat 僅包含一個 HTTP 反向代理。 將 nginx 配置為 SSL 反向代理需要證書文件。 編輯 nginx vhost 文件並粘貼以下內容:

$ 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 https://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;
}

筆記:

生成或購買ssl證書並指向證書文件目錄,配置參數如下:

ssl_certificate /etc/nginx/certificate.crt; [Your certificate file]
ssl_certificate_key /etc/nginx/private.key; [Your Private Key file]

檢查nginx配置文件

sudo nginx -t

重啟nginx服務

sudo systemctl restart nginx

參觀火箭貓

配置反向代理後,您可以使用以下 URL 訪問 Rocket.Chat:

https://you_rocket_chat_domain

顯示 Rocket.Chat 網絡設置嚮導。完成設置並開始使用自託管 Rocket.Chat。

結論是

在本文中,您學習瞭如何在 Ubuntu 20.04 上安裝和配置自託管 Rocket Chat。我們還解釋瞭如何使用帶有 Let’s Encrypt SSL 證書的反向代理來安裝和配置 nginx。