diff --git a/apps/tangsengdaodao/1.5/data.yml b/apps/tangsengdaodao/1.5/data.yml new file mode 100644 index 00000000..9d376ea9 --- /dev/null +++ b/apps/tangsengdaodao/1.5/data.yml @@ -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 diff --git a/apps/tangsengdaodao/1.5/docker-compose.yml b/apps/tangsengdaodao/1.5/docker-compose.yml new file mode 100644 index 00000000..7ed205e5 --- /dev/null +++ b/apps/tangsengdaodao/1.5/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/apps/tangsengdaodao/README.md b/apps/tangsengdaodao/README.md new file mode 100644 index 00000000..ecf39d8f --- /dev/null +++ b/apps/tangsengdaodao/README.md @@ -0,0 +1,40 @@ +# 什么是唐僧叨叨 + +**唐僧叨叨**是一款`轻量级`,`高性能`,`重安全`专注于`私有化部署`的`开源`即时通讯系统。 + +## 特性 + +**唐僧叨叨**具备以下特性: + +- 🆓 开源免费:服务端源码,APP源码,Web/PC端源码全部开源,Apache2.0开源协议(可商用),没人能拿捏你 +- 🔏 私有化部署:所有程序和数据都在自己的服务器上,不用担心数据泄露,不用担心数据被用于其他用途 +- 🆚 消息必达:采用 tcp + ack机制,保证消息必达,支持离线消息,支持消息漫游。 +- 🔐 内容安全:消息传输采用私有二进制加密协议、DH+流式加密,防止消息内容泄露 +- 💽 消息永久存储:消息支持永久存储,得益于WuKongIM的自研消息db,永久存储不影响性能,只浪费点磁盘空间 +- 📱 多设备消息同步:支持 1 个移动端、多个 Web/PC 端同时在线时,并且支持多端之间的消息实时同步。 +- 📟 全平台支持:iOS,Android,Windows,MAC,Ubuntu,Web + +## 为什么选择唐僧叨叨 + +厂商 | Demo二开成本 | Web端同步 | 群人数 | 存储 | 开源 | 私有化部署 +---|--- |--- |--- |--- |--- |--- + | | | | (自研消息数据库加持) | | +网易云信 | 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) diff --git a/apps/tangsengdaodao/data.yml b/apps/tangsengdaodao/data.yml new file mode 100644 index 00000000..2c56ad90 --- /dev/null +++ b/apps/tangsengdaodao/data.yml @@ -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/ diff --git a/apps/tangsengdaodao/logo.png b/apps/tangsengdaodao/logo.png new file mode 100644 index 00000000..2cfe3682 Binary files /dev/null and b/apps/tangsengdaodao/logo.png differ diff --git a/apps/wukongim/1.2/data.yml b/apps/wukongim/1.2/data.yml new file mode 100644 index 00000000..0077dae8 --- /dev/null +++ b/apps/wukongim/1.2/data.yml @@ -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 + diff --git a/apps/wukongim/1.2/docker-compose.yml b/apps/wukongim/1.2/docker-compose.yml new file mode 100644 index 00000000..f7c80786 --- /dev/null +++ b/apps/wukongim/1.2/docker-compose.yml @@ -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 diff --git a/apps/wukongim/2.0.5/data.yml b/apps/wukongim/2.0.5/data.yml new file mode 100644 index 00000000..0077dae8 --- /dev/null +++ b/apps/wukongim/2.0.5/data.yml @@ -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 + diff --git a/apps/wukongim/2.0.5/docker-compose.yml b/apps/wukongim/2.0.5/docker-compose.yml new file mode 100644 index 00000000..e65630ee --- /dev/null +++ b/apps/wukongim/2.0.5/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/apps/wukongim/2.0.5/prometheus.yml b/apps/wukongim/2.0.5/prometheus.yml new file mode 100644 index 00000000..0b29224b --- /dev/null +++ b/apps/wukongim/2.0.5/prometheus.yml @@ -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" \ No newline at end of file diff --git a/apps/wukongim/README.md b/apps/wukongim/README.md new file mode 100644 index 00000000..b46bb8f9 --- /dev/null +++ b/apps/wukongim/README.md @@ -0,0 +1,18 @@ +# 什么是悟空 IM + +高性能通用即时通讯服务,支持聊天应用,消息推送,物联网通讯,音视频信令,直播弹幕,客服系统,AI 通讯,即时社区等场景。 + +## 特性 + +悟空 IM 具备以下特性: + +- 0⃣️ **零依赖**:没有依赖任何第三方组件,部署简单,一条命令即可启动 +- 📚 **完全自研**:自研消息数据库,消息分区永久存储,自研二进制协议,支持自定义协议 +- 🔐 **安全**:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。 +- 🚀 **性能强劲**:性能强劲,MAC 笔记本单机测试 16w 多/秒的消息(包含存储)吞吐量,频道支持万人同时订阅。 +- 🧱 **扩展性强**:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。 +- 🔗 **兼容性强**:同时无差别支持 tcp,websocket。 + +## 问题反馈 + +如果在使用过程中发现任何问题、或者有改善建议,欢迎在 GitHub Issues 进行反馈:https://github.com/WuKongIM/WuKongIM/issues \ No newline at end of file diff --git a/apps/wukongim/data.yml b/apps/wukongim/data.yml new file mode 100644 index 00000000..01b94852 --- /dev/null +++ b/apps/wukongim/data.yml @@ -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/ diff --git a/apps/wukongim/logo.png b/apps/wukongim/logo.png new file mode 100644 index 00000000..3ee5b050 Binary files /dev/null and b/apps/wukongim/logo.png differ