如果您正在尋找開源自託管聊天平台,Rocketcatat 適合您。 Rocket Chat 可以替代 Slack 和 Mattermost 等各種溝通渠道。 Rocket Chat 具有群聊、視頻會議等多種功能,讓您可以將實時聊天與其他平台集成。在本文中,您將學習如何使用 Let’s Encrypt SSL 證書設置自託管 Rocketcat 系統。
先決條件
- 新鮮的 ubuntu 服務器
- root 訪問權限或 sudo 特權帳戶
- 指向服務器IP的域名
- 互聯網連接以下載應用程序
安裝所需的包和依賴項
在安裝軟件包之前使用以下命令更新您的 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
要檢查安裝的 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
輸出:
解壓縮下載的應用程序。您可以選擇您喜歡的目錄來保存提取的文件。在這個例子中,我提取了文件 /tmp 目錄。
$ tar -xvzf /tmp/rocket.chat.tgz -C /tmp
立即安裝 Rocketcatat。在文中 /選擇 安裝目錄。您可以優先考慮任何目錄。
$ cd /tmp/bundle/programs/server && npm install
輸出:
$ 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
例子:
接下來,您需要設置 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())"
輸出:
然後使用以下命令啟動並啟用 Rocket.Chat 服務:
$ sudo systemctl enable rocketchat && sudo systemctl start rocketchat
檢查 Rocket.Chat 服務的狀態”
$ sudo systemctl status rocketchat
輸出:
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服務以啟用它
$ 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。