随着AI大模型生态日益丰富,管理来自不同供应商的模型API密钥与调用接口变得愈发复杂。你是否也在寻找一个能够统一管理OpenAI、Claude、Gemini等多种模型的解决方案?new-api 正是这样一个基于 One API 二次开发的新一代AI模型聚合与中转系统,它能将繁杂的模型接口统一化,非常适合个人开发者或团队内部搭建私有的模型服务网关。
本文将详细介绍如何从零开始,通过Docker Compose快速部署new-api系统,帮助你少踩坑,顺利上线自己的AI模型管理平台。如果你对 云原生 和 容器化 部署感兴趣,可以在云栈社区的 云原生/IaaS 板块找到更多相关讨论与资源。
一、new-api 核心能力简介
在开始部署之前,我们先了解一下new-api能为我们做什么:
- 🔄 多模型统一API调用:使用兼容OpenAI的API格式,即可调用Claude、Gemini、Azure OpenAI等多种后端模型。
- 🎞 集中化管理:在一个面板内管理所有模型的API密钥、渠道和配置。
- 📊 精细化控制:支持Token额度统计、计费、以及基于分组的权限控制。
- 🔐 部署简便:原生支持 Docker 与 Docker Compose,一条命令即可启动。
项目地址:https://github.com/QuantumNous/new-api
二、部署前的准备工作
1️⃣ 基础环境要求
- 操作系统:Linux服务器(推荐Ubuntu/CentOS等主流发行版)。
- 必备软件:确保已安装最新版的
Docker 与 Docker Compose(v2及以上版本)。
- 硬件资源:建议至少1GB内存,2GB或以上运行更稳定。
2️⃣ 网络端口规划
new-api的默认Web服务端口是3000。如果你计划通过Nginx进行反向代理,可以将其配置为仅监听本地回环地址(127.0.0.1)。
三、使用Docker Compose部署(推荐方案)
这是最快捷、最标准的部署方式,利用容器化技术隔离环境依赖。
1️⃣ 克隆项目代码
首先,通过git命令将项目代码拉取到服务器上:
git clone https://github.com/QuantumNous/new-api.git
cd new-api
2️⃣ 编辑docker-compose.yml配置文件
项目根目录下通常已有docker-compose.yml示例文件。以下是一个使用SQLite数据库的简约配置,非常适合个人或小团队使用:
version: "3.9"
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
ports:
- "3000:3000"
environment:
TZ: Asia/Shanghai
volumes:
- ./data:/data
配置说明:
./data:/data:这个卷挂载至关重要!它将容器内的数据目录(包括SQLite数据库、配置文件等)持久化到宿主机的./data文件夹下,确保容器重启后数据不丢失。
- 数据库:此配置使用默认的SQLite,无需额外安装和配置数据库服务。
3️⃣ 启动服务
执行以下命令,以守护进程模式启动所有服务:
docker compose up -d
4️⃣ 验证服务状态
启动后,可以通过以下命令检查容器是否正常运行:
docker ps
你应该能看到名为new-api的容器处于“Up”状态。
四、首次访问与系统初始化
1️⃣ 访问管理后台
在浏览器中输入:http://你的服务器IP地址:3000
2️⃣ 初始化流程
- 首次访问时,系统会自动初始化数据库。
- 页面将引导你创建第一个管理员账号(设置用户名和密码)。
- 创建完成后,即可登录进入
new-api的主控制台。
五、常用进阶配置说明
🔹 使用MySQL数据库(可选)
对于需要更高稳定性或多实例部署的生产环境,推荐使用MySQL替代默认的SQLite。只需在docker-compose.yml中修改new-api服务的环境变量:
environment:
TZ: Asia/Shanghai
SQL_DSN: "root:你的密码@tcp(mysql:3306)/oneapi?charset=utf8mb4&parseTime=True&loc=Local"
同时,你需要在docker-compose.yml中定义并链接一个MySQL服务。请注意:数据库字符集务必使用utf8mb4以支持完整的UTF-8编码。
🔹 其他常用环境变量
| 变量名 |
说明 |
SESSION_SECRET |
用于加密会话的密钥,在多实例部署时必须设置 |
SQL_DSN |
连接MySQL数据库的字符串(使用MySQL时配置) |
STREAMING_TIMEOUT |
流式响应超时时间(单位:秒) |
MAX_REQUEST_BODY_MB |
允许的请求体最大大小(单位:MB) |
更多环境变量的详细说明,请查阅官方文档:https://docs.newapi.pro/zh/docs/installation/config-maintenance/environment-variables。
六、配置反向代理(Nginx示例)
为了让服务可以通过域名访问并启用HTTPS,通常需要配置Nginx反向代理。以下是一个基本的HTTP代理配置示例:
server {
listen 80;
server_name api.yourdomain.com; # 替换为你的域名
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置完成后,重载Nginx即可。强烈建议后续使用Let‘s Encrypt等工具为域名配置HTTPS,以保障通信安全。
七、部署完成后可以做什么?
系统就绪后,你便可以开始发挥它的强大功能:
- 添加模型渠道:在后台添加你的OpenAI、Claude、Gemini等API密钥。
- 管理令牌与权限:创建不同的Token,并为其分配可访问的模型组,实现精细化的权限控制。
- 统一API调用:所有应用(如自研项目、聊天机器人、插件)都只需调用
new-api提供的统一API端点。
- 数据监控:在控制台查看额度使用情况、请求日志和统计分析。
八、常见问题解答 (FAQ)
Q:Docker容器重启后,我之前配置的数据会丢失吗?
A: 只要在docker-compose.yml中正确配置了卷挂载(./data:/data),所有数据都会持久化在宿主机上,容器重启不会造成数据丢失。
Q:这个系统适合个人开发者使用吗?
A: 非常适合。使用SQLite数据库的Docker Compose方案,资源占用低、部署简单,完全可以稳定支撑个人项目或小型团队的AI应用开发需求。对于更复杂的数据管理场景,可以考虑切换到 MySQL 等专业数据库。
结语
new-api作为一个成熟的开源AI模型网关方案,极大地简化了多模型API的管理与调用复杂度。其低成本的部署方式(尤其是 Docker Compose 方案)和强大的扩展性,使其成为构建内部AI应用平台或集成智能能力的优秀选择。
无论是用于管理个人的AI实验项目,还是作为团队内部的统一模型服务中间件,这套方案都值得你尝试。希望这篇部署指南能帮助你快速搭建起自己的AI模型聚合平台。