首页 » 排名链接 » 社区非盈利项目(搭建开源聊天取代教程)

社区非盈利项目(搭建开源聊天取代教程)

萌界大人物 2024-11-11 08:06:43 0

扫一扫用手机浏览

文章目录 [+]

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

准备

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

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

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

社区非盈利项目(搭建开源聊天取代教程) 排名链接
(图片来自网络侵删)

[root@mx ~]# docker -vDocker version 20.10.9, build c2ea9bc[root@mx ~]# 部署部署MongoDB

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

# 这里我创建一个mynet的网络[root@mx ~]# docker network create --subnet=172.18.0.0/16 mynete931682423fb3ce386fe8ccff2d4a1207a49de0f6cbb938290aaf94a680d2e33[root@mx ~]# docker network lsNETWORK ID NAME DRIVER SCOPEa187d39a9c31 bridge bridge locala009b92afbec host host locale931682423fb mynet bridge localf7101068a933 none null local[root@mx ~]#

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 interfacesnet: port: 27017 bindIp: 127.0.0.1# how the process runsprocessManagement: 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的镜像服务器在国外,所以下载较慢,如果遇到以下类似的错误,请多试几遍。

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

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

配置MongoDB

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

# 进入到容器内部[root@mx ~]# docker exec -it MongoDB bashroot@mongodatabase:/# # 容器内部进入mongodbroot@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 adminswitched to db adminmongodatabase: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 rocketchatdb.createUser({user: "rocketchat",pwd: "admin123",roles: [{role: "dbOwner",db: "rocketchat" }]})

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

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

docker stop MongoDBvim /opt/docker/mongodb/mongod.conf

将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

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

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

结语

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

至此!
如果你也喜欢技术,欢迎关注我~

标签:

相关文章

黑客,IT领域的双刃剑

随着互联网技术的飞速发展,网络安全问题日益凸显。黑客作为一种特殊的职业,其在IT领域的地位愈发重要。黑客这一群体既可以是维护网络安...

排名链接 2024-12-26 阅读0 评论0