基于 JuggleIM 构建的可直接运营的 IM 业务服务。
无需从零开发业务层,即可拥有单聊、群聊、好友、登录、文件存储、翻译和机器人等完整能力。
了解 JuggleChat · 部署文档 · Gitee · English
大多数 IM 引擎解决的是消息收发问题,但一个真正可用的聊天产品还需要账号、好友、群组、登录和第三方服务等大量业务逻辑。JuggleChat 提供了客户端与 JuggleIM 之间开箱即用的业务层,帮助你更快交付完整的即时通讯产品,同时自主掌控基础设施和业务数据。
- 完整社交体验 — 账号、个人资料、好友申请、联系人、黑名单、群组、邀请、管理员、禁言和群公告。
- 多种登录方式 — 提供密码、短信、邮箱和二维码登录 API。
- 消息业务能力 — 消息撤回与删除、会话设置、业务通知和服务配置同步。
- 丰富扩展集成 — 兼容 S3 对象存储、MinIO、阿里云 OSS、七牛云、短信/邮件服务、翻译引擎、Telegram Bot 和 AI 助手回调。
- 全平台客户端 — 官方提供 Web、桌面、Android 和 iOS 客户端。
- 私有部署友好 — 基于 Go 与 MySQL,架构直观,并与开源 JuggleIM 服务无缝配合。
flowchart LR
C[Web · Desktop · Android · iOS] -->|业务 API| A[JuggleChat Server]
C <-->|消息与实时事件| I[JuggleIM Server]
A -->|用户 · 群组 · 消息操作| I
A --> D[(MySQL)]
A -.-> S[对象存储 · 短信 · 邮件 · 翻译 · 机器人]
本仓库包含 JuggleChat 业务服务及内置 Web 客户端;实时消息投递由 JuggleIM Server 提供。
- Go 1.23 或更高版本
- MySQL 8.0 或更高版本
- 已运行的 JuggleIM Server 实例
需要快速搭建 JuggleIM 时,请参考官方部署文档。
国内开发者推荐使用 Gitee:
git clone https://gitee.com/juggleim/jugglechat-server.git
cd jugglechat-server也可以从 GitHub 获取:
git clone https://github.com/juggleim/jugglechat-server.git
cd jugglechat-serverCREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;服务首次启动时会自动执行内置的数据库迁移。如需手动初始化当前表结构,可执行:
mysql -u<db_user> -p app_db < docs/appbusiness.sqlcp conf/config_example.yml conf/config.yml根据实际环境修改 conf/config.yml:
port: 8070
callbackPort: 8060
log:
logPath: ./logs
logName: jugglechat-server
mysql:
user: <db_user>
password: <db_password>
address: 127.0.0.1:3306
name: app_db
# JuggleIM Server API 地址
imApiDomain: http://127.0.0.1:9001go run main.go启动后,业务 API 地址为 http://localhost:8070/jim,内置 Web 客户端地址为 http://localhost:8070/。
构建 Linux 静态二进制文件:
sh build.sh所有业务接口统一使用 /jim 前缀。
| 模块 | 主要能力 |
|---|---|
| 登录认证 | 密码、短信、邮箱、二维码登录与用户注册 |
| 用户 | 资料、设置、账号绑定、搜索、在线状态和黑名单 |
| 好友 | 申请、审批、联系人、备注、搜索和删除 |
| 群组 | 创建、邀请、申请、成员、角色、禁言和历史消息设置 |
| 消息 | 撤回与删除 |
| 会话 | 会话级设置 |
| 扩展集成 | 文件凭证、翻译、Telegram Bot 和助手回调 |
完整路由列表请查看 routers/router.go。
使用官方客户端,为不同平台提供一致的聊天体验:
| 平台 | 项目地址 |
|---|---|
| Web | jugglechat-web |
| 桌面端 | jugglechat-desktop |
| Android | jugglechat-android |
| iOS | jugglechat-ios |
├── apis/ # HTTP 处理器与请求/响应模型
├── commons/ # 配置、数据库、第三方服务与公共工具
├── conf/ # 配置模板
├── docs/ # 数据库表结构
├── routers/ # API 路由与内置 Web 客户端
├── services/ # 业务逻辑
└── storages/ # 数据访问与持久化模型
欢迎提交 Issue 和 Pull Request:
- 查看已有 Issues,或提交一个目标明确的新提议。
- Fork 本仓库并创建功能分支。
- 保持改动聚焦,并在本地完成验证。
- 提交 Pull Request,清楚说明改动动机和行为变化。
如果 JuggleChat 帮你节省了时间,欢迎为项目点一个 Star。你的支持能让更多开发者发现它,也会激励社区持续完善项目。
JuggleChat Server 基于 Apache License 2.0 开源。