美文网首页高性能C++服务器
取代微信?RocketChat开源聊天应用搭建教程

取代微信?RocketChat开源聊天应用搭建教程

作者: 运维贼船 | 来源:发表于2021-10-26 19:40 被阅读0次

    有很多小伙伴都有过搭建一个自己的聊天服务应用的想法,摆脱微信、QQ等第三方应用,更加注重自己的隐私,或更好的存储自己的文件。

    image

    我发现了一款开源的聊天应用RocketChat,能够实现群组聊天,直接通信,私聊群,桌面通知,媒体嵌入,链接预览,文件上传,语音/视频 聊天,截图等等,还支持实时翻译,实现用户之间的自动实时消息转换,使用RocketChat可以完全控制交流通信。

    准备

    功能听起来还不错,我们一起来搭建一下,我这里使用以下配置:

    # 基础环境, 我这里用的学生机,大家可以调高一点配置
    1.CentOS 7.6 1CPU/2G/60G
    2.开放公网3000端口
    

    另外需要搭建起docker运行环境,在之前的教程中有讲过使用一键脚本,如果不清楚可以翻看前面的教程。

    [root@mx ~]# docker -v
    Docker version 20.10.9, build c2ea9bc
    [root@mx ~]# 
    

    部署

    部署MongoDB

    首先创建一个自定义网络,用于容器间的相互隔离访问。

    # 这里我创建一个mynet的网络
    [root@mx ~]# docker network create --subnet=172.18.0.0/16 mynet
    e931682423fb3ce386fe8ccff2d4a1207a49de0f6cbb938290aaf94a680d2e33
    [root@mx ~]# docker network ls
    NETWORK ID     NAME      DRIVER    SCOPE
    a187d39a9c31   bridge    bridge    local
    a009b92afbec   host      host      local
    e931682423fb   mynet     bridge    local
    f7101068a933   none      null      local
    [root@mx ~]# 
    
    
    image

    RocketChat依赖于MongoDB运行环境,先采用Docker方式部署一下

    mkdir -p /opt/docker/mongodb
    # 新建一个配置文件
    vim /opt/docker/mongodb/mongod.conf
    

    下面是mongod.conf的内容,请粘贴到文件中, 然后使用esc和:x保存退出。

    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: /data/db
      journal:
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # network interfaces
    net:
      port: 27017
      bindIp: 127.0.0.1
    
    # how the process runs
    processManagement:
      timeZoneInfo: /usr/share/zoneinfo
    
    #security:
    #  authorization: "enabled"
    
    #operationProfiling:
    
    replication:
      replSetName: "rs01"
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:
    

    使用以下命令创建运行镜像。

    docker run \
    -itd \
    -e PGID=1000 \
    -e PUID=1000 \
    --name=MongoDB \
    --net=mynet \
    --ip=172.18.0.2 \
    -e TZ=Asia/Shanghai \
    -p 27017:27017/tcp \
    -v /opt/docker/mongodb/:/data/db:rw \
    --hostname mongodatabase mongo \
    -f /data/db/mongod.conf
    

    由于docker的镜像服务器在国外,所以下载较慢,如果遇到以下类似的错误,请多试几遍。


    image

    使用命令查看运行状态,如果没有其它报错则安装正常。

    # 查看正在运行的容器
    docker ps 
    
    image

    配置MongoDB

    我们需要对MongoDB进行一系列的配置。

    # 进入到容器内部
    [root@mx ~]# docker exec -it MongoDB bash
    root@mongodatabase:/# 
    
    # 容器内部进入mongodb
    root@mongodatabase:/# mongo
    
    # 使用以下命令,注意括号
    mongodatabase:SECONDARY> rs.initiate()
    {
            "ok" : 0,
            "errmsg" : "already initialized",
            "code" : 23,
            "codeName" : "AlreadyInitialized",
            "$clusterTime" : {
                    "clusterTime" : Timestamp(1635072585, 2),
                    "signature" : {
                            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                            "keyId" : NumberLong(0)
                    }
            },
            "operationTime" : Timestamp(1635072585, 2)
    }
    
    
    # 使用管理员操作数据库
    mongodatabase:PRIMARY> use admin
    switched to db admin
    mongodatabase:PRIMARY> 
    # 创建管理员和rocketchat数据库, 这里我把密码都修改为admin123,大家可对应修改
    db.createUser({user: "root",pwd: "admin123",roles: [{ role: "root", db: "admin"}]})
    db.createUser({user: "rocketchat",pwd: "admin123",roles: [{role: "readWrite", db: "local" }]})
    # 切换用户
    use rocketchat
    db.createUser({user: "rocketchat",pwd: "admin123",roles: [{role: "dbOwner",db: "rocketchat" }]})
    

    如果你的操作结果与我类似,那么恭喜你创建成功。


    image

    使用exit退出mongodb和容器,我们修改一个配置。

    docker stop MongoDB
    vim /opt/docker/mongodb/mongod.conf 
    
    image

    将24-25行前的注释取消掉,保存后重启mongodb。

    docker start MongoDB
    

    部署RocketChat

    使用下面的命令部署镜像,如果下载较慢或超时可以多试几次。

    docker run \
    -itd \
    -e PGID=1000 \
    -e PUID=1000 \
    --name=RocketChat \
    --net=mynet \
    --ip=172.18.0.3 \
    -e TZ=Asia/Shanghai \
    -e MONGO_URL=mongodb://rocketchat:admin123@172.18.0.2:27017/rocketchat \
    -e MONGO_OPLOG_URL=mongodb://rocketchat:admin123@172.18.0.2:27017/local?authSource=admin \
    -p 3000:3000/tcp \
    -v /opt/docker/rocketchat:/app/uploads:rw library/rocket.chat
    
    image

    关闭防火墙,或放行3000TCP端口,使用网页来访问,地址为IP:3000(如果你是公网服务器,请使用你的公网地址)。配置一下基本信息,一直继续到配置结束。


    image
    image
    image

    最后就可以愉快地玩耍了,发个表情试试~

    结语

    安装成功后,可以使用ssl证书将网站加密,可以更加的安全。而且使用客户端连接到私有服务器时,http协议不会被连接,就像下面这样。


    image

    至此,祝大家搭建成功!

    相关文章

      网友评论

        本文标题:取代微信?RocketChat开源聊天应用搭建教程

        本文链接:https://www.haomeiwen.com/subject/rbuyaltx.html