搭建rockerChat聊天系统





Rocket.Chat 是一个网络聊天服务器,使用 JavaScript 开发,使用 Meteor 全栈框架。 对于希望私下托管自己的聊天服务的社区和公司,或者对于希望构建和发展自己的聊天平台的开发人员来说,这是一个很好的解决方案。



环境构建

VPS配置要求

1H2G及以上。小了跑不动!


重裝

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 11 -v 64 -p lion123 -port 22


更新环境

apt update -y  && apt upgrade -y && apt install -y curl wget sudo socat


安装 Docker

curl -fsSL https://get.docker.com | sh



构建rockerChat服务

下载安装 mongoDB 数据库并创建副本集

docker run --name db -d --restart=always mongo:latest --replSet rs5 --oplogSize 256



在数据库中初始化副本集

docker exec -ti db mongosh --eval "printjson(rs.initiate())"


下载rockerChat镜像并部署容器

x86

docker run --name rocketchat --restart=always -p 8890:3000 --link db --env ROOT_URL=http://localhost --env MONGO_OPLOG_URL=mongodb://db:27017/rs5 -d rocket.chat




NGINX反向代理成域名

创建nginx目录结构

mkdir -p /home/nginx

touch /home/nginx/nginx.conf

mkdir -p /home/nginx/certs


申请证书

curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com

~/.acme.sh/acme.sh --issue -d chat.kjlion.gq --standalone



下载证书

~/.acme.sh/acme.sh --installcert -d chat.kjlion.gq --key-file /home/nginx/certs/chat-key.pem --fullchain-file /home/nginx/certs/chat-cert.pem





进入目录编辑文件

cd /home/nginx/ && nano nginx.conf


反代的代码

events {

    worker_connections 1024;

}

http {

    client_max_body_size 1000m;  

    #上传限制参数1G以内文件可上传


server {

    listen 80;

    server_name chat.kjlion.gq;

    return 301 https://$host$request_uri;

  }


server {

  listen 443 ssl;

  server_name chat.kjlion.gq;

  http2 on;

  ssl_certificate /etc/nginx/certs/chat-cert.pem;

  ssl_certificate_key /etc/nginx/certs/chat-key.pem;


  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";


  location / {

      proxy_set_header   X-Real-IP $remote_addr;

      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_set_header   Host $host;

      proxy_pass         http://0.0.0.0:8890/;

      proxy_http_version 1.1;

      proxy_set_header   Upgrade $http_upgrade;

      proxy_set_header   Connection "upgrade";

  }

}

}



运行nginx容器

docker run -d --name nginx --restart=always -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/certs:/etc/nginx/certs -v /home/nginx/html:/usr/share/nginx/html nginx:latest



成果

最终效果












聊天地址

https://chat.kejilion.pro





副本集添加新成员命令

rs.add("db1:27017")

rs.add("db2:27017")


主节点降级命令

rs.stepDown()


删除成员

rs.remove("db1:27017")

rs.remove("db2:27017")


查看副本集状态命令

rs.status()




更新

docker stop rocketchat

docker rm rocketchat

docker pull rocket.chat


docker run --name rocketchat --restart=always -p 8890:3000 --link db --env ROOT_URL=http://localhost --env MONGO_OPLOG_URL=mongodb://db:27017/rs5 -d rocket.chat




备份迁移还原

备份数据

docker exec -ti db mongodump


打包

docker commit -p db db


上传Hub

docker login

docker tag db 12345/db:1.0

docker push 12345/db:1.0


另一台机器拉取镜像

docker run -d --restart=always --name db 12345/db:1.0


初始化副本集

docker exec -ti db mongosh --eval "printjson(rs.initiate())"


还原

docker exec -ti db mongorestore







评论

  1. 匿名4/18/2023

    如何更新呢?现在已经有6.1.2的版本了

    回复删除
  2. 匿名7/02/2023

    dd完,系统密码是多少

    回复删除

发表评论

此博客中的热门博文

科技lion官方一键脚本上线!VPS监控测试建站维护于一身的全能工具箱

CloudCone付费VPS分享 挺便宜的

新机到手我必做的10件事?让VPS飞速运行更安全!