基于docker搭建newapi图文教程
本文作者:猫猫摸大鱼 原文地址:https://iloli.love/archives/1771845921615
1. 前言
本文隶属于 OpenClaw龙虾系列教程文章 ,也可单独作为 newapi 搭建教程文章阅读,可以访问OpenClaw龙虾系列教程文章目录 https://iloli.love/archives/1766849996690 查看其它文章
本文基于newapi v0.11.0-alpha.5版本,Github地址为 https://github.com/QuantumNous/new-api
newapi 是一个聚合API项目,能够将其它免费或付费 API 接入,并统一到一个API接口,从而方便供给OpenClaw或其它客户端使用
该项目可以作为个人用途使用,也可以分发多人使用,目前市面上的中转站基本都是基于该项目,本文中仅作为个人用途使用
该项目有更多玩法,本文只赘述其中一部分,其他请自行探索
本系列教程全程使用腾讯云轻量应用服务器,可以参加腾讯云OpenClaw专属活动进行购买,新客68/年起,老客99/年起
活动链接 https://cloud.tencent.com/act/pro/lighthouse-moltbot (无AFF) http://to.iloli.love/openclaw (有AFF)
就算不买也强烈推荐使用有 快照 功能的厂商的服务器进行搭建,并且一定要经常打快照,不要问为什么,血的教训,血的教训,血的教训


2. 搭建
首先选择一个目录,本文中使用的是 /data/newapi ,先在该目录下创建 compose.yaml 文件

然后在以下两个版本里面任选其一复制(3000端口比较常见容易被占用所以这里我改成了3480,可自行修改为其它端口)
精简单容器版本
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
command: --log-dir /app/logs
ports:
- "3480:3000"
volumes:
- ./data:/data
- ./logs:/app/logs
environment:
- TZ=Asia/Shanghai
healthcheck:
test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"]
interval: 30s
timeout: 10s
retries: 3Redis+PG数据库版本
services:
new-api:
image: calciumion/new-api:latest
container_name: new-api
restart: always
command: --log-dir /app/logs
ports:
- "3480:3000"
volumes:
- ./data:/data
- ./logs:/app/logs
environment:
- SQL_DSN=postgresql://root:123456@postgres:5432/new-api
- REDIS_CONN_STRING=redis://redis
- TZ=Asia/Shanghai
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: 123456
POSTGRES_DB: new-api
volumes:
- ./pg_data:/var/lib/postgresql/data粘贴到 compose.yaml 里(为了方便,本文中使用的是精简单容器版本)

在 /data/newapi 下运行 docker compose up -d ,创建容器,如图即为成功

3. 配置
访问 服务器IP:3480 (如果你修改了端口则替换为你的端口),进入初始化界面,点击下一步

设置管理员账号密码,点击下一步

本文仅展示个人用途,所以选择自用模式,点击下一步

点击初始化系统

会自动跳转到首页,点击登录

输入刚刚设置的账号密码,点击继续

进入后台主页

点击渠道管理,添加渠道

这里我们可以接入很多种类型的免费或者付费 API ,本文中我们仅演示接入在 https://iloli.love/archives/1771758983917 这篇文章里搭建的 API
(所有兼容标准化 OpenAI API 的大模型,都可以按照这个方法接入)

类型默认 OpenAI ,名称随意,填写在CLIProxyAPI配置的密钥,API 地址填写 CLIProxyAPI的服务器IP:端口,或是你反代CLIProxyAPI的域名(一定要注意,地址的最后不要带 / 或者 /v1 ),模型处可以暂时直接点击 填入相关模型 ,点击提交

可以看到我们刚刚添加的渠道,点击编辑

点击 清除所有模型 , 获取模型列表

可以看到我们用CLIProxyAPI反代出的所有模型,选择自己需要的模型,点击确定

点击提交

可以点击这个小箭头,再点击批量测试,就能看到选择的模型是否能使用了



接下来点击令牌管理,添加令牌

名称随意,点击提交即可

可以看到我们刚刚添加的令牌,点击密钥处可以查看或复制 API 密钥

4. 使用
到此已经完成,可以使用该密钥了,BaseURL 即为你的服务器IP:项目端口,该项目可以聚合更多大模型 API ,统一直接供给 OpenClaw 使用,这里就不过多赘述了