介绍

Rocket Chat其实已经出现了蛮久的了,到现在为止生态已经相当的成熟。在可用性上Rocket Chat支持网页,ios,安卓与Windows,每个平台也都有自己独立的应用,直接对标Discord。可惜目前还没有内置的即时语音视频通信服务,但是留出了自定义的部分可以自己部署。剩下的用户权限配置,群组与私人聊天,端到端加密,网页预加载等功能都已经蛮完善的,而且无需太多配置开箱即用。

之前我自己也从头编译配环境部署过几次,今天来水个更简单点的宝塔面板搭建教程。想要无环境从头开始的可以参考官网的搭建教程,也没有麻烦多少。

一.前期准备

1.安装宝塔

这部分没什么说的,使用宝塔官网提供的一键脚本即可,部分mini系统记得先安装wget.
安装wget:

yum install -y wget

安装宝塔面板

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

这里官方使用的python2.7作为运行环境,如果想直接使用python3.x版本请去官网找对应链接。

2.安装所需软件与依赖

环境需求:NodeJS 12.18.4 Mongodb 4.0.9Nginx
依赖需求:GraphicsMagick
宝塔面板安装完成后会提示安装LNMP环境,如果是建站机推荐装一下。如果需要反代Rocket Chat那么Nginx是必装的。

之后进入宝塔面板的软件商店,分别安装MongoDB 4.0.10PM2管理器

  • PM2管理器
    在PM2管理器设置中找到Node版本选项,点击切换为12.18.4,使用默认的高版本在部署时会出现问题。
  • MongoDB
    在MongoDB的设置中找到配置文件选项,之后删除Storge:块中的配置,改为如下配置:
#设置storage引擎,新增engine参数,并修改下dbPath路径,不然会启动不了
#这里生成的数据库到后期会非常大,如果是多分区的系统建议放到存储盘里去。经博主测试软链接也是可以的。
storage:
#新加入部分开始
  dbPath: /www/server/mongodb/Rocket.Chat
  directoryPerDB: true
  engine: mmapv1
  journal:
    enabled: true
#新加入部分结束

之后新加入一个replication:块并添加内容:

#配置replica set,新增以下参数
replication:
  replSetName: rs01

保存配置文件后MogoDB会自动停止,这时候回到ssh终端,分别输入以下命令:

#新建数据存储路径,即上面配置文件修改的dbPath参数
mkdir /www/server/mongodb/Rocket.Chat
#授权
chown mongo:mongo /www/server/mongodb/Rocket.Chat
#重新启动数据库
/etc/init.d/mongodb start
#启动replica set
mongo --eval "printjson(rs.initiate())"

之后MongoDB会随着宝塔面板自动启动,所以无需在单独配置启动项。

  • GraphicsMagick
yum install -y GraphicsMagick

二.Rocket Chat部署与启动

1.Rocket Chat部署

#下载rocket.chat
wget -O rocket.chat.tgz https://releases.rocket.chat/latest/download 
#解压并删除
tar -xzf rocket.chat.tgz && rm -rf rocket.chat.tgz
#移动到/opt并重命名
mv bundle /opt/Rocket.Chat
#安装依赖
cd /opt/Rocket.Chat
npm install -g inherits
cd programs/server
npm install

2.配置Rocket Chat服务并启动

ln -sf $(command -v node) /usr/bin/node
#新建rocketchat用户并授权
useradd -M rocketchat && usermod -L rocketchat
chown -R rocketchat:rocketchat /opt/Rocket.Chat
#新建systemd配置文件,将以下代码一起复制到SSH运行
cat > /etc/systemd/system/rocketchat.service <<EOF
[Unit]
Description=Rocket.Chat
After=network.target
Wants=network.target

[Service]
ExecStart=$(command -v node) main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
WorkingDirectory=/opt/Rocket.Chat
Environment=MONGO_URL=mongodb://127.0.0.1:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://127.0.0.1:27017/local?replicaSet=rs01 ROOT_URL=http://127.0.0.1:3000/ PORT=3000
Type=simple
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
EOF

启动Rocket Chat服务:

#低配机器启动会比较缓慢,请耐心等待一会
systemctl start rocketchat

查看Rocket Chat服务运行状态:

systemctl status rocketchat

设置Rocket Chat为开机自动启动:

systemctl enable rocketchat

之后访问vps_ip:3000,记得在宝塔面板的安全设置中开放3000端口,如果想用域名访问,不需要开启,继续看下面的反代教程。

三.配置反向代理

如果想搭配域名使用80443端口访问,并且配置SSL的话可以使用Nginx自带的反向代理功能。虽然宝塔的建站面板中附带有反向代理的设置,但是这里不太适合,我们选择直接修改Nginx对应站点的配置文件

首先在宝塔面板的网站面板中新建一个网站,域名设置为Rocket Chat想要反代使用的域名。之后打开该网站的设置页面,选择配置文件选项,将如下内容加入至server块中,注意添加的位置不要破坏其他配置内容。

location ~ ^/.* {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host             $host;
    proxy_set_header X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forward-Proto http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_http_version 1.1;

    proxy_redirect off;
}

点击保存后,再点击SSL,申请免费的Let's Encrypt证书,并强制HTTPS就大功告成了。之后进入Rocket Chat设置中记得将站点域名改成反代所使用的域名,不然邮件链接与一些转跳链接的生成会出现问题。

官方安装教程与使用教程

安装教程:https://docs.rocket.chat/installation/manual-installation/centos
使用教程:https://docs.rocket.chat/

最后修改:2021 年 01 月 23 日 03 : 41 PM
如果觉得我的文章对你有用,请随意赞赏