一个超级棒的开源即时通讯系统


0.写在前面

看到一个开源的即时通讯程序,体验非常棒。

1.准备工作

1.1 安装go

https://go.dev/dl下载最新版go。项目要求go version>=1.20.0

我的云服务是centos x86_64

uname -a
Linux VM-16-10-centos 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

因此下载:go1.21.0.linux-amd64.tar.gz

下载完成后在~/.bash_profile配置好GOROOT,GOPATH即可

export GOROOT=/root/Document/software/go1.21.0
export GOPATH=/home/workspaces/go/src

export PATH=$PATH:$GOROOT/bin

查看go版本

# go version
go version go1.21.0 linux/amd64

1.2 用docker安装mysql,redis,minio

(一) mysql

# docker run -e MYSQL_ROOT_PASSWORD=demo -p 3306:3306 --name mysql mysql

(二)redis

#docker run -itd --name redis -p 6379:6379 redis
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
648e0aadf75a: Pull complete
3b637010cd4d: Pull complete
af4cd59cb295: Pull complete
5c4cdbac1c67: Pull complete
70c6437ca3ab: Pull complete
3d38f0110a91: Pull complete
Digest: sha256:b0bdc1a83caf43f9eb74afca0fcfd6f09bea38bb87f6add4a858f06ef4617538
Status: Downloaded newer image for redis:latest
1df5792956d8afd425164e17d38701943bfdc81ea4af6af9baed7405f64201be

查看日志,说明redis已经启动成功

(三)minio

docker run -p 9000:9000 -p 9090:9090 --name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=admin123456" \
-v /tmp/minio/data:/data \
-v /tmp/minio/config:/root/.minio \minio/minio \
server /data --console-address ":9090"


说明启动成功,访问ip:9000访问页面,创建Access Key


记住Access KeySecret Key,后面要用到

2.下载并运行代码

2.1 下载WuKongIM

git clone https://github.com/WuKongIM/WuKongIM.git

2.2 运行WuKongIM

这里使用pm2运行

在根目录添加socket.json文件

[{
    "name": "WuKongIM",
    "args": "",
    "script": "go run main.go",
    "exec_mode": "fork",
    "max_memory_restart": "100M"
}]

启动程序:pm2 start socket.json

2.3 下载TangSengDaoDaoServer

git clone https://github.com/TangSengDaoDao/TangSengDaoDaoServer.git

2.4修改配置

TangSengDaoDaoServer/configs/tsdd.yaml

minio: # minio配置
#  url: "" # minio地址 格式:http://xx.xx.xx.xx:9000
  accessKeyID: "上面保存的Access Key" # minio accessKeyID
  secretAccessKey: "上面保存的Secret Key"  # minio secretAccessKey

2.5 运行

同WuKongIM一样,使用pm2运行

2.6 下载TangSengDaoDaoWeb

如果不用web版则不需要运行这个程序。

git clone https://github.com/TangSengDaoDao/TangSengDaoDaoWeb.git

修改配置apps/web/src/index.tsx

WKApp.apiClient.config.apiURL = "http://127.0.0.1:8090/v1/"

2.7 启动

下载依赖
yarn install

yarn dev // 这个命令可以使用pm2

至此环境搭建完成,可以访问ip:3000,用admin/oZmjluNR账号登录管理员

手机访问,修改登录页面右上角服务器地址,改成ip:8090,即可访问

安卓版下载

至此本地安装完成,可用多端用多账号登录,相互聊天,体验非常好。有任何疑问欢迎评论区沟通。

参考

[1]Docker安装MySQL:5.7 Docker下安装MySQL

[2]Docker 安装 Redis

[3]go下载

[4]Docker Compose方式部署

[5]『MinIO』在Docker中快速部署MinIO

[6]什么是唐僧叨叨


文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
  目录