在宝塔面板环境下用npm安装Rocket.Chat在线聊天室(一款优秀的即时聊天系统)教程

Rocket.Chat是除fiora、duckchat(鸭信)之外的又一款优秀的即时聊天系统,支持群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频,聊天,截图,实时翻译等等。官方支持docker和snap、npm的安装方式,这里讲一下在宝塔面板环境下用npm安装的方法。

如果没有宝塔,可以看看里:宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9ub2NxdmI=

教程环境:centos7.6、1h1g、宝塔面板(如果你的服务器运存小于1G可能会无法安装)

1、简介

官网:https://rocket.chat/

项目:https://github.com/RocketChat/Rocket.Chat

2、配置环境

1)进入宝塔软件商店,安装PM2管理器和MongoDB:

2)进入PM2管理器设置,将node版本改为12.14.0:

3)进入MongoDB设置,点击配置文件,找到“# Where and how to store data.”,将下面一段代码修改如下:

storage:
dbPath: /www/server/mongodb/Rocket.Chat
directoryPerDB: true
engine: mmapv1
journal:
enabled: true

看图:

4)找到“#replication:”,修改代码如下:

replication:
replSetName: rs01

看图:

4)然后点击保存。保存之后,MongoDB默认会关闭,这时要连接ssh,逐条运行以下命令:

mkdir /www/server/mongodb/Rocket.Chat
chown mongo:mongo /www/server/mongodb/Rocket.Chat
/etc/init.d/mongodb start
mongo --eval "printjson(rs.initiate())"

2、安装依赖

ssh运行以下代码:

yum install -y GraphicsMagick

假如你是Debian/Ubuntu系统,运行这条代码:

apt install -y graphicsmagick

3、安装Rocket.Chat

连接ssh,逐条运行以下命令:

wget -O rocket.chat.tgz https://releases.rocket.chat/latest/download 
tar -xzf rocket.chat.tgz && rm -rf rocket.chat.tgz
mv bundle /opt/Rocket.Chat
cd /opt/Rocket.Chat
npm install -g inherits
cd programs/server
npm install

4、启动

1)先逐条运行以下代码:

ln -sf $(command -v node) /usr/bin/node
useradd -M rocketchat && usermod -L rocketchat
chown -R rocketchat:rocketchat /opt/Rocket.Chat

2)然后配置进程守护。这里使用systemd。运行以下代码(一起复制运行):

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

3)然后启动Rocket.Chat:

systemctl start rocketchat

4)查看Rocket.Chat的状态:

systemctl status rocketchat

5)设置开机自启:

systemctl enable rocketchat

然后去到宝塔安全里面,放行3000端口,此时就可以通过IP:3000访问了。

5、域名访问

域名访问自然是“防呆”,但是我听大佬说不能直接用宝塔的反代,所以我就直接按大佬的做了。进入站点配置文件,插入下面的代码:

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,就可以通过域名访问了。