看到有人发了一个在线聊天室,感觉挺有意思的就做个教程

简介

程序:Rocket.Chat

官网:https://rocket.chat/

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

配置环境

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


da236f93936a946bf7f9499ef71b8918.png

2、进入PM2管理器设置,将node版本改为12.14.0:
f39a5eb8ab51d14b74f8e602e53a0d05.png

3、进入MongoDB设置,点击配置文件找到 “# Where and how to store data.” 将存储数据的地址修改为以下:

原配置

875b4736e31d9ee83f7dbe38211a7a9b.png
修改为:
storage:
  dbPath: /www/server/mongodb/Rocket.Chat
  directoryPerDB: true
  engine: mmapv1
8736ac833dfad58d3945d9bb951ba7bc.png
原配置:
fe42f9f29f225b78ab38d6a07193376e.png
修改后配置:
replication:
replSetName: rs01

58432fda053ee787c7af37a02230c998 (1).png

配置完成后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端口,本次演示的为腾讯云轻量学生机升级版,108年2C4G6M1000GB最高续费4年十分的香 学生机购买:https://curl.qcloud.com/hQiFtUjz

良心云的轻量延期了,延长到了3.10号(感觉会一直延长下去),如果学生机买不到可以参考这里https://curl.qcloud.com/PewqZwe6 1C2G5M 488三年 找个八折代理跟学生机原价差不多

有资格抢学生机的可以等晚上零点补货再抢

腾讯云轻量服务器添加防火墙:

进入到服务器管理面板然后防火墙放行

1584e94a2fdef69a39357781c5efa122.png

配置域名

现在直接访问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

注意事项

免费的版本有用户和推送消息等限制哦,如果用户量大建议升级一下套餐。





作者:dongyin,如若转载,请注明出处:《快速搭建一个端对端加密的在线聊天室》


© 免责声明:晴天的Blog提供的一切软件/教程/源码和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果由用户自行负责。本站信息均来自互联网,版权争议与本站无关。如有侵权/DMCA投诉等请发邮件到(aotudannier@vip.qq.com)与我们联系,收到邮件后我们会尽快处理并回复。