安装RocketChat(阿里云/docker)

docker pull rocket.chat
  • 随便新建一个目录作为rocket工作目录,
  • cd进入工作目录,
  • 新建一个docker-compose.yml文件,写入
version: '3.6'
services:
  mongo:
    image: mongo:4.0
    volumes:
      - ./data/db:/data/db
    command: mongod --smallfiles --oplogSize 128 --replSet rs01

  rocketchat:
  #  rocket.chat without ownner is offical stable version
  #  sometimes we need newest dev version use rocketchat/rocket.chat:latest
    image: rocket.chat:latest
    restart: unless-stopped
    environment:
      - ROOT_URL=http://localhost
      - MONGO_URL=mongodb://mongo:27017/rocketchat?replicaSet=rs01
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
    depends_on:
      - mongo
    ports:
      - "4010:3000"

保存后运行命令即可下载并启动。

docker-compose up --build -d  

停止服务并删除容器用这个命令

docker-compose down  

服务启动后访问http://主机ip或域名:4010 即可访问。(4010端口可在上面的配置文件中更改成你喜欢的)
想在手机客户端上使用话请继续往下看,只是在PC端的话以上就够了。

想使用手机客户端有几个条件

  1. 开启https服务(宝塔面板/Let's Encrypt)
  2. 如果你的域名没有备案但是rocketChat是部署在国内云主机比如阿里云上时还需要做一下反向代理(宝塔面板)
  3. 在rocketChat官网注册并添加一个自己的workspace (每月10000条消息免费推送)

宝塔面板为域名开启https

用Let's Encrypt很简单不说了。

宝塔面板开启反向代理并开启websocket代理支持

  • 后台-网站-点击域名-站点修改-反向代理
    填入目标地址,直接使用IP即可,而且无需开启https,比如
    http://40.123.200.221:4040 (实际部署服务器)
  • 后台-网站-点击域名-站点修改-配置文件
    找到location部分,添加(或解除注释)以下内容
        #持久化连接相关配置
        proxy_connect_timeout 30s;
        proxy_read_timeout 86400s;
        proxy_send_timeout 30s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
  • 后台-nginx管理-配置修改
    找到http的部分,添加以下内容
        ## 反向代理支持websocket
        map $http_upgrade $connection_upgrade {
            default upgrade;
            '' close;
        }
  • 重启nginx即可

注册并添加自己的workspace

这个步骤是为了使用官方提供的每月10000条免费手机app推送服务。

如果不需要推送服务那么可以不注册。

注册rocket chat账号:https://cloud.rocket.chat/home
注册完成后新建一个workspace,会给你一个令牌。
回到自己的管理菜单的连接性服务里,填入这个令牌即可绑定这个workspace。

手机客户端

填入https域名地址比如 https://mychat.com ,由于上面做过反向代理,请求会被转发到阿里云的主机上。
没问题的话就会出现登录页面了。恭喜,你拥有了自己的聊天工具。

如果注册过workspace那么即使在熄屏时,收到消息也会有系统推送过来。配合命令行发送消息的工具作为一些监控提醒效果非常好。

命令行发消息的方法参见这篇文章

备份和还原数据(服务器迁移的时候会用到)

在元服务器做备份

进入要备份的mongodb容器执行

mongodump --db rocketchat --out /tmp/rocketchat_backup
cd /tmp
tar -cvf bak.tar rocketchat_backup
mv bak.tar /data/db

然后在宿主机的rocket工作目录下的/data/db中将bak.tar剪切出来并传输到目标服务器上。

在目标服务器进行还原(前提是已经安装好RocketChat)

将bak.tar放入/data/db,然后进入mongodb容器执行

cd /tmp
mkdir rocketchat_backup
cd rocketchat_backup
mv /data/db/bak.tar .
tar -xvf bak.tar
mongorestore -u yourAdminUser -p yourAdminpass --authenticationDatabase admin --db rocketchat /tmp/rocketchat_backup/rocketchat/ --drop

最后重启服务即可。

系列文章

Last modification:May 3, 2022
If you think my article is useful to you, please feel free to appreciate