如何在CentOS 7上部署Rocket.Chat

Rocket.Chat是一個完整的團隊交流平台,是自託管的Slack替代方案。 它是用Meteor構建的,並提供各種功能,包括服務台聊天,視頻會議,文件共享,語音消息,API等。

在本教程中,我們將向您展示如何在使用Nginx作為SSL反向代理的CentOS 7服務器上安裝和部署Rocket.Chat。

先決條件

在繼續本教程之前,請確保您已滿足以下先決條件:

  • 根據官方的Rocket.Chat系統要求,CentOS 7服務器至少需要1G RAM。
  • 您以具有sudo特權的用戶身份登錄。
  • 您有一個指向服務器IP地址的域名。 在本文中,我們將使用 example.com
  • 您已經安裝了Nginx,如果沒有,則可以按照本教程進行安裝。
  • SSL證書。 您可以從Let’s Encrypt生成免費的,也可以從其他提供商那裡購買。

安裝依賴項

安裝以下構建必需的軟件包 npm 模塊:

sudo yum install epel-release curl GraphicsMagick gcc-c++

接下來,安裝 Node.jsnpm 通過鍵入:

sudo yum install -y nodejs npm

在撰寫本文時,建議的Rocket.Chat Node.js版本是Node.js v8.11.3。

發出以下命令以安裝 n 實用程序和推薦的Node.js版本:

sudo npm install -g inherits nsudo n 8.11.3

MongoDB是一個NoSQL面向文檔的數據庫,被Rocket.Chat用作數據存儲。 Rocket.Chat建議使用MongoDB 3.6版。

我們將使用安裝MongoDB yum 來自官方的MongoDB存儲庫。

打開您選擇的編輯器並創建以下存儲庫文件:

sudo nano /etc/yum.repos.d/mongodb-org.repo

將以下內容粘貼到文件中:

/etc/yum.repos.d/mongodb-org.repo

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

保存文件並關閉文本編輯器。

要安裝MongoDB,請運行以下命令:

sudo yum install mongodb-org

安裝完成後,啟用並啟動MongoDB服務:

sudo systemctl start mongodsudo systemctl enable mongod

創建新的系統用戶#

創建一個新的用戶和組,它將運行我們的Rocket.Chat實例。 為簡單起見,我們將命名用戶 rocket

sudo useradd -m -U -r -d /opt/rocket rocket

添加 nginx 用戶到新用戶組並更改 /opt/rocket 目錄權限,以便Nginx可以訪問它:

sudo usermod -a -G rocket nginxsudo chmod 750 /opt/rocket

安裝Rocket.Chat#

切換到用戶 rocket 通過鍵入:

sudo su - rocket

下載帶有curl的最新穩定版Rocket.Chat:

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

下載完成後,解壓縮存檔並將目錄重命名為 Rocket.Chat

tar zxf rocket.chat.tgzmv bundle Rocket.Chat

換成 Rocket.Chat/programs/server 目錄並安裝所有必需的 npm 套餐:

cd Rocket.Chat/programs/servernpm install

在創建systemd單元並使用Nginx設置反向代理之前,最好測試一下安裝是否成功。

為此,請先設置所需的環境變量:

export PORT=3000export ROOT_URL=http://example.com:3000/export MONGO_URL=mongodb://localhost:27017/rocketchat

接下來,改回 Rocket.Chat 目錄並啟動 Rocket.Chat 通過發出以下命令來啟動服務器:

cd ../../node main.js

如果沒有錯誤,您應該看到以下輸出:

➔ +---------------------------------------------+
➔ |                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                  |
➔ |                                             |
➔ +---------------------------------------------+

此時,Rocket.Chat已安裝在您的CentOS 7計算機上。 使用以下命令停止Rocket.Chat服務器 CTRL+C 並繼續下一步。

創建系統單位編號

要將Rocket.Chat作為服務運行,請創建一個 rocketchat.service 單位文件 /etc/systemd/system/ 目錄:

sudo nano /etc/systemd/system/rocketchat.service

將以下內容粘貼到文件中:

/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=http://example.com:3000/ PORT=3000
ExecStart=/usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

[Install]
WantedBy=multi-user.target

保存並關閉文件。

通知systemd已創建一個新的單元文件,並通過執行以下命令啟動Rocket.Chat服務:

sudo systemctl daemon-reloadsudo systemctl start rocketchat

使用以下命令檢查服務狀態:

sudo systemctl status rocketchat

輸出應如下所示:

● rocketchat.service - Rocket.Chat server
   Loaded: loaded (/etc/systemd/system/rocketchat.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-04-10 20:30:56 UTC; 8s ago
 Main PID: 32356 (node)
   CGroup: /system.slice/rocketchat.service
           └─32356 /usr/local/bin/node /opt/rocket/Rocket.Chat/main.js

如果沒有錯誤,您可以啟用Rocket.Chat服務,使其在啟動時自動啟動:

sudo systemctl enable rocketchat

使用Nginx設置反向代理

如果遵循我們如何在CentOS 7上安裝Nginx以及如何在CentOS 7上使用“讓我們加密”來保護Nginx,則您應該已經安裝了Nginx並配置了SSL證書。

現在,我們需要為我們的Rocket.Chat安裝創建一個新的服務器塊:

sudo nano /etc/nginx/conf.d/example.com.conf

將以下內容粘貼到文件中:

/etc/nginx/conf.d/example.com.conf

upstream rocketchat_backend {
  server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name example.com www.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/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;
    }
}

重新加載Nginx服務以使更改生效:

sudo systemctl reload nginx

配置Rocket.Chat#

打開瀏覽器並輸入: http://chat.example.com

假設安裝成功,將為您提供Rocket.Chat設置嚮導,該嚮導將指導您設置第一個管理員用戶,配置組織和註冊服務器以接收免費的推送通知等。

初始設置嚮導的第一部分將要求您設置管理員用戶:

輸入管理員信息後,請點擊 Continue 按鈕,然後在下一步中輸入您的組織信息:

Rocket.Chat設置嚮導-步驟2

初始設置嚮導的第三部分將提示您輸入服務器信息:

Rocket.Chat設置嚮導-步驟3

在下一步中,系統將詢問您是否要使用Rocket.Chat的預配置網關和代理。 選擇此選項將使您可以訪問Rocket.Chat Apps市場,而其他大多數功能(如推送通知)也將立即可用。

Rocket.Chat設置嚮導-步驟4

做出選擇,點擊 Continue 按鈕,您將被重定向到以下頁面,表明您的工作區已準備就緒,可以使用:

Rocket.Chat設置嚮導-步驟4

點擊 Go to your workspace 按鈕,您將被重定向到以admin用戶身份登錄的Rocket.Chat儀錶板。

結論#

您已經在CentOS 7服務器上成功安裝了Rocket.Chat。 現在,您可以開始使用Rocket.Chat與您的團隊進行協作,共享文件並實時聊天。

如果您在安裝過程中遇到任何問題,請隨時發表評論。

火箭聊天nodejs centos mongodb

Sidebar