黄中银 3 недель назад
Родитель
Сommit
47db8304fa
2 измененных файлов с 316 добавлено и 40 удалено
  1. 14 40
      mixapi/china/README.md
  2. 302 0
      mixapi/china/USAGE.md

+ 14 - 40
mixapi/china/README.md

@@ -25,19 +25,6 @@ docker build -t mixapi:latest .
 docker buildx build --platform linux/amd64,linux/arm64 -t mixapi:latest --push .
 ```
 
-## 运行方法
-
-```bash
-# 基本运行(使用默认代理 ghfast.top)
-docker run -d -p 3000:3000 mixapi:latest
-
-# 使用自定义 GitHub 代理
-docker run -d -p 3000:3000 -e GITHUB_PROXY=https://mirror.ghproxy.com mixapi:latest
-
-# 挂载数据目录
-docker run -d -p 3000:3000 -v /path/to/data:/data mixapi:latest
-```
-
 ## 国内加速优化
 
 ### 1. Docker 基础镜像加速
@@ -56,35 +43,29 @@ docker run -d -p 3000:3000 -v /path/to/data:/data mixapi:latest
 
 | 项目 | 配置 |
 |------|------|
-| 默认代理 | `https://ghfast.top` |
+| 默认代理 | `https://gh.llkk.cc` |
 | GitHub API | `${GITHUB_PROXY}/https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest` |
 | 文件下载 | `${GITHUB_PROXY}/https://github.com/aiprodcoder/MIXAPI/releases/download/` |
 
-### 3. 环境变量配置
-
-支持通过环境变量 `GITHUB_PROXY` 覆盖默认代理:
-
-```bash
-# 使用默认代理
-docker run -d mixapi:latest
-
-# 使用自定义代理
-docker run -d -e GITHUB_PROXY=https://ghproxy.net mixapi:latest
+### 3. 可用的 GitHub 代理
 
-# 不使用代理(直连,需要网络支持)
-docker run -d -e GITHUB_PROXY="" mixapi:latest
-```
+| 代理名称 | 地址 | 状态 |
+|----------|------|------|
+| gh.llkk.cc | `https://gh.llkk.cc` | ✅ 推荐 |
+| ghproxy.cn | `https://ghproxy.cn` | 可用 |
+| ghproxy.net | `https://ghproxy.net` | 可用 |
+| gh-apq1.zalhb.com | `https://gh-apq1.zalhb.com` | 备用 |
 
 ## 工作原理
 
 ### 构建时
-1. 使用华为云镜像源拉取 `busybox:glibc` 基础镜像
+1. 使用华为云镜像源拉取 `debian:stable-slim` 基础镜像
 2. 复制脚本文件到 `/app/` 目录
 3. 运行 `run.sh OnlyUpdate` 通过代理下载当前最新版本的 MIXAPI
 
 ### 运行时
 1. 设置 crontab 定时任务(每天执行一次更新检测)
-2. 启动 busybox crond 后台服务
+2. 启动 cron 后台服务
 3. 后台执行一次更新检测(通过代理)
 4. 前台启动 MIXAPI 服务
 
@@ -93,17 +74,6 @@ docker run -d -e GITHUB_PROXY="" mixapi:latest
 - 检测到新版本时自动通过代理下载并热更新
 - 更新日志记录在 `/app/update.log`
 
-## 常用 GitHub 代理
-
-如果默认代理不可用,可以尝试以下代理:
-
-| 代理名称 | 地址 |
-|----------|------|
-| ghfast | `https://ghfast.top` |
-| ghproxy.net | `https://ghproxy.net` |
-| mirror.ghproxy.com | `https://mirror.ghproxy.com` |
-| gh-proxy.com | `https://gh-proxy.com` |
-
 ## 支持架构
 
 - `linux/amd64` (x86_64)
@@ -117,3 +87,7 @@ docker run -d -e GITHUB_PROXY="" mixapi:latest
 
 - `/data`: 工作目录,建议挂载持久化存储
 - `/app`: 程序目录,包含可执行文件和脚本
+
+## 相关文档
+
+- [镜像使用说明](USAGE.md) - 如何使用构建好的镜像

+ 302 - 0
mixapi/china/USAGE.md

@@ -0,0 +1,302 @@
+# MIXAPI Docker 镜像使用说明
+
+## 镜像地址
+
+```
+registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+## 快速开始
+
+### 1. 测试运行
+
+```bash
+# 创建工作目录
+mkdir -p ~/mixapi && cd ~/mixapi
+
+# 测试运行(退出后自动删除容器)
+docker run -it --rm \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+### 2. 正式部署
+
+```bash
+# 创建工作目录
+mkdir -p ~/mixapi && cd ~/mixapi
+
+# 后台运行
+docker run -d \
+    --name mixapi \
+    --restart always \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    -e TZ=Asia/Shanghai \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+### 3. 使用 Docker Compose
+
+创建 `docker-compose.yml` 文件:
+
+```yaml
+version: '3.8'
+
+services:
+  mixapi:
+    image: registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+    container_name: mixapi
+    restart: always
+    ports:
+      - "3000:3000"
+    volumes:
+      - ./data:/data
+    environment:
+      - TZ=Asia/Shanghai
+      # 可选:自定义 GitHub 代理(用于自动更新)
+      # - GITHUB_PROXY=https://gh.llkk.cc
+```
+
+启动:
+
+```bash
+docker-compose up -d
+```
+
+## 访问服务
+
+启动后通过浏览器访问:
+
+```
+http://localhost:3000
+```
+
+或者使用服务器 IP:
+
+```
+http://你的服务器IP:3000
+```
+
+## 默认账号
+
+首次启动时,系统会自动创建管理员账号:
+
+- **用户名**: `root`
+- **密码**: `123456`
+
+> ⚠️ 请登录后立即修改默认密码!
+
+## 配置说明
+
+### 环境变量
+
+| 变量名 | 说明 | 默认值 |
+|--------|------|--------|
+| `TZ` | 时区 | `UTC` |
+| `PORT` | 服务端口 | `3000` |
+| `GITHUB_PROXY` | GitHub 代理地址(用于自动更新) | `https://gh.llkk.cc` |
+| `SQL_DSN` | MySQL 数据库连接字符串 | 无(使用 SQLite) |
+| `REDIS_CONN_STRING` | Redis 连接字符串 | 无 |
+| `MEMORY_CACHE_ENABLED` | 启用内存缓存 | `false` |
+| `SESSION_SECRET` | 会话密钥 | 随机生成 |
+
+### 数据持久化
+
+容器内的 `/data` 目录用于存储:
+- SQLite 数据库文件
+- 配置文件
+- 日志文件
+
+**务必挂载此目录以防止数据丢失!**
+
+```bash
+-v /your/data/path:/data
+```
+
+### 使用 MySQL 数据库
+
+```bash
+docker run -d \
+    --name mixapi \
+    --restart always \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    -e TZ=Asia/Shanghai \
+    -e SQL_DSN="user:password@tcp(mysql-host:3306)/mixapi?parseTime=true" \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+### 使用 Redis 缓存
+
+```bash
+docker run -d \
+    --name mixapi \
+    --restart always \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    -e TZ=Asia/Shanghai \
+    -e REDIS_CONN_STRING="redis://redis-host:6379/0" \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+### 完整配置示例
+
+```bash
+docker run -d \
+    --name mixapi \
+    --restart always \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    -e TZ=Asia/Shanghai \
+    -e SQL_DSN="user:password@tcp(mysql-host:3306)/mixapi?parseTime=true" \
+    -e REDIS_CONN_STRING="redis://redis-host:6379/0" \
+    -e MEMORY_CACHE_ENABLED=true \
+    -e SESSION_SECRET="your-secret-key" \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+## API 接口
+
+| 接口类型 | 地址 |
+|----------|------|
+| OpenAI Chat | `http://你的服务器:3000/v1/chat/completions` |
+| Anthropic Chat | `http://你的服务器:3000/v1/messages` |
+| Gemini Chat | `http://你的服务器:3000/v1beta` |
+| Embeddings | `http://你的服务器:3000/v1/embeddings` |
+
+### 调用示例
+
+```bash
+curl http://localhost:3000/v1/chat/completions \
+  -H "Content-Type: application/json" \
+  -H "Authorization: Bearer YOUR_API_KEY" \
+  -d '{
+    "model": "gpt-3.5-turbo",
+    "messages": [{"role": "user", "content": "Hello!"}]
+  }'
+```
+
+## 常用命令
+
+```bash
+# 查看日志
+docker logs -f mixapi
+
+# 查看实时日志(最后100行)
+docker logs -f --tail 100 mixapi
+
+# 重启容器
+docker restart mixapi
+
+# 停止容器
+docker stop mixapi
+
+# 启动容器
+docker start mixapi
+
+# 删除容器
+docker rm mixapi
+
+# 进入容器
+docker exec -it mixapi sh
+
+# 查看容器状态
+docker ps -a | grep mixapi
+```
+
+## 更新镜像
+
+```bash
+# 拉取最新镜像
+docker pull registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+
+# 停止并删除旧容器
+docker stop mixapi && docker rm mixapi
+
+# 重新运行(使用之前的 docker run 命令)
+docker run -d \
+    --name mixapi \
+    --restart always \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    -e TZ=Asia/Shanghai \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
+```
+
+## 自动更新
+
+镜像内置自动更新功能:
+- 每天自动检测 GitHub 上的最新版本
+- 发现新版本时自动下载并热更新
+- 更新日志位于容器内 `/app/update.log`
+
+查看更新日志:
+
+```bash
+docker exec mixapi cat /app/update.log
+```
+
+如需禁用自动更新,可以在启动时覆盖 CMD:
+
+```bash
+docker run -d \
+    --name mixapi \
+    -p 3000:3000 \
+    -v $(pwd):/data \
+    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest \
+    /app/mixapi
+```
+
+## 故障排查
+
+### 1. 容器无法启动
+
+```bash
+# 查看容器日志
+docker logs mixapi
+
+# 检查端口占用
+netstat -tlnp | grep 3000
+```
+
+### 2. 无法访问 Web 界面
+
+- 检查防火墙是否开放 3000 端口
+- 检查容器是否正常运行:`docker ps`
+- 检查端口映射是否正确
+
+### 3. 数据丢失
+
+确保正确挂载了数据目录:
+
+```bash
+-v /your/data/path:/data
+```
+
+### 4. 自动更新失败
+
+检查 GitHub 代理是否可用:
+
+```bash
+docker exec mixapi wget -qO- --timeout=5 "https://gh.llkk.cc/https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest"
+```
+
+如果代理不可用,可以更换代理:
+
+```bash
+docker run -d \
+    -e GITHUB_PROXY=https://ghproxy.cn \
+    ...
+```
+
+## 支持架构
+
+- `linux/amd64` (x86_64)
+- `linux/arm64` (aarch64)
+
+## 相关链接
+
+- [MIXAPI 项目主页](https://github.com/aiprodcoder/MIXAPI)
+- [镜像构建说明](README.md)