📈 GH Trending Explorer 🎲 Surprise me

← all repos

Buktal / dudu

git clone https://github.com/Buktal/dudu.git

开源多渠道客服系统,支持自托管、统一消息接待与企业权限管理。Open-source, self-hosted customer support with a unified inbox for WeChat, Telegram, WhatsApp and more. Apache-2.0.

+12
stars, 24h · #3,001
+~84
stars, 7 days · #2,561
+~360
stars, 30 days · #2,310
50
★ total · +84% this week
14
forks · 0 open issues

Star history (as recorded here)

2026-10-22 · 38 ★ 2026-10-23 · 50 ★
LanguageTypeScript
LicenseApache-2.0
Created2026-09-10 (1mo ago)
Last pushtoday
Watchers0
OwnerUser

GitHub topics

Links

README excerpt
# DuDu 嘟嘟|开源多渠道客服系统
**简体中文** | English
**将多个渠道的消息集中到同一坐席工作台,支持在自己的服务器上部署。**
DuDu 帮助客服团队统一接收渠道来信、查看会话历史、回复消息并维护来访资料。系统接入微信公众号、Telegram、WhatsApp 等平台的指定消息体系,按企业和用户组划分访问范围。
**体验接待导览** · 项目官网 · 部署与接入指南
*工作台界面示例,内容为演示数据。*
## 从哪里开始
| 您的目标 | 推荐入口 |
| --- | --- |
| 了解产品是否适合团队 | 接待导览:选择渠道来信、查看会话、模拟回复和查看来访资料 |
| 部署并使用系统 | 本地运行,再按使用指南配置企业与渠道 |
| 理解代码或参与开发 | 仓库组成、开发与参与及技术文档 |
导览采用固定示例数据,不连接服务端或真实渠道,是精简的产品介绍,并非真实在线试用。项目处于持续开发阶段,目前需要通过源码构建和自行部署使用,尚无正式发布包。
## 团队如何使用 DuDu
1. **配置团队与渠道。** 平台管理员开通企业;企业管理员配置员工、用户组和渠道账号。
2. **接收并回复消息。** 坐席登录工作台,在授权范围内查看会话、读取历史并发送纯文本回复。
3. **保留接待上下文。** 有权限的员工共享来访标签与内部备注,为后续接待提供必要信息。
工作台提供专注、并排、卡片三种布局,共享会话数据与草稿,支持浏览器访问和 Tauri 桌面构建。**MockPulse 是可选的开发联调工具,运行客服系统无需启动它。**
各应用的功能与界面介绍:Desk · Console · Admin · MockPulse · Server。
## 是否适合您的团队
DuDu 适合需要接入多个官方消息渠道、能够自行部署和维护系统、希望控制企业数据的团队。部署与渠道接入需要相应的开发和运维能力。
- **当前能力**:统一会话、搜索与筛选、历史记录、实时来信、纯文本回复、来访标签与内部备注,以及员工、渠道、企业和用户组权限管理。
- **当前限制**:暂不支持发送附件;接收非文本消息与读取媒体取决于具体渠道。不提供内置 OAuth 授权向导、自动连通检测或渠道健康监控。
- **上线准备**:部署方需完成渠道账号申请、平台审核、凭据配置与真实收发验证。参数填写完整不代表授权有效或生产环境已可收发。
已实现能力及验证范围见功能图谱。
## 渠道与限制
目前已实现 **13 种渠道接入**。每种接入对应下表中的指定体系,不代表该平台所有产品、事件和收发能力均可用。
 查看各渠道的接入体系与限制 
| 渠道 | 当前接入体系 / 主要边界 |
| --- | --- |
| 微信公众号 | 明文回调;不支持公众号 AES 模式 |
| 微信小程序 | 客服消息回调,支持明文与加密模式 |
| 企业微信 | 自建应用 agent;不支持 aibot |
| 钉钉 | HTTP 密文回调;不支持 Stream |
| 飞书 | HTTP Webhook;可选加密配置 |
| QQ | 机器人 Webhook;频道会话发送受限 |
| 微博 | 粉丝服务消息;发送需已有授权令牌 |
| 抖音 | 已实现的私信接入;发送需已有授权凭据 |
| 小红书 | 小程序客服消息体系 |
| 支付宝 | 生活号消息体系 |
| 美团 | 合作中心推送;仅 HTTP、80/8080 入口,须保留实际公网 Host |
| Telegram | Bot API Webhook;凭据轮换必须保持同一 Bot ID |
| WhatsApp | Cloud API Webhook;发送受平台权限与会话规则约束 |
详细字段与准备条件见渠道配置说明。渠道事实库研究范围比正式接入更广,研究过不等于已经接入。
## 仓库组成
| 子项目 | 使用者 / 职责 | 技术 |
| --- | --- | --- |
| DuduDesk | 坐席:接待、回复和来访资料 | React、TypeScript、Tauri 2 |
| DuduConsole | 企业管理员:员工、用户组、渠道账号 | React、TypeScript |
| DuduAdmin | 平台管理员:企业开通、运营概览和操作记录 | React、TypeScript |
| DUDU Server | 认证、授权、持久化、渠道适配及 HTTP/WebSocket | Java 21、Spring Boot 3.5、MyBatis-Plus、MySQL |
| MockPulse | 开发者:本地渠道回调模拟与协议联调 | React、Tauri 2、Rust |
各前端独立管理依赖,使用 Yarn 4、Vite、Tailwind CSS 和 shadcn。运行客服系统不需要启动 MockPulse;模拟平台回调时再使用它。
## 本地运行
以下步骤用于本地开发环境。管理端与工作台支持浏览器访问,无需安装 Rust。命令中的端口是本节显式指定的本地端口。
### 1. 准备环境
- Git、Java 21、Maven 3.9、Docker Compose。
- Node.js 22.12+;启用 Corepack,使用各子项目 `packageManager` 指定的 Yarn 4。
- 构建桌面端时,另按 Tauri 2 环境要求安装 Rust 和操作系统依赖。
 [code] 
### 2. 启动数据库和服务端
在仓库根目录启动开发 MySQL,再在同一终端启动 Server:
 [code] 
Server 监听 `8080`,Flyway 自动应用迁移。首次空库启动时创建平台管理员 **`admin` / `admin`**。Compose 的数据库口令及 Server 默认 JWT 密钥均仅用于本地开发;公开服务前必须更换,具体配置见 Server 部署说明。
### 3. 开通企业,再登录控制台和工作台
分别开启三个终端,分别从仓库根目录运行:
 [code] 
 [code] 
 [code] 
1. 打开 Admin,用本地平台管理员登录并开通企业,设置初始企业管理员,记录六位企业 ID。
2. 打开 Console,用企业 ID 和初始管理员登录,创建员工、用户组,添加成员,再接入渠道账号。
3. 打开 Desk,用企业 ID 和已分组员工登录。没有授权渠道账号时,空会话列表是正常状态。
4. 在渠道平台配置 Console 提供的回调地址;本地协议联调可使用 MockPulse。收到合法来信后,Desk 展示会话;回复还需要该渠道的发送凭据与平台权限。
三个前端开发服务器均将 `/api` 代理到本机 Server,Desk 另代理 `/ws`。生产 API 地址、WebSocket 与公开回调根地址的配置以各子项目 README 为准;上述启动命令不是生产部署方案。
## 开发与参与
问题和改进建议请提交到 Issues。报告问题时附上子项目、版本或提交号、复现步骤、预期与实际行为,以及脱敏后的错误信息;不要上传渠道