feat: 新增wukongim、tangsengdaodao

This commit is contained in:
wanglihui 2024-10-16 21:57:27 +08:00
parent a3403bba46
commit b89421670a
13 changed files with 476 additions and 0 deletions

View File

@ -0,0 +1,146 @@
additionalProperties:
formFields:
- default: ""
envKey: EXTERNAL_IP
labelEn: External IP
labelZh: 外部访问IP
required: true
type: text
- default: ""
envKey: PANEL_DB_HOST
key: mysql
labelEn: Database Service
labelZh: 数据库服务
required: true
type: service
- default: tsdd
envKey: PANEL_DB_NAME
labelEn: Database
labelZh: 数据库名
random: true
required: true
rule: paramCommon
type: text
- default: tsdd
envKey: PANEL_DB_USER
labelEn: User
labelZh: 数据库用户
random: true
required: true
rule: paramCommon
type: text
- default: tsdd@123456
envKey: PANEL_DB_USER_PASSWORD
labelEn: Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: ""
edit: true
envKey: TS_DB_REDIS_HOST
key: redis
labelEn: Redis Service
labelZh: 缓存服务服务
required: true
type: service
- default: 6379
envKey: TS_DB_REDIS_PORT
labelEn: Redis Port
labelZh: 缓存服务端口
required: true
type: number
- default: ""
edit: true
envKey: TS_DB_REDISPASS
labelEn: Redis Service Password
labelZh: 缓存服务服务密码
required: true
rule: paramCommon
type: password
- default: ""
edit: true
envKey: MINIO_HOST
key: minio
labelEn: Minio Service
labelZh: minio对象存储服务
required: true
type: service
- default: 9000
envKey: MINIO_PORT
labelEn: minio port
labelZh: minio 端口
required: true
type: number
- default: ""
envKey: MINIO_ROOT_USER
labelEn: minio
labelZh: minio用户
random: true
required: true
rule: paramCommon
type: text
- default: ""
envKey: MINIO_ROOT_PASSWORD
labelEn: MinioPassword
labelZh: minio用户密码
random: true
required: true
rule: paramComplexity
type: password
- default: 5100
envKey: PANEL_APP_PORT_WK_TCP
labelEn: WuKongIM tcp port
labelZh: 悟空IM TCP端口
required: true
type: number
- default: 5200
envKey: PANEL_APP_PORT_WK_WS
labelEn: WuKongIM ws port
labelZh: 悟空IM WS端口
required: true
type: number
- default: 5300
envKey: PANEL_APP_PORT_WK_WEB_SERVER
labelEn: WuKongIM web port
labelZh: 悟空IM监控端口
required: true
type: number
- default: 123456
envKey: TS_SMSCODE
labelEn: SMS
labelZh: 唐僧叨叨短信验证码
required: true
type: number
- default: superAdmin
disabled: true
envKey: TS_ADMIN
labelEn: Super Admin User
labelZh: 唐僧叨叨超级管理员
required: true
type: text
- default: tsdd@123456
envKey: TS_ADMINPWD
labelEn: Admin Password
labelZh: 唐僧叨叨超级管理员默认密码
required: true
type: text
- default: 8090
envKey: PANEL_APP_PORT_TS_APP_HTTP
labelEn: TangSengDaoDao port
labelZh: 唐僧叨叨端口
required: true
type: number
- default: 82
envKey: PANEL_APP_PORT_TS_APP_WEB
labelEn: TangSengDaoDao web port
labelZh: 唐僧叨叨WEB端口
required: true
type: number
- default: 83
envKey: PANEL_APP_PORT_HTTP
labelEn: TangSengDaoDao Management background port
labelZh: 唐僧叨叨管理后台端口
required: true
type: number

View File

@ -0,0 +1,78 @@
version: '3.1'
services:
tsddwukongim: # 唐僧叨叨通讯服务悟空IM
container_name: ${CONTAINER_NAME}-wukongim
image: registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:v1.2
restart: always
ports:
- "${PANEL_APP_PORT_WK_TCP}:5100" # tcp长连接端口外网开放
- "${PANEL_APP_PORT_WK_WS}:5200" # websocket端口外网开放
- "${PANEL_APP_PORT_WK_WEB_SERVER}:5300" # 监控端口
volumes:
- ./wukongim:/root/wukongim
environment:
- WK_MODE=release
- WK_EXTERNAL_IP=${EXTERNAL_IP}
- WK_CONVERSATION_ON=true
- WK_WEBHOOK_GRPCADDR=tangsengdaodaoserver:6979
- WK_DATASOURCE_ADDR=http://tangsengdaodaoserver:8090/v1/datasource
- WK_DATASOURCE_CHANNELINFOON=true
- WK_TOKENAUTHON=true
networks:
- 1panel-network
tangsengdaodaoserver: # 唐僧叨叨的业务服务
container_name: ${CONTAINER_NAME}-tsdd-server
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:
- tsddwukongim
ports:
- "${PANEL_APP_PORT_TS_APP_HTTP}:8090"
volumes:
- ./tsdd:/home/tsdddata
# - ./tsdd/configs/tsdd.yaml:/home/configs/tsdd.yaml
environment:
- TS_MODE=release
- TS_WUKONGIM_APIURL=http://tsddwukongim:5001
- TS_DB_MYSQLADDR=${PANEL_DB_USER}:${PANEL_DB_USER_PASSWORD}@tcp(${PANEL_DB_HOST}:${PANEL_DB_PORT})/${PANEL_DB_NAME}?charset=utf8mb4&parseTime=true&loc=Local
- TS_DB_REDISADDR=${TS_DB_REDIS_HOST}:${TS_DB_REDIS_PORT}
- TS_DB_REDISPASS=${TS_DB_REDISPASS}
- TS_EXTERNAL_IP=${EXTERNAL_IP}
- TS_SMSCODE=${TS_SMSCODE}
- TS_ADMINPWD=${TS_ADMINPWD}
- TS_FILESERVICE=minio
- TS_MINIO_URL=http://${MINIO_HOST}:${MINIO_PORT}
- TS_MINIO_ACCESSKEYID=${MINIO_ROOT_USER}
- TS_MINIO_SECRETACCESSKEY=${MINIO_ROOT_PASSWORD}
- TS_AVATAR_DEFAULTBASEURL=https://api.multiavatar.com/{avatar}.png
networks:
- 1panel-network
tangsengdaodaoweb: # 唐僧叨叨的web服务
container_name: ${CONTAINER_NAME}-tsdd-web
image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoweb:latest
restart: always
environment:
- API_URL=http://${EXTERNAL_IP}:${PANEL_APP_PORT_TS_APP_HTTP}/
ports:
- "${PANEL_APP_PORT_TS_APP_WEB}:80"
networks:
- 1panel-network
tangsengdaodaomanager: # 唐僧叨叨的后台管理系统
container_name: ${CONTAINER_NAME}-tsdd-manager
image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaomanager:latest
restart: always
environment:
- API_URL=http://${EXTERNAL_IP}:${PANEL_APP_PORT_TS_APP_HTTP}/
ports:
- "${PANEL_APP_PORT_HTTP}:80"
networks:
- 1panel-network
networks:
1panel-network:
external: true

View File

@ -0,0 +1,40 @@
# 什么是唐僧叨叨
**唐僧叨叨**是一款`轻量级``高性能``重安全`专注于`私有化部署`的`开源`即时通讯系统。
## 特性
**唐僧叨叨**具备以下特性:
- 🆓 开源免费服务端源码APP源码Web/PC端源码全部开源Apache2.0开源协议(可商用),没人能拿捏你
- 🔏 私有化部署:所有程序和数据都在自己的服务器上,不用担心数据泄露,不用担心数据被用于其他用途
- 🆚 消息必达:采用 tcp + ack机制保证消息必达支持离线消息支持消息漫游。
- 🔐 内容安全消息传输采用私有二进制加密协议、DH+流式加密,防止消息内容泄露
- 💽 消息永久存储消息支持永久存储得益于WuKongIM的自研消息db永久存储不影响性能只浪费点磁盘空间
- 📱 多设备消息同步:支持 1 个移动端、多个 Web/PC 端同时在线时,并且支持多端之间的消息实时同步。
- 📟 全平台支持iOSAndroidWindowsMACUbuntuWeb
## 为什么选择唐僧叨叨
厂商 | Demo二开成本 | Web端同步 | 群人数 | 存储 | 开源 | 私有化部署
---|--- |--- |--- |--- |--- |---
<label style="color:red">唐僧叨叨</label> | <label style="color:red">运营级Demo换个皮就能直接上线运营</label> | <label style="color:red">所有操作实时同步 </label> | <label style="color:red">无限制</label> | <label style="color:red">永久</label>(自研消息数据库加持) | <label style="color:red"></label> | <label style="color:red">支持 </label>
网易云信 | Demo简单很多功能都只是做演示 | 无法同步 | 小于5000 | 30天/免费版 1年/专业版 | 否 | 未知
融云 | Demo简单离运营级还有距离 | 消息同步,设置不能同步 | 3000 | 7天 | 否 | 未知
环信 | Demo超简单开发成运营级产品成本高 | app与web互踢 | 3000 | 7天需联系商务 | 否 | 未知
腾讯云IM | Demo简单离运营级还有距离 | 大部分能实时同步 | 付费后最多扩展到6000人 | 30天/旗舰版 | 否 | 未知
## 唐僧叨叨的组成
**客户端**
主要是用户端使用 包括:[iOS](https://github.com/TangSengDaoDao/TangSengDaoDaoiOS)[Android](https://github.com/TangSengDaoDao/TangSengDaoDaoAndroid)[Web](https://github.com/TangSengDaoDao/TangSengDaoDaoWeb)[PC](https://github.com/TangSengDaoDao/TangSengDaoDaoWeb)
**服务端**
给客户端调用的后端系统 包括:通讯端([WuKongIM](https://github.com/WuKongIM/WuKongIM)),业务端([TangSengDaoDaoServer](https://github.com/TangSengDaoDao/TangSengDaoDaoServer))
**管理端**
[TangSengDaoDaoManager](https://github.com/TangSengDaoDao/TangSengDaoDaoManager)

View File

@ -0,0 +1,20 @@
name: TangSengDaoDao
tags:
- IM
title: 让企业轻松拥有自己的即时通讯
type: 工具
description: 让企业轻松拥有自己的即时通讯
additionalProperties:
key: tangsengdaodao
name: TangSengDaoDao
tags:
- Tool
shortDescZh: 让企业轻松拥有自己的即时通讯
shortDescEn: Make it easy for businesses to have their own instant messaging
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://tsdaodao.com/
github: https://github.com/TangSengDaoDao/TangSengDaoDaoServer
document: https://tsdaodao.com/

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

View File

@ -0,0 +1,39 @@
additionalProperties:
formFields:
- default: ""
envKey: EXTERNAL_IP
labelEn: ipAddress
labelZh: 外部访问IP
required: true
type: text
- default: 5001
envKey: PANEL_APP_PORT_WK_API
labelEn: WuKongIM api port
labelZh: 悟空IM api端口
required: true
type: number
- default: 5100
envKey: PANEL_APP_PORT_WK_TCP
labelEn: WuKongIM tcp port
labelZh: 悟空IM TCP端口
required: true
type: number
- default: 5200
envKey: PANEL_APP_PORT_WK_WS
labelEn: WuKongIM ws port
labelZh: 悟空IM WS端口
required: true
type: number
- default: "5300"
envKey: PANEL_APP_PORT_HTTP
labelEn: WuKongIM web port
labelZh: 悟空IM监控端口
required: true
type: number
- default: 5172
envKey: PANEL_APP_PORT_WK_DEMO_SERVER
labelEn: WuKongIM demo port
labelZh: 悟空IM demo端口
required: true
type: number

View File

@ -0,0 +1,27 @@
version: '1.1.8'
services:
wukongim:
container_name: ${CONTAINER_NAME}
image: registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:v1.2
restart: always
ports:
- "${PANEL_APP_PORT_WK_API}:5001"
- "${PANEL_APP_PORT_WK_TCP}:5100"
- "${PANEL_APP_PORT_WK_WS}:5200"
- "${PANEL_APP_PORT_HTTP}:5300"
- "${PANEL_APP_PORT_WK_DEMO_SERVER}:5172"
volumes:
- ./wukongim:/root/wukongim
environment:
- WK_MODE=release
- WK_EXTERNAL_IP=${EXTERNAL_IP}
- WK_CONVERSATION_ON=true
- WK_WEBHOOK_GRPCADDR=tangsengdaodaoserver:6979
- WK_DATASOURCE_ADDR=http://tangsengdaodaoserver:8090/v1/datasource
- WK_DATASOURCE_CHANNELINFOON=true
- WK_TOKENAUTHON=true
networks:
- 1panel-network
networks:
1panel-network:
external: true

View File

@ -0,0 +1,39 @@
additionalProperties:
formFields:
- default: ""
envKey: EXTERNAL_IP
labelEn: ipAddress
labelZh: 外部访问IP
required: true
type: text
- default: 5001
envKey: PANEL_APP_PORT_WK_API
labelEn: WuKongIM api port
labelZh: 悟空IM api端口
required: true
type: number
- default: 5100
envKey: PANEL_APP_PORT_WK_TCP
labelEn: WuKongIM tcp port
labelZh: 悟空IM TCP端口
required: true
type: number
- default: 5200
envKey: PANEL_APP_PORT_WK_WS
labelEn: WuKongIM ws port
labelZh: 悟空IM WS端口
required: true
type: number
- default: "5300"
envKey: PANEL_APP_PORT_HTTP
labelEn: WuKongIM web port
labelZh: 悟空IM监控端口
required: true
type: number
- default: 5172
envKey: PANEL_APP_PORT_WK_DEMO_SERVER
labelEn: WuKongIM demo port
labelZh: 悟空IM demo端口
required: true
type: number

View File

@ -0,0 +1,40 @@
version: '3.7'
services:
wukongim: # WuKongIM服务
container_name: ${CONTAINER_NAME}-wukongim
image: registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:v2.0.5-20240925
environment:
- "WK_CLUSTER_NODEID=1001"
- "WK_CLUSTER_SERVERADDR=${EXTERNAL_IP}:11110" # 节点内部通信请求地址
- "WK_TRACE_PROMETHEUSAPIURL=http://prometheus:9090" # prometheus监控地址
- "WK_MODE=release" # release模式
- "WK_EXTERNAL_IP=${EXTERNAL_IP}" # 服务器外网ip
healthcheck:
test: "wget -q -Y off -O /dev/null http://localhost:5001/health > /dev/null 2>&1"
interval: 10s
timeout: 10s
retries: 3
restart: always
volumes:
- ./wukongim_data:/root/wukongim # 数据挂载到物理机的目录
ports:
- ${PANEL_APP_PORT_WK_API}:5001 # http api 端口
- ${PANEL_APP_PORT_WK_TCP}:5100 # tcp端口
- ${PANEL_APP_PORT_WK_WS}:5200 # websocket端口
- ${PANEL_APP_PORT_HTTP}:5300 # 管理端端口
- ${PANEL_APP_PORT_WK_DEMO_SERVER}:5172 # demo端口
- 11110:11110 # 分布式节点通讯端口
networks:
- 1panel-network
prometheus: # 监控服务
container_name: ${CONTAINER_NAME}-prometheus
image: registry.cn-shanghai.aliyuncs.com/wukongim/prometheus:v2.53.1
volumes:
- "./prometheus.yml:/etc/prometheus/prometheus.yml"
ports:
- "9090:9090"
networks:
- 1panel-network
networks:
1panel-network:
external: true

View File

@ -0,0 +1,9 @@
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: wukongim1-trace-metrics
static_configs:
- targets: ['wukongim:5300']
labels:
id: "1001"

18
apps/wukongim/README.md Normal file
View File

@ -0,0 +1,18 @@
# 什么是悟空 IM
高性能通用即时通讯服务支持聊天应用消息推送物联网通讯音视频信令直播弹幕客服系统AI 通讯,即时社区等场景。
## 特性
悟空 IM 具备以下特性:
- 0⃣ **零依赖**:没有依赖任何第三方组件,部署简单,一条命令即可启动
- 📚 **完全自研**:自研消息数据库,消息分区永久存储,自研二进制协议,支持自定义协议
- 🔐 **安全**:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。
- 🚀 **性能强劲**性能强劲MAC 笔记本单机测试 16w 多/秒的消息(包含存储)吞吐量,频道支持万人同时订阅。
- 🧱 **扩展性强**:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。
- 🔗 **兼容性强**:同时无差别支持 tcpwebsocket。
## 问题反馈
如果在使用过程中发现任何问题、或者有改善建议,欢迎在 GitHub Issues 进行反馈https://github.com/WuKongIM/WuKongIM/issues

20
apps/wukongim/data.yml Normal file
View File

@ -0,0 +1,20 @@
name: WuKongIM
tags:
- IM
title: 让信息传递更简单
type: 工具
description: 让企业轻松拥有自己的即时通讯
additionalProperties:
key: wukongim
name: WuKongIM
tags:
- Tool
shortDescZh: 让信息传递更简单
shortDescEn: Make messaging easier
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://githubim.com/
github: https://github.com/TangSengDaoDao/TangSengDaoDaoServer
document: https://githubim.com/

BIN
apps/wukongim/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB