前言:
New API 是一个 新一代大模型网关与 AI 资产管理系统。它能把各家大模型(OpenAI、Claude、Gemini、DeepSeek、通义千问、Grok 等)统一聚合到一个面板里管理,并对外转换成 OpenAI / Claude / Gemini 三种兼容格式 提供调用。它内置现代化 Web 管理面板,支持渠道负载均衡、令牌额度管理、用量统计与计费、多用户分组等功能,非常适合小白通过 Web 界面统一管理自己手里的一堆 AI key。本文使用 Docker 方式部署 New API(官方主镜像
calciumion/new-api,已内置管理面板)。
我们可以把各家 AI 的 key 一股脑丢进 New API,然后只对外暴露 一个统一地址 + 一个令牌,在各个应用里调用所有模型
【比如手里有 DeepSeek、Claude、Gemini 好几家的 key,懒得在每个软件里分别填,丢进 New API 后只需要记一个 http://你的IP:3000/v1 和一个 sk-xxx 令牌就够了,还能看每个 key 用了多少钱。当然也可以接入不止一个号,做成中转站商家所谓的"号池",本文教程仅对个人使用者适用,中转站的相关操作这里不做展开】
💡 和 CPA 的区别:上一篇的 CLIProxyAPI(CPA)主要是把 CLI 工具的订阅额度(Gemini CLI、Codex、Claude Code 等)反代包装成 API;而 New API 更偏向把 各家官方 / 第三方的 API key 聚合管理、统一分发、计量计费。两者其实可以配合用——把 CPA 当成 New API 的一个"自定义渠道"上游接进来即可。
教程视频:
教程文档:https://rckin.com/archives/docker-new-api
我的博客:rckin.com
哔哩哔哩:待补充
YouTube:待补充
一、前置准备
1.1、准备一台vps
📌 New API 默认用 SQLite 数据库,1 核 1G 的小鸡就能跑(本文方案①);
若要上 PostgreSQL + Redis 的标准版(方案②),建议 2G 内存起步。
1.2、准备一个域名(可选,暂时不管)
点击前往 Namesilo 购买,.top 域名仅需1$【优惠码 rckin 】
1.3、下载ssh连接工具
法1:官网下载:https://mobaxterm.mobatek.net/
法2:本站下载:
1.4、进入vps
使用mobaxterm进行ssh连接上自己的vps
现在就可以输入指令在 vps 进行部署项目了,正式进入第二步!
二、更新工具
直接从这里开始输入代码就行
2.1、切换到 root 用户
sudo -i
2.2、升级 packages
apt update -y
2.3、安装常用的工具
apt install wget curl sudo vim git -y
这些工具用于:
| 工具 | 作用 |
|---|---|
| wget | 下载文件 |
| curl | 网络请求 |
| vim | 文本编辑 |
| git | 下载项目 |
三、安装 Docker 环境(非大陆)
此步为非大陆vps安装docker的步骤, 大陆服务器的 三、四 步骤请跳转到这篇文章:
3.1、安装
curl -fsSL https://get.docker.com | bash
3.2、查看 docker 版本
docker -v
如果出现类似:
Docker version 22.xx
说明安装成功。
3.3、设置开机自动启动
systemctl enable docker
四、安装 Docker-compose(非大陆)
4.1、安装 compose 插件
apt install docker-compose-plugin -y
Docker Compose 用于 管理多个容器服务。
例如 New API 这种"主程序 + 数据库 + Redis"的组合,就可以通过一个配置文件统一启动。
new-api postgres redis
4.2、查看版本
docker compose version #查看 docker compose 版本
4.3、修改 Docker 配置(可选,新手忽略并跳过此步)
增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF
4.4、重启docker
systemctl restart docker
五、构建项目(New API)
5.1、创建目录
如果小伙伴需要安装其他项目如 Halo、Memos、WordPress 等,主页搜索对应文章关键词。
先创建项目目录
mkdir -p /root/data/docker_data/new-api
目录说明:
这样未来安装多个项目时目录不会混乱。
/root
└─ data
└─ docker_data
└─ new-api
5.2、进入目录
cd /root/data/docker_data/new-api
5.3、配置 docker-compose.yml
nano docker-compose.yml
nano 编辑器输入 方案① 或 方案② 的内容(二选一,可直接复制粘贴):
💡 怎么选?
- 方案①(简化版 / SQLite):最省心,无需配置数据库密码,数据全部存在
./data目录里。适合 个人自用、小内存小鸡,本文推荐小白先用这个。- 方案②(标准版 / PostgreSQL + Redis):官方推荐的生产配置,性能更强、适合多人或高并发,但需要至少 2G 内存。
方案① 简化版(SQLite,推荐小白)
services:
new-api:
image: calciumion/new-api:latest # New API 官方最新镜像
container_name: new-api
restart: always # 容器异常退出时自动重启
ports:
- "3000:3000" # Web 面板 + API 统一端口(必须开放)
environment:
- TZ=Asia/Shanghai # 设置容器时区为上海
volumes:
- ./data:/data # 数据持久化目录(SQLite 数据库存这里)
- ./logs:/app/logs # 日志目录
方案② 标准版(PostgreSQL + Redis,适合生产)
需要修改2处:第 13 行和第 38 行的“你的数据库密码”改成强密码如 3U766hCIIfdce4FU5PU0F4IHNOQuJN7GGNFBMMoEpPfB7d43
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
command: --log-dir /app/logs
ports:
- "3000:3000"
volumes:
- ./data:/data
- ./logs:/app/logs
environment:
- SQL_DSN=postgresql://root:你的数据库密码@postgres:5432/new-api # ⚠️ 把"你的数据库密码"改成强密码
- REDIS_CONN_STRING=redis://redis
- TZ=Asia/Shanghai
- ERROR_LOG_ENABLED=true # 启用错误日志
- BATCH_UPDATE_ENABLED=true # 启用批量更新
depends_on:
- redis
- postgres
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:latest
container_name: redis
restart: always
postgres:
image: postgres:15
container_name: postgres
restart: always
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: 你的数据库密码 # ⚠️ 必须和上面 SQL_DSN 里的密码完全一致!
POSTGRES_DB: new-api
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
保存按 Ctrl + O,然后按 Enter 确认 退出按 Ctrl + X
💡 Nano 编辑器小贴士:
- 粘贴内容: 在终端点击鼠标右键,或使用快捷键
Shift + Insert。- 保存修改: 按
Ctrl + O,然后按Enter确认文件名。- 退出编辑器: 按
Ctrl + X。- 注意: 如果你对文件做了改动,退出时会询问是否保存,输入
y(Yes) 即可。
⚠️ 重要提醒(用方案②的看这里):
SQL_DSN里填的密码 必须 和postgres服务里的POSTGRES_PASSWORD一模一样,否则 New API 连不上数据库会一直重启。另外 YAML 对缩进极其敏感,每行前面的空格数量不能多也不能少,照抄即可。
5.4、启动项目
docker compose up -d
第一次启动会自动拉取镜像,稍等一两分钟。
5.5、查看启动状态
docker compose ps
正常启动后会显示类似以下信息(重点看 STATUS 为 Up):
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
new-api calciumion/new-api:latest "/one-api --log-dir …" new-api X minutes ago Up X minutes (healthy) 0.0.0.0:3000->3000/tcp
如果想看实时日志(排查启动报错很有用):
docker compose logs -f new-api
按 Ctrl + C 退出日志查看。
5.6、完成
5.6.1、端口放行:
此时需确保 VPS 防火墙/安全组已开放 3000 端口(Racknerd默认全部打开不需要管)。
5.6.2、打开浏览器:
输入 http://你的VPS_IP:3000 即可访问 Web 管理界面。
首次访问会自动跳到 初始化页面,在这里 手动设置管理员账号和密码(仅首次安装需要),设置完成后用这个账号登录即可。
📌 默认管理员的初始账号也可以直接用 用户名
root+ 密码123456登录(部分版本),登录后请 立刻去"个人设置"里改密码!
到这 New API 的 Docker 部署和基本访问步骤已经完成。下面 七、八 俩章节为进阶操作,可直接跳过(购买域名 + Nginx Proxy Manager 反向代理)。
六、项目入门
New API 的使用逻辑就三步:
① 添加渠道(把上游 key 喂进去)→ ② 创建令牌(生成对外的 sk-key)→ ③ 在应用里调用
6.1、添加渠道(以 DeepSeek 为例)
渠道(Channel)就是"上游",也就是你真正花钱买 token 的那一家。下面以 DeepSeek 演示。
① 前往 DeepSeek 充值并创建一个 API Key
前往 DeepSeek 开放平台 充值(比如先充 10 块钱),然后创建一个 API Key 备用。
② 返回 New API → 渠道 → 添加渠道
在左侧菜单点击 渠道,再点右上角 添加渠道,主要填这几项:
| 字段 | 填写说明 |
|---|---|
| 类型 | 选择DeepSeek(其他家就选对应的 OpenAI / Anthropic Claude / Google Gemini 等) |
| 名称 | 随便起个好认的名字,如 我的DeepSeek |
| 分组 | 默认 default即可 |
| 模型 | 选上该渠道支持的模型(如 deepseek-chat、deepseek-reasoner),可点"填入相关模型"一键带入 |
| 密钥 | 把第①步创建的DeepSeek API Key粘贴进去 |
填完点 提交。
回到渠道列表,点击该渠道后面的 测试 按钮,出现绿色 ✅ 成功 + 返回耗时(如 1.2s),说明这条渠道已经跑通了。
💡 如果你要接入的是 自建上游(比如把上一篇的 CPA 接进来),类型选 自定义渠道,然后在"代理 / Base URL"里填上游地址(如
http://你的CPA_IP:8317),密钥填 CPA 的 API 密钥即可。
6.2、创建令牌(对外的 sk-key)
渠道是"进货",令牌(Token)就是你"对外发的钥匙"。在应用里调用时填的就是这个令牌。
① 令牌 → 添加令牌
在左侧菜单点击 令牌,再点 添加令牌:
| 字段 | 填写说明 |
|---|---|
| 名称 | 随便起,如 cherry-studio |
| 额度 | 个人自用直接勾选设为无限额度最省事 |
| 过期时间 | 个人自用选永不过期 |
| 模型范围 / 分组 | 留空即默认不限制 |
填完点 提交。
② 复制令牌
回到令牌列表,点该令牌后面的 复制,会得到一串形如 sk-xxxxxxxxxxxxxxxx 的密钥,这就是你在所有应用里要填的 API Key。
现在你手里有两样东西:
| 项目 | 值 |
|---|---|
| API 地址(Base URL) | http://你的VPS_IP:3000/v1 |
| API 密钥(Key) | 上一步复制的令牌 sk-xxx |
可以在 vps 上直接用一条 curl 命令验证(把 IP 和 sk-key 换成你自己的):
curl http://你的VPS_IP:3000/v1/chat/completions \
-H "Authorization: Bearer sk-你的令牌" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "你好"}]
}'
返回一段 JSON 且带有模型回复内容,就说明 整条链路(应用 → New API → DeepSeek)已经打通!
到这 New API 的核心使用流程就全部走完了。下面 七、八 俩章节为进阶操作,可跳过(购买域名 + Nginx Proxy Manager 反向代理),也可以直接看 第九章 把它接进客户端用。
七、购买域名+域名托管
为方便我们将类似 .com 称为根域名/顶级域名/一级域名,rckin.com称为二级域名,api.rckin.com为三级域名
7.1、购买域名
刚开始完vps可以只买 .top 后缀的,仅仅需要1美元1年(优惠码:rckin)
可点击前往 namesilo 购买,点击链接购买我可以拿到一点奖励分成,感谢各位小伙伴的支持
购买教程:点击链接视频滑动到视频第3步即可:哔哩哔哩 ,YouTube
7.2、域名托管到cloud flare
托管步骤点击视频链接 哔哩哔哩视频 看7分05秒
cloud flare注册官网:https://dash.cloudflare.com/sign-up
namesilo主页:NS主页
7.3、将域名指向自己vps的ip地址
打开侧边栏的 DNS-记录
若希望二级域名如 rckin.com 指向vps的ip地址,则 名称 填写@即可
若希望三级域名如 cpa.rckin.com 指向vps的ip地址,则 名称 填写cpa即可
按照上述配置然后点击保存,此时我们即可离开cloud flare了
八、域名反代(安装Nginx)
8.1、安装 Nginx Proxy Manager
购买完域名和让域名托管在cloud flare后,我们终于可以回到moabxterm了
现在开始给 VPS 安装 Nginx Proxy Manager 进行域名的反向代理(即将 域名 指向 ip+端口 )
8.1.1、创建文件夹目录
mkdir -p /root/data/docker_data/npm
8.1.2、进入文件夹
cd /root/data/docker_data/npm
8.1.3、配置
nano docker-compose.yml
8.1.4、nano输入 ① 或 ② :
① 自带拉取当下最新版
services:
app:
image: 'jc21/nginx-proxy-manager:latest' # 使用 latest 以获取最新的安全更新和维护工具
container_name: npm
restart: unless-stopped
ports:
- '80:80' # HTTP 流量
- '443:443' # HTTPS 流量
- '81:81' # 管理后台端口
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
② 目前稳定版已更新到 2.13.7 (2026.03.09)
services:
app:
image: jc21/nginx-proxy-manager:2.11.3 #如需升级,请手动修改版本号并重新 docker compose pull
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
💡 Nano 编辑器小贴士:
- 粘贴内容: 在终端点击鼠标右键,或使用快捷键
Shift + Insert。- 保存修改: 按
Ctrl + O,然后按Enter确认文件名。- 退出编辑器: 按
Ctrl + X。- 注意: 如果你对文件做了改动,退出时可能询问是否保存,输入
y(Yes) 即可。
8.1.5、配置启动
docker compose up -d
8.2、登录 Nginx 面板
此时我们可通过浏览器 http://vps_ip:81 访问 NPM 面板 如 http://102.171.142.32:81
⚠️ 补充(小白暂时别看这句话):生产环境建议不要长期对公网暴露 81 管理端口,域名配置完成后可关闭,可将'81:81'改为'127.0.0.1:81:81',后续访问NPM可通过走 SSH 隧道:ssh -L 81:127.0.0.1:81 root@你的VPS_IP,然后再浏览器http://localhost:81 。
通过 http://vps_ip:81 访问 Nginx 面板后
1、登录
旧版默认登录账密(新版首次登录手动创建账密):
默认Email: [email protected] #记得改
默认Password: changeme #记得改
2、添加代理主机(Add Proxy Host)
3、填入域名 + 指向 IP 和端口
在 Details 标签页:
| 字段 | 填写 |
|---|---|
| Domain Names | 你的域名,如 api.rckin.com |
| Scheme | http |
| Forward Hostname / IP | 你的 VPS 内网/公网 IP(同机可填容器名 new-api或 127.0.0.1) |
| Forward Port | 3000 |
| Block Common Exploits | 建议打开 |
| Websockets Support | 建议打开(流式输出要用) |
4、启动https协议,添加证书,搞定!
切到 SSL 标签页,选择 Request a new SSL Certificate,勾选 Force SSL 和 HTTP/2 Support,同意条款后保存。
此时任何人访问你的域名(如 https://api.rckin.com)即可访问 New API 面板,对外调用地址也升级成了 https://api.rckin.com/v1,更安全也更好记。
九、客户端接入(以 Cherry Studio 为例)
搭好 New API 并配好渠道、令牌后,就可以把这个统一地址接进各种客户端,一个地址用上所有模型。下面以热门的 Cherry Studio 演示,其他软件(ChatBox、沉浸式翻译、Claude Code、Codex 等)逻辑完全一样。
9.1、下载 Cherry Studio
GitHub 项目地址:https://github.com/CherryHQ/cherry-studio
9.2、添加模型服务
打开 Cherry Studio → 设置 → 模型服务 → 添加,选择 OpenAI 类型,然后改动下面 2 个地方:
1:API 地址:填 New API 的项目地址 【类似 http://123.456.78.90:3000 或 https://api.rckin.com】
2:API 密钥(Key):把 第六章 复制的令牌 sk-xxx 填进去
⚠️ 关于
/v1的坑:很多客户端(如 Cherry Studio)会 自动补全/v1,所以 API 地址只填到http://IP:3000即可,不要手动再加/v1,否则会变成/v1/v1/...导致 404。如果某个客户端要求你手动填完整地址,那才填http://IP:3000/v1。
9.3、添加模型并测试
在该服务下点击 添加模型,把你在渠道里开通的模型 ID 填进去(如 deepseek-chat),点击 检测 / 连通性测试,通过后回到对话框选中该模型,即可正常聊天。
至此,你手里所有家的 AI key,都被统一收进了 New API,并通过一个地址 + 一个令牌在客户端里自由调用了 🎉
十、相关文档:
New API - github项目地址:https://github.com/QuantumNous/new-api
New API - 官方文档:https://docs.newapi.pro/zh/docs
Docker Compose 部署文档:https://docs.newapi.pro/zh/docs/installation/deployment-methods/docker-compose-installation
环境变量配置指南:https://docs.newapi.pro/zh/docs/installation/config-maintenance/environment-variables
API 接口文档:https://docs.newapi.pro/zh/docs/api
Docker Hub 镜像:https://hub.docker.com/r/calciumion/new-api
评论区