diff --git a/docs-site/docs/.vitepress/config.ts b/docs-site/docs/.vitepress/config.ts
index 31652d5..bf15f7f 100644
--- a/docs-site/docs/.vitepress/config.ts
+++ b/docs-site/docs/.vitepress/config.ts
@@ -13,7 +13,6 @@ export default defineConfig({
nav: [
{ text: '快速开始', link: '/guide/quickstart' },
- { text: '演示项目', link: '/demo/' },
{
text: 'SDK',
items: [
@@ -37,9 +36,6 @@ export default defineConfig({
{ text: '平台概念', link: '/guide/concepts' },
{ text: '接入流程', link: '/guide/flow' },
],
- '/demo/': [
- { text: '演示项目', link: '/demo/' },
- ],
'/android/': [
{ text: '概览', link: '/android/' },
{ text: '安装配置', link: '/android/setup' },
diff --git a/docs-site/docs/demo/index.md b/docs-site/docs/demo/index.md
deleted file mode 100644
index 08930bf..0000000
--- a/docs-site/docs/demo/index.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# 演示项目
-
-下面这些入口对应当前仓库里的可用演示物料。
-
-## 移动端
-
-
-
-
Android SDK Sample App
-
适合验证 Android SDK 的 IM、推送和更新能力。
-

-
下载 APK
-
-
-
-
RN Chat Demo
-
适合验证 React Native 演示项目和服务端 demo 数据。
-

-
下载 APK
-
-
-
-
Flutter Chat Demo
-
Flutter 端 IM + 推送演示,支持 Android / iOS 双端。
-

-
下载 APK(Android)
-
-
-
-## Web
-
-
-
-
租户控制台
-
登录后可直接进入应用管理、IM、推送管理、版本管理等页面。
-
- 打开控制台
-
-
-
-
-
IM 演示页
-
基于 Vue3 SDK 的在线 IM 聊天演示,可直接体验消息收发。
-
- 打开 IM 演示页
-
-
-
-
-
H5 SDK 在线演示
-
纯 JS 环境下的 IM 接入示例,框架无关,可查看源码参考。
-
- H5 SDK 文档
- ·
- API 速查
-
-
-
-
-## 服务端示例
-
-
-
-
Go 服务端示例
-
使用 Go Server SDK 发送 IM 消息和 Push 推送的完整示例。
-
- Go SDK 文档
-
-
-
-
-
Java 服务端示例
-
使用 Java Server SDK 集成 IM 和 Push 的 Spring Boot 示例。
-
- Java SDK 文档
-
-
-
-
-
Python 服务端示例
-
使用 Python Server SDK 发送消息和推送的示例脚本。
-
- Python SDK 文档
-
-
-
-
-
diff --git a/docs-site/docs/guide/flow.md b/docs-site/docs/guide/flow.md
index 0cb4aa2..9ef0dab 100644
--- a/docs-site/docs/guide/flow.md
+++ b/docs-site/docs/guide/flow.md
@@ -1,131 +1,55 @@
# 接入流程
-完整的 XuqmGroup SDK 接入流程,从注册账号到客户端收发消息。
+本文说明公有化和私有化两种接入流程。
----
+## 公有化流程
-## 1. 注册开发者账号
+1. 访问 。
+2. 注册开发者账号。
+3. 创建应用并获取 `appKey`。
+4. 业务服务端保存 `appSecret`。
+5. 客户端使用公有化 SDK 初始化。
+6. 业务服务端签发 `UserSig`。
+7. 客户端登录 SDK 并开始收发消息。
-1. 访问 [XuqmGroup 控制台](https://dev.xuqinmin.com)
-2. 点击注册,填写企业/个人信息
-3. 完成邮箱/手机验证
+## 私有化流程
----
+1. 运维在私有化部署仓库执行一键部署。
+2. 部署脚本使用用户提供的 MySQL、Redis、域名、证书、SMTP 和厂商凭证完成配置。
+3. 系统初始化内置主租户、运营管理员和默认应用。
+4. 文档站生成私有化 SDK 接入示例。
+5. 客户端集成私有化 SDK。
+6. 客户端使用 `xuqm-private-sdk.json` 初始化。
+7. 业务服务端签发 `UserSig`。
+8. 客户端登录 SDK 并使用 IM、Push、Update、File、License 能力。
-## 2. 创建应用
+## 服务端签发 UserSig
-1. 登录控制台 → 应用管理 → 创建应用
-2. 填写应用名称、平台类型(Android / iOS / Web / RN / 小程序 / HarmonyOS)
-3. 创建成功后获得:
- - `appKey`(客户端使用)
+服务端可以通过服务端 SDK 本地生成 `UserSig`,也可以调用平台接口生成。`appSecret` 必须只保存在服务端。
----
-
-## 3. 获取 AppKey
-
-在应用详情页复制 `appKey`,用于客户端 SDK 初始化:
-
-```kotlin
-// Android
-XuqmSDK.initialize(context, appKey = "your_app_key")
+```text
+业务服务端
+ -> 持有 appKey / appSecret
+ -> 根据业务用户 ID 签发 UserSig
+ -> 返回给客户端
```
-```swift
-// iOS
-XuqmSDK.shared.initialize(config: config)
-```
+## 客户端登录
-```ts
-// Vue3 / Web
-```
-
----
-
-## 4. 服务端签发 UserSig
-
-服务端可以通过 SDK 本地生成 `UserSig`,也可以通过 IM 管理页生成并校验。
-如果账号需要用于服务端 SDK / 管理端 REST API,请把该注册用户标记为管理员。
-
-### 签发逻辑(示例)
-
-```ts
-// Node.js
-import jwt from 'jsonwebtoken'
-
- return jwt.sign(
- { userId, appKey, iat: Math.floor(Date.now() / 1000) },
- appSecret,
- { algorithm: 'HS256', expiresIn: '180d' }
- )
-}
-```
-
-```python
-# Python
-import jwt
-import time
-
-def generate_user_sig(user_id: str, app_key: str, app_secret: str) -> str:
- return jwt.encode(
- {"userId": user_id, "appKey": app_key, "iat": int(time.time())},
- app_secret,
- algorithm="HS256"
- )
-```
-
-```go
-// Go
-import "github.com/golang-jwt/jwt/v5"
-import "time"
-
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
- "userId": userID,
- "appKey": appKey,
- "iat": time.Now().Unix(),
- })
-}
-```
-
-### 接口设计建议
-
-```
-POST /api/auth/xuqm-login
-Headers: Authorization: Bearer {your-app-auth-token}
-Body: { "userId": "user_001" }
-Response: { "userSig": "jwt_token_string" }
-```
-
----
-
-## 5. 客户端接入 SDK
-
-### 登录流程
-
-```
+```text
客户端
- → 业务登录(用户名/密码)
- → 业务服务端验证成功
- → 返回 userSig 给客户端
- → 客户端调用 XuqmSDK.login(userId, userSig)
- → 开始收发消息
+ -> 业务登录成功
+ -> 获取 userSig
+ -> XuqmSDK.login(userId, userSig)
+ -> IM WebSocket 连接
+ -> Push / Update / License 模块按需工作
```
-### 各平台接入
+## 私有化注意事项
-| 平台 | 文档 |
-|------|------|
-| Android | [Android SDK →](/android/) |
-| iOS | [iOS SDK →](/ios/) |
-| React Native | [RN SDK →](/rn/) |
-| Vue3 / Web | [Vue3 SDK →](/vue3/) |
-| HarmonyOS | [HarmonyOS SDK →](/harmony/) |
-| 微信小程序 | [小程序 SDK →](/miniprogram/) |
+1. 私有化环境不开放主租户注册。
+2. 私有化 SDK 不使用 `dev.xuqinmin.com` 作为默认地址。
+3. 厂商推送和应用市场自动发布需要客户网络放通厂商公网 API。
+4. MySQL、Redis 由客户提供,部署脚本只做连接校验。
----
-
-## 安全提示
-
-- 所有 API 通信使用 HTTPS
-- UserSig 当前版本不过期,业务方可自行控制签发逻辑
-
-[→ 快速开始 →](./quickstart)
+[快速开始](./quickstart)
diff --git a/docs-site/docs/guide/quickstart.md b/docs-site/docs/guide/quickstart.md
index 0e28ce9..7154cc7 100644
--- a/docs-site/docs/guide/quickstart.md
+++ b/docs-site/docs/guide/quickstart.md
@@ -2,117 +2,100 @@
5 分钟接入 XuqmGroup IM,实现消息收发。
-## 1. 注册账号与创建应用
+## 1. 选择部署形态
-1. 访问 [XuqmGroup 控制台](https://dev.xuqinmin.com)
-2. 注册开发者账号,创建应用
-3. 记录 `appKey`
+| 形态 | 适用场景 | SDK |
+|------|----------|-----|
+| 公有化 | 使用 XuqmGroup 公有云控制台 | 当前公有化 SDK |
+| 私有化 | 使用客户独立部署环境 | 独立私有化 SDK |
-## 2. 选择你的平台
+公有化控制台地址:
+
+私有化环境由部署仓库生成控制台地址、文档站地址和 `xuqm-private-sdk.json`,接入时以客户环境输出为准。
+
+## 2. 创建或获取应用
+
+公有化:
+
+1. 登录公有化控制台。
+2. 注册开发者账号。
+3. 创建应用并记录 `appKey`。
+
+私有化:
+
+1. 使用部署时内置的主租户登录客户控制台。
+2. 使用初始化默认应用,或在控制台创建新应用。
+3. 下载或读取 `xuqm-private-sdk.json`。
+
+## 3. 选择平台
### 客户端 SDK
-| 平台 | 推荐接入方式 |
-|------|------------|
-| Android | [Android SDK →](/android/) |
-| iOS | [iOS SDK →](/ios/) |
-| React Native | [RN SDK →](/rn/) |
-| Vue3 / Web | [Vue3 SDK →](/vue3/) |
-| HarmonyOS | [HarmonyOS SDK →](/harmony/) |
-| Flutter | [Flutter SDK →](/flutter/) |
-| 微信小程序 | [小程序 SDK →](/miniprogram/) |
-| H5 / 纯 JS | [H5 SDK →](/h5/) |
+| 平台 | 接入文档 |
+|------|----------|
+| Android | [Android SDK](/android/) |
+| iOS | [iOS SDK](/ios/) |
+| React Native | [RN SDK](/rn/) |
+| Vue3 / Web | [Vue3 SDK](/vue3/) |
+| HarmonyOS | [HarmonyOS SDK](/harmony/) |
+| Flutter | [Flutter SDK](/flutter/) |
+| 微信小程序 | [小程序 SDK](/miniprogram/) |
+| H5 / 纯 JS | [H5 SDK](/h5/) |
### 服务端 SDK
-| 语言 | 接入方式 |
-|------|---------|
-| Go | [Go Server SDK →](/server/go-sdk) |
-| Java | [Java Server SDK →](/server/java-sdk) |
-| Python | [Python Server SDK →](/server/python-sdk) |
+| 语言 | 接入文档 |
+|------|----------|
+| Go | [Go Server SDK](/server/go-sdk) |
+| Java | [Java Server SDK](/server/java-sdk) |
+| Python | [Python Server SDK](/server/python-sdk) |
-## 3. 接入流程
+## 4. 公有化初始化
-```
-你的业务服务端
- → 持有 appSecret
- → 调用 IM 登录接口换取 IM Token(或签发 UserSig JWT)
- → 平台内部协议字段由 SDK 和后端自动处理,业务方无需感知
- → 返回 Token / UserSig 给客户端
-
-客户端 SDK
- → 使用 appKey 初始化
- → 使用 Token / UserSig 登录 IM
- → 开始收发消息
+```kotlin
+XuqmSDK.initialize(
+ context = this,
+ appKey = "ak_your_app_key"
+)
```
-> **安全提示**:appSecret 应仅在你的服务端持有,不应下发给客户端。
+## 5. 私有化初始化
----
+私有化 SDK 使用部署仓库生成的本地 JSON 初始化:
-## 4. Android Demo 运行说明
-
-### 环境要求
-
-- Android Studio Ladybug(2024.2.1)或更高版本
-- JDK 21
-- Android 模拟器或真机(API 24+)
-
-### 运行步骤
-
-1. 打开 `XuqmGroup-AndroidSDK` 目录为 Android Studio 项目
-2. 等待 Gradle Sync 完成(首次可能需要下载依赖)
-3. 在 `sample-app/src/main/java/.../MainActivity.kt` 或对应配置中修改服务器地址(如需连接本地环境)
-4. 选择模拟器或真机,点击 **Run 'sample-app'**
-
-### 关键路径
-
-```
-APK 输出:XuqmGroup-AndroidSDK/sample-app/build/outputs/apk/debug/sample-app-debug.apk
-主 Activity:com.xuqm.sdk.sample.MainActivity
-包名:com.xuqm.demo
+```kotlin
+XuqmPrivateSDK.initialize(
+ context = this,
+ configAsset = "xuqm-private-sdk.json"
+)
```
-### 常用命令
+JSON 内容由私有化部署仓库生成,示例:
-```bash
-# 构建全量 SDK + App
-cd XuqmGroup-AndroidSDK && ./gradlew clean build
-
-# 安装到指定设备
-adb -s emulator-5556 install -r sample-app/build/outputs/apk/debug/sample-app-debug.apk
-
-# 查看 IM 日志
-adb -s emulator-5556 logcat -d "*:S" XuqmImSDK:D XuqmImClient:D 2>/dev/null | tail -30
+```json
+{
+ "schemaVersion": 1,
+ "deployment": "PRIVATE",
+ "appKey": "ak_private_default",
+ "controlBaseUrl": "https://tenant.customer.com",
+ "imApiBaseUrl": "https://im.customer.com",
+ "imWsUrl": "wss://im.customer.com/ws/im",
+ "pushBaseUrl": "https://push.customer.com",
+ "updateBaseUrl": "https://update.customer.com",
+ "fileBaseUrl": "https://file.customer.com",
+ "licenseBaseUrl": "https://license.customer.com"
+}
```
----
+## 6. 登录与收发消息
-## 5. iOS Demo 运行说明
-
-### 环境要求
-
-- Xcode 16.0 或更高版本
-- iOS 18 模拟器或真机(最低支持 iOS 14)
-- Swift 5.9+
-
-### 运行步骤
-
-1. 打开 `XuqmGroup-iOSSDK/XuqmDemo/XuqmDemo.xcodeproj`(或 `.xcworkspace`)
-2. 等待 Swift Package Manager 依赖解析完成
-3. 在 Xcode 顶部选择目标模拟器(如 iPhone 16 Pro)或连接的真机
-4. 点击 **Run**(⌘+R)
-
-### 关键路径
-
-```
-Demo 工程:XuqmGroup-iOSSDK/XuqmDemo/XuqmDemo.xcodeproj
-SDK 源码:XuqmGroup-iOSSDK/Sources/XuqmSDK/
-单元测试:XuqmGroup-iOSSDK/Tests/
+```text
+业务客户端
+ -> 调用业务登录
+ -> 业务服务端签发 UserSig
+ -> 客户端调用 SDK login
+ -> IM 连接建立
+ -> 收发消息、推送、更新、License 能力按模块启用
```
-### 常见问题
-
-- **SPM 依赖下载慢**:检查网络或更换 Xcode → Preferences → Accounts → Git 配置
-- **真机运行失败**:确保 Apple Developer Account 已配置 Signing & Capabilities
-- **Push 测试**:模拟器不支持 APNs,Push 功能需在真机测试
+安全要求:`appSecret` 只能保存在业务服务端,不允许下发到客户端。
diff --git a/docs-site/docs/index.md b/docs-site/docs/index.md
index 3f90ba5..fb93435 100644
--- a/docs-site/docs/index.md
+++ b/docs-site/docs/index.md
@@ -8,9 +8,6 @@ hero:
- theme: brand
text: 快速开始
link: /guide/quickstart
- - theme: alt
- text: 演示项目
- link: /demo/
- theme: alt
text: 平台控制台
link: https://dev.xuqinmin.com
@@ -52,8 +49,4 @@ features:
title: 服务端 API
details: 完整 REST API 速查,IM 实时连接协议说明
link: /server/api
- - icon: 📱
- title: 演示项目
- details: 手机端扫码下载演示包,Web 端直接跳转到对应页面
- link: /demo/
---
diff --git a/docs-site/docs/public/demo/android-sdk-sample-app.apk b/docs-site/docs/public/demo/android-sdk-sample-app.apk
deleted file mode 100644
index 319f55e..0000000
Binary files a/docs-site/docs/public/demo/android-sdk-sample-app.apk and /dev/null differ
diff --git a/docs-site/docs/public/demo/rn-chat-demo.apk b/docs-site/docs/public/demo/rn-chat-demo.apk
deleted file mode 100644
index d1b1df6..0000000
--- a/docs-site/docs/public/demo/rn-chat-demo.apk
+++ /dev/null
@@ -1 +0,0 @@
-This is a placeholder APK payload for demo update flow.
diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md
deleted file mode 100644
index 245327e..0000000
--- a/docs/DEPLOY.md
+++ /dev/null
@@ -1,279 +0,0 @@
-# 部署文档
-
-## 一、基础设施要求
-
-| 组件 | 版本 | 说明 |
-|------|------|------|
-| JDK | 21 | GraalVM 或 Eclipse Temurin |
-| MySQL | 8.0+ | 4 个独立数据库 |
-| Redis | 7.x | 验证码、会话标记 |
-| Nginx | 1.24+ | 前端静态 + API 反代 |
-| Maven | 3.9+ | 后端构建 |
-| Node.js | 22+ | 前端构建 |
-
----
-
-## 二、数据库初始化
-
-服务启动时通过 `ddl-auto: update` 自动建表,只需提前创建数据库:
-
-```sql
-CREATE DATABASE xuqm_tenant CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-CREATE DATABASE xuqm_im CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-CREATE DATABASE xuqm_push CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-CREATE DATABASE xuqm_update CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-```
-
----
-
-## 三、后端构建与启动
-
-### 构建
-
-```bash
-cd XuqmGroup-Server
-mvn clean package -DskipTests
-```
-
-各模块 jar 生成于 `{module}/target/{module}-0.1.0-SNAPSHOT.jar`。
-
-### 环境变量
-
-**tenant-service**(:8081)
-```bash
-export SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/xuqm_tenant?...
-export SPRING_DATASOURCE_USERNAME=xuqm
-export SPRING_DATASOURCE_PASSWORD=your_db_password
-export SPRING_DATA_REDIS_HOST=redis
-export SPRING_MAIL_USERNAME=noreply@xuqm.com
-export SPRING_MAIL_PASSWORD=your_smtp_password
-export JWT_SECRET=your_256bit_secret
-export OPS_ADMIN_USERNAME=admin
-export OPS_ADMIN_PASSWORD=your_ops_password
-```
-
-**im-service**(:8082)
-```bash
-export SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/xuqm_im?...
-export SPRING_DATASOURCE_USERNAME=xuqm
-export SPRING_DATASOURCE_PASSWORD=your_db_password
-export SPRING_DATA_REDIS_HOST=redis
-export JWT_SECRET=your_256bit_secret_im
-```
-
-**push-service**(:8083)
-```bash
-export SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/xuqm_push?...
-export SPRING_DATASOURCE_USERNAME=xuqm
-export SPRING_DATASOURCE_PASSWORD=your_db_password
-export JWT_SECRET=your_256bit_secret_push
-# 华为推送
-export HUAWEI_APP_ID=your_huawei_app_id
-export HUAWEI_APP_SECRET=your_huawei_secret
-# 小米推送
-export XIAOMI_APP_SECRET=your_xiaomi_secret
-# iOS APNs
-export APNS_KEY_ID=your_key_id
-export APNS_TEAM_ID=your_team_id
-export APNS_KEY_PATH=/opt/xuqm/apns_key.p8
-export APNS_BUNDLE_ID=com.yourcompany.app
-```
-
-**update-service**(:8084)
-```bash
-export SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/xuqm_update?...
-export SPRING_DATASOURCE_USERNAME=xuqm
-export SPRING_DATASOURCE_PASSWORD=your_db_password
-export JWT_SECRET=your_256bit_secret_update
-export UPDATE_UPLOAD_DIR=/data/xuqm/update
-export UPDATE_BASE_URL=https://update.xuqm.com
-```
-
-### 启动
-
-```bash
-java -jar tenant-service/target/tenant-service-*.jar &
-java -jar im-service/target/im-service-*.jar &
-java -jar push-service/target/push-service-*.jar &
-java -jar update-service/target/update-service-*.jar &
-```
-
----
-
-## 四、前端构建与部署
-
-```bash
-cd XuqmGroup-Web
-yarn install
-yarn workspace tenant-platform build # dist/ → /var/www/tenant
-yarn workspace ops-platform build # dist/ → /var/www/ops
-```
-
-### Nginx 配置
-
-```nginx
-# 租户开放平台
-server {
- listen 80;
- server_name tenant.xuqm.com;
- root /var/www/tenant;
- index index.html;
-
- location / {
- try_files $uri $uri/ /index.html;
- }
-
- location /api/ {
- proxy_pass http://127.0.0.1:8081/api/;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- }
-}
-
-# 运营管理平台
-server {
- listen 80;
- server_name ops.xuqm.com;
- root /var/www/ops;
- index index.html;
-
- location / {
- try_files $uri $uri/ /index.html;
- }
-
- location /api/ {
- proxy_pass http://127.0.0.1:8081/api/;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- }
-}
-
-# IM WebSocket 反代
-server {
- listen 80;
- server_name im.xuqm.com;
-
- location /ws/im {
- proxy_pass http://127.0.0.1:8082;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- proxy_read_timeout 86400;
- }
-
- location /api/im/ {
- proxy_pass http://127.0.0.1:8082/api/im/;
- }
-}
-
-# 版本管理文件服务
-server {
- listen 80;
- server_name update.xuqm.com;
-
- location / {
- proxy_pass http://127.0.0.1:8084/;
- }
-}
-```
-
----
-
-## 五、Docker Compose(可选)
-
-```yaml
-version: '3.9'
-
-services:
- mysql:
- image: mysql:8.0
- environment:
- MYSQL_ROOT_PASSWORD: root
- MYSQL_USER: xuqm
- MYSQL_PASSWORD: xuqm_password
- volumes:
- - mysql_data:/var/lib/mysql
- ports:
- - "3306:3306"
-
- redis:
- image: redis:7-alpine
- ports:
- - "6379:6379"
-
- tenant-service:
- image: eclipse-temurin:21-jre
- volumes:
- - ./XuqmGroup-Server/tenant-service/target:/app
- command: java -jar /app/tenant-service-0.1.0-SNAPSHOT.jar
- environment:
- SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/xuqm_tenant?...
- SPRING_DATA_REDIS_HOST: redis
- ports:
- - "8081:8081"
- depends_on: [mysql, redis]
-
- im-service:
- image: eclipse-temurin:21-jre
- volumes:
- - ./XuqmGroup-Server/im-service/target:/app
- command: java -jar /app/im-service-0.1.0-SNAPSHOT.jar
- ports:
- - "8082:8082"
- depends_on: [mysql, redis]
-
- push-service:
- image: eclipse-temurin:21-jre
- volumes:
- - ./XuqmGroup-Server/push-service/target:/app
- command: java -jar /app/push-service-0.1.0-SNAPSHOT.jar
- ports:
- - "8083:8083"
- depends_on: [mysql]
-
- update-service:
- image: eclipse-temurin:21-jre
- volumes:
- - ./XuqmGroup-Server/update-service/target:/app
- - update_files:/data/xuqm/update
- command: java -jar /app/update-service-0.1.0-SNAPSHOT.jar
- environment:
- UPDATE_UPLOAD_DIR: /data/xuqm/update
- ports:
- - "8084:8084"
- depends_on: [mysql]
-
-volumes:
- mysql_data:
- update_files:
-```
-
----
-
-## 六、发版流程汇总
-
-| 平台 | 步骤 |
-|------|------|
-| **后端** | `mvn clean package` → 替换 jar → 重启服务 |
-| **前端** | `yarn build` → 替换 `dist/` → Nginx 无需重启 |
-| **Android SDK** | 修改版本号 → `./gradlew publish` → Nexus |
-| **iOS SDK (SPM)** | 修改版本号 → `git tag x.y.z && git push origin x.y.z` |
-| **iOS SDK (CocoaPods)** | `pod repo push xuqm-specs XuqmSDK.podspec` |
-| **RN SDK** | 修改 `package.json` version → `npm publish` |
-| **Vue3 SDK** | 修改 `package.json` version → `npm run build && npm publish` |
-| **HarmonyOS SDK** | 修改 `oh-package.json5` version → `ohpm publish` |
-
----
-
-## 七、健康检查
-
-各服务均暴露 Spring Actuator 端点:
-
-```bash
-curl http://localhost:8081/actuator/health
-curl http://localhost:8082/actuator/health
-curl http://localhost:8083/actuator/health
-curl http://localhost:8084/actuator/health
-```
-
-正常返回:`{"status":"UP"}`
diff --git a/docs/PLATFORM_OVERVIEW.md b/docs/PLATFORM_OVERVIEW.md
deleted file mode 100644
index 6cda91b..0000000
--- a/docs/PLATFORM_OVERVIEW.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# XuqmGroup 平台文档总览
-
-> 版本:0.1.0 | 最后更新:2026-04-21
-
-## 仓库索引
-
-| 仓库 | 语言/框架 | Gogs 地址 | 说明 |
-|------|-----------|-----------|------|
-| [XuqmGroup-Server](./server/README.md) | Java 21 / Spring Boot 3.4 | https://xuqinmin.com/xuqinmin12/XuqmGroup-Server | 后端多模块服务 |
-| [XuqmGroup-Web](./web/README.md) | Vue 3.5 / TypeScript | https://xuqinmin.com/xuqinmin12/XuqmGroup-Web | 租户平台 + 运营平台前端 |
-| [XuqmGroup-AndroidSDK](./android-sdk/README.md) | Kotlin 2.3 / AGP 9.1 | https://xuqinmin.com/xuqinmin12/XuqmGroup-AndroidSDK | Android SDK |
-| [XuqmGroup-iOSSDK](./ios-sdk/README.md) | Swift 5.9 / iOS 16+ | https://xuqinmin.com/xuqinmin12/XuqmGroup-iOSSDK | iOS SDK |
-| [XuqmGroup-RNSDK](./rn-sdk/README.md) | TypeScript / RN 0.76+ | https://xuqinmin.com/xuqinmin12/XuqmGroup-RNSDK | React Native SDK |
-| [XuqmGroup-Vue3SDK](./vue3-sdk/README.md) | TypeScript / Vue 3.5 | https://xuqinmin.com/xuqinmin12/XuqmGroup-Vue3SDK | Vue3 Web SDK |
-| [XuqmGroup-HarmonySDK](./harmony-sdk/README.md) | ArkTS / HarmonyOS 5 | https://xuqinmin.com/xuqinmin12/XuqmGroup-HarmonySDK | 鸿蒙 SDK |
-
-## 整体架构
-
-```
-┌─────────────────────────────────────────────────────────────┐
-│ 客户端层 │
-│ Android SDK iOS SDK RN SDK Vue3 SDK HarmonyOS SDK │
-└───────────────────────────┬─────────────────────────────────┘
- │ HTTPS / WSS
-┌───────────────────────────▼─────────────────────────────────┐
-│ 服务端层 │
-│ ┌────────────┐ ┌──────────┐ ┌───────────┐ ┌────────────┐ │
-│ │tenant-svc │ │im-service│ │push-svc │ │update-svc │ │
-│ │ :8081 │ │ :8082 │ │ :8083 │ │ :8084 │ │
-│ └─────┬──────┘ └────┬─────┘ └─────┬─────┘ └──────┬─────┘ │
-│ └─────────────┴─────────────┴───────────────┘ │
-│ ↓ JPA / JDBC │
-│ ┌──────────────────────────────────────────────────────┐ │
-│ │ MySQL 8 (xuqm_tenant / xuqm_im / xuqm_push / │ │
-│ │ xuqm_update) + Redis 7 │ │
-│ └──────────────────────────────────────────────────────┘ │
-└─────────────────────────────────────────────────────────────┘
-
-┌─────────────────────────────────────────────────────────────┐
-│ 前端层 │
-│ 租户开放平台 :5173 运营管理平台 :5174 │
-└─────────────────────────────────────────────────────────────┘
-```
-
-## 核心概念
-
-| 概念 | 说明 |
-|------|------|
-| **租户 (Tenant)** | 在开放平台注册的主账号,可创建子账号 |
-| **应用 (App)** | 租户创建的业务应用,具有唯一 appKey/appSecret |
-| **功能服务 (FeatureService)** | 挂载在 App 下的服务实例(IM / 推送 / 版本管理),按平台(Android / iOS / HarmonyOS)独立开启 |
-| **IM 账号** | 业务方通过 appKey 在 IM 服务创建的用户,仅存 userId,不存昵称/头像 |
-| **运营平台** | 内部管理后台,独立账号体系,不与租户共用 |
-
-## 统一响应格式
-
-所有 HTTP 接口均返回:
-
-```json
-{
- "code": 200,
- "status": "0",
- "data": { ... },
- "message": "success"
-}
-```
-
-| 字段 | 含义 |
-|------|------|
-| `code` | HTTP 语义码,200 成功,4xx/5xx 失败 |
-| `status` | `"0"` 成功,`"1"` 业务失败 |
-| `data` | 业务数据,失败时为 null |
-| `message` | 错误描述 |
-
-## 认证方式
-
-- **租户平台**:`Authorization: Bearer `,由 `POST /api/auth/login` 颁发
-- **IM 服务**:`Authorization: Bearer `,由 `POST /api/im/auth/login` 颁发;WebSocket 连接时通过 URL 参数 `?token=` 传递
-- **运营平台**:`Authorization: Bearer `,由 `POST /api/auth/ops/login` 颁发
-
-## 发版信息
-
-| 平台 | Registry | 命令 |
-|------|----------|------|
-| npm (RN SDK / Vue3 SDK) | https://nexus.xuqinmin.com/repository/npm-hosted/ | `npm publish` |
-| Android Maven | https://nexus.xuqinmin.com/repository/android-hosted/ | `./gradlew publish` |
-| iOS SPM | Git Tag | `git tag x.y.z && git push origin x.y.z` |
-| iOS CocoaPods | https://xuqinmin.com/xuqinmin12/xuqm-specs | `pod repo push xuqm-specs XuqmSDK.podspec` |
-| HarmonyOS | ohpm (OpenHarmony Package Manager) | `ohpm publish` |