快速搭建一个端对端加密的在线聊天室
看到有人发了一个在线聊天室,感觉挺有意思的就做个教程
简介
程序:rocket.chat
官网: https://rocket.chat/
项目: https://github.com/RocketChat/Rocket.Chat
本次使用的机器为腾讯云的轻量学生机升级版 2c4g6m,详情可以参照 /t/748895
配置环境
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

4 、找到 “#replication:”,我的是在 26 行,修改如下
原配置:

修改后配置:
replication: replSetName: rs01

配置完成后 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())"
安装依赖
命令行下运行以下代码
Ubuntu/Debian
apt install -y graphicsmagick
Centos
yum install -y GraphicsMagick
安装 Rocket.Chat 主程序
逐条运行以下命令
wget -O rocket.chat.tgz https://releases.rocket.chat/latest/download //安装时版本号为 3.11.1 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
启动
逐条运行以下代码
ln -sf $(command -v node) /usr/bin/node useradd -M rocketchat && usermod -L rocketchat chown -R rocketchat:rocketchat /opt/Rocket.Chat
鉴于需要长期使用,可以选择是否配置守护进程。需要的就复制下面代码整体粘贴运行
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
设置开机自启:
systemctl enable rocketchat
然后去到宝塔安全里面,放行 3000 端口,此时就可以通过 IP:3000 访问了。
各大云厂商的云服务器也需要放行 3000 端口,本次演示的为腾讯云轻量学生机升级版
腾讯云轻量服务器添加防火墙:
进入到服务器管理面板然后防火墙放行

配置域名
现在直接访问 ip:3000 就可以访问了,为了正式一点我们配置一下域名
试了一下直接用宝塔的反代可以是可以但是会有点小问题,所以我们手动配置下
进入站点的配置文件,插入如下代码:
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 证书就大功告成啦
一个 LOC 大佬已经搭建好的聊天室:
srl.srl
注意事项
社区版有用户和推送消息等限制哦,如果用户量大建议升级一下。

本文首发地址: https://2demo.top/200.html