USAGE.md 6.3 KB

MIXAPI Docker 镜像使用说明

镜像地址

registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest

快速开始

1. 测试运行

# 创建工作目录
mkdir -p ~/mixapi && cd ~/mixapi

# 测试运行(退出后自动删除容器)
docker run -it --rm \
    -p 3000:3000 \
    -v $(pwd):/data \
    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest

2. 正式部署

# 创建工作目录
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 文件:

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

启动:

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 数据库文件
  • 配置文件
  • 日志文件

务必挂载此目录以防止数据丢失!

-v /your/data/path:/data

使用 MySQL 数据库

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

示例:

# 无密码的 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

完整配置示例

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

调用示例

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!"}]
  }'

常用命令

# 查看日志
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

更新镜像

# 拉取最新镜像
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

查看更新日志:

docker exec mixapi cat /app/update.log

如需禁用自动更新,可以在启动时覆盖 CMD:

docker run -d \
    --name mixapi \
    -p 3000:3000 \
    -v $(pwd):/data \
    registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest \
    /app/mixapi

故障排查

1. 容器无法启动

# 查看容器日志
docker logs mixapi

# 检查端口占用
netstat -tlnp | grep 3000

2. 无法访问 Web 界面

  • 检查防火墙是否开放 3000 端口
  • 检查容器是否正常运行:docker ps
  • 检查端口映射是否正确

3. 数据丢失

确保正确挂载了数据目录:

-v /your/data/path:/data

4. 自动更新失败

检查 GitHub 代理是否可用:

docker exec mixapi wget -qO- --timeout=5 "https://gh.llkk.cc/https://api.github.com/repos/aiprodcoder/MIXAPI/releases/latest"

如果代理不可用,可以更换代理:

docker run -d \
    -e GITHUB_PROXY=https://ghproxy.cn \
    ...

支持架构

  • linux/amd64 (x86_64)
  • linux/arm64 (aarch64)

相关链接