今天,再给大家推荐一款高颜值的即时通讯聊天应用,轻量且高性能!
项目介绍
TangSengDaoDaoServer —— 一款基于 GO 开发,轻量级,高性能,且重安全专注于私有化部署的开源即时通讯系统。
「功能特色」:
「全局特性」:消息加密传输,永久存储,并支持多端同步(App、Web、PC 等) 「通讯功能」:支持单聊和群聊,具备消息撤回功能,群聊人数无限制,支持群机器人 「用户关系管理」:支持好友搜索、添加,可设置免打扰、置顶等,支持通用的群管理功能(群设置配置、成员管理等) 「后台管理」:提供了完善的后台管理功能,方便管理员对系统进行全方位的运营和维护,涵盖用户管理、群组管理、消息管理、应用配置等多个维度 「多平台支持」:提供 Web/PC 端、Android、iOS、Windows、MAC 端等多端体验
「项目架构」:

快速上手
TangSengDaoDaoServer 支持使用 Docker 部署,可通过 Docker Compose 快速部署。
「环境要求」:
Linux系统(建议配置 2 核 8G) Docker Docker Compose
1、创建安装目录
mkdir -p /data/software/tsdd
cd /data/software/tsdd
2、在 tsdd 下创建 docker-compose.yaml 文件
vi docker-compose.yaml
3、复制如下内容到 docker-compose.yaml 文件中并保存
version: '3.1'
services:
wukongim:# 唐僧叨叨通讯服务(悟空IM)
image:registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:v2
restart:always
ports:
# - "5001:5001" # http api端口(业务端调用,仅限内网开放)
-"5100:5100"# tcp长连接端口(外网开放)
-"5200:5200"# websocket端口(外网开放)
-"5300:5300"# 监控端口
volumes:
-./wukongim:/root/wukongim
env_file:
-.env
environment:
-WK_EXTERNAL_IP=${EXTERNAL_IP}
tangsengdaodaoserver:# 唐僧叨叨的业务服务
image:registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoserver:v1.5
restart:always
command:"api"
healthcheck:
test:"wget -q -Y off -O /dev/null http://localhost:8090/v1/ping > /dev/null 2>&1"
interval:10s
timeout:10s
retries:3
depends_on:
-redis
-mysql
-wukongim
ports:
-"8090:8090"
volumes:
-./data:/home/tsdddata
-./conf:/home/configs# 如果需要使用yaml配置,在当前目录下创建tsdd/configs目录,并新建tsdd.yaml配置文件(注意:配置生效优先级environment高于配置文件,如果你配置了environment将覆盖tsdd.yaml的配置项)
env_file:
-.env
environment:
-TS_DB_MYSQLADDR=root:${MYSQL_ROOT_PASSWORD}@tcp(mysql)/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=true&loc=Local
-TS_EXTERNAL_IP=${EXTERNAL_IP}
-TS_FILESERVICE=${TS_FILESERVICE}
-TS_MINIO_ACCESSKEYID=${MINIO_ROOT_USER}
-TS_MINIO_SECRETACCESSKEY=${MINIO_ROOT_PASSWORD}
tangsengdaodaoweb:# 唐僧叨叨的web服务
image:registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoweb:latest
restart:always
environment:
-API_URL=http://tangsengdaodaoserver:8090/
ports:
-"82:80"
depends_on:
tangsengdaodaoserver:
condition:service_healthy
tangsengdaodaomanager:# 唐僧叨叨的后台管理系统
image:registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaomanager:latest
restart:always
environment:
-API_URL=http://tangsengdaodaoserver:8090/
ports:
-"83:80"
depends_on:
tangsengdaodaoserver:
condition:service_healthy
minio:# minio文件管理服务
image:registry.cn-shanghai.aliyuncs.com/wukongim/minio:RELEASE.2023-07-18T17-49-40Z# minio/minio:RELEASE.2023-07-18T17-49-40Z
expose:
-"9000"
-"9001"
command:"server /data --console-address ':9001'"
ports:
-"9000:9000"
-"9001:9001"
environment:
-MINIO_ROOT_USER=${MINIO_ROOT_USER}
-MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
healthcheck:
test:["CMD","curl","-f","http://localhost:9000/minio/health/live"]
interval:30s
timeout:20s
retries:3
volumes:
-./miniodata:/data
mysql:# mysql数据库
image:registry.cn-shanghai.aliyuncs.com/wukongim/mysql:8.0.33# mysql:8.0.33
command:--default-authentication-plugin=mysql_native_password
healthcheck:
test:["CMD","mysqladmin","ping","-h","localhost"]
volumes:
-./mysqldata:/var/lib/mysql
environment:
-TZ=Asia/Shanghai
-MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
-MYSQL_DATABASE=${MYSQL_DATABASE}
redis:# redis
image:registry.cn-shanghai.aliyuncs.com/wukongim/redis:7.2.3# redis:7.2.3
restart:always
healthcheck:
test:["CMD","redis-cli","ping"]
interval:1s
timeout:3s
retries:30
adminer:# mysql web管理工具 调试用,为了安全生产不要打开
image:registry.cn-shanghai.aliyuncs.com/wukongim/adminer:latest# adminer:latest
ports:
-8306:8080
4、创建配置文件 .env
vi .env
5、复制如下内容到 .env 文件中,并保存
❝❞
EXTERNAL_IP必须修改为服务器的 IP 地址,其他参数都可使用默认值。
# ######### 基础配置 #########
# 服务器的对外 IP 地址
EXTERNAL_IP=xxx.xxx.xxx.xxx
# MySQL root 用户的密码
MYSQL_ROOT_PASSWORD=Aa1234567
# MySQL 默认数据库名字
MYSQL_DATABASE=im
# ######### Minio文件服务配置 #########
# Minio 文件服务的用户名
MINIO_ROOT_USER=minio
# Minio 文件服务的密码
MINIO_ROOT_PASSWORD=Aa1234567
######### WuKongIM相关的配置 #########
# 模式 debug or release
WK_MODE=release
# 开启最近会话服务端维护
WK_CONVERSATION_ON=true
# 业务服务的grpc地址
WK_WEBHOOK_GRPCADDR=tangsengdaodaoserver:6979
# 业务服务的数据源地址
WK_DATASOURCE_ADDR=http://tangsengdaodaoserver:8090/v1/datasource
# 开启频道信息同步
WK_DATASOURCE_CHANNELINFOON=true
# 开启token认证
WK_TOKENAUTHON=true
# 是否关闭个人白名单功能,默认是开启的,如果关闭发送消息将不做好友关系的判断
WK_WHITELISTOFFOFPERSON=false
# JWT的密钥
WK_JWT_SECRET=wk_secret_123
# 默认安装搜索插件
WK_PLUGIN_INSTALL=https://gitee.com/WuKongDev/plugins/releases/download/latest/wk.plugin.search-${os}-${arch}.wkp
######### TangSengDaoDao的配置 #########
# 模式 debug or release
TS_MODE=release
# wukongim的内网访问地址
TS_WUKONGIM_APIURL=http://wukongim:5001
# Redis 连接地址
TS_DB_REDISADDR=redis:6379
# 验证码,如果此值不为空,则使用此值作为验证码,为空则使用短信提供商发送的验证码
TS_SMSCODE=123456
# 使用文件服务的类型
TS_FILESERVICE=minio
# 默认头像获取地址
TS_AVATAR_DEFAULTBASEURL=https://api.dicebear.com/8.x/avataaars/png?seed={avatar}&size=180 # 备用https://robohash.org/{avatar}
# 唐僧叨叨后台管理系统的管理员密码,用户名为 superAdmin,可随机填写(至少8位)
TS_ADMINPWD=admin1234567
# 唐僧叨叨的文件服务地址
TS_MINIO_UPLOADURL=http://minio:9000
6、运行启动
docker-compose up -d
7、运行启动成功后,浏览器访问
Web 端
http://{IP/域名}:52
❝登录手机号和密码可通过后台「新增用户」进行注册。
❞
后台管理端
http://{IP/域名}:52
❝默认用户名/密码:
❞superAdmin/admin1234567(密码为配置文件TS_ADMINPWD参数值).
功能体验
聊天界面
「私聊」

「群聊」

「暗黑主题」

「通讯录」

「个人信息」

后台管理
「首页」

「用户列表」

「好友列表」

「聊天记录」

「群列表」

「违禁词」

「设置」

TangSengDaoDaoServer 的开源特性意味着可以私有化部署,完全掌控数据安全,避免信息泄露风险,同时可根据业务需求进行定制开发。如果你正在寻找一款可靠的企业级即时通讯应用,不妨试试~
项目地址:https://github.com/TangSengDaoDao/TangSengDaoDaoServer
本文链接:https://www.jingber.cn/post/3864.html 转载需授权!

微信扫一扫,打赏作者吧~