快速搭建一个端对端加密的在线聊天室

 

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

简介

程序:rocket.chat

官网:https://rocket.chat/

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

配置环境

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

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

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

 

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

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

快速搭建一个端对端加密的在线聊天室

配置域名

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

上一篇:Android与Smack – 如何获取在线用户列表?


下一篇:vuejs写一个手持弹幕