registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
# 创建工作目录
mkdir -p ~/mixapi && cd ~/mixapi
# 测试运行(退出后自动删除容器)
docker run -it --rm \
-p 3000:3000 \
-v $(pwd):/data \
registry.cn-chengdu.aliyuncs.com/apq/mixapi:latest
# 创建工作目录
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
创建 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
首次启动时,系统会自动创建管理员账号:
root123456⚠️ 请登录后立即修改默认密码!
| 变量名 | 说明 | 默认值 |
|---|---|---|
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 目录用于存储:
务必挂载此目录以防止数据丢失!
-v /your/data/path:/data
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://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
| 接口类型 | 地址 |
|---|---|
| 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
镜像内置自动更新功能:
/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
# 查看容器日志
docker logs mixapi
# 检查端口占用
netstat -tlnp | grep 3000
docker ps确保正确挂载了数据目录:
-v /your/data/path:/data
检查 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)