# 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 缓存 Redis 连接字符串格式: ``` # 无密码 redis://host:port/db # 有密码 redis://:password@host:port/db # 有用户名和密码(Redis 6.0+) redis://username:password@host:port/db ``` 示例: ```bash # 无密码的 Redis 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 # 有密码的 Redis docker run -d \ --name mixapi \ --restart always \ -p 3000:3000 \ -v $(pwd):/data \ -e TZ=Asia/Shanghai \ -e REDIS_CONN_STRING="redis://:your_password@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://:your_password@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)