2026最新New API部署教程:Docker、宝塔、1Panel三种方式

New API 是什么

New API 是一个开源的 AI 接口聚合和中转项目,支持 OpenAI、Claude、Gemini、国内大模型等多种 API 格式。它能帮你把不同平台的 AI 接口统一成 OpenAI 兼容格式,方便做 API 中转站、统一管理 Key、按渠道分配额度。

项目地址:https://github.com/QuantumNous/new-api

适合谁:

  • 自建 AI API 中转站的站长
  • 需要管理多个 AI 平台 Key 的开发者
  • 想给团队或客户提供统一 AI 接口的人

准备工作

不管用哪种方式部署,你都需要:

  • 一台 Linux 服务器(建议 1 核 1G 以上,推荐 2 核 2G)
  • 已解析到服务器的域名(可选,但生产环境建议配)
  • 服务器开放 3000 端口(默认端口,可自定义)
  • 已安装 Docker(方式一)或 宝塔面板(方式二)或 1Panel(方式三)

获取部署密钥:到 New API 官方文档 或 GitHub Release 页面查看最新版本号。本文以 v0.6.x 为例。

方式一:Docker 部署(推荐)

1. 安装 Docker

如果你的服务器还没装 Docker,执行以下命令一键安装:

curl -fsSL https://get.docker.com | bash -s docker
systemctl enable docker
systemctl start docker

安装完后确认 Docker 正在运行:

docker --version
# 输出类似:Docker version 24.0.x
systemctl status docker
# 显示 active (running) 即正常

2. 创建数据目录

mkdir -p /opt/new-api/data
cd /opt/new-api

3. 编写 docker-compose.yml

/opt/new-api/ 目录下创建 docker-compose.yml

version: '3.8'

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data
    environment:
      - SQL_DSN=sqlite:///data/new-api.db
      - TZ=Asia/Shanghai
      - SESSION_SECRET=random_string_here_change_it
      - TOKEN_SECRET=another_random_string_change_it

说明:

  • SQL_DSN:默认用 SQLite,数据存在 ./data 目录。生产环境建议换成 MySQL 或 PostgreSQL。
  • SESSION_SECRETTOKEN_SECRET:随便改成长字符串,用于加密会话和令牌。
  • TZ:时区设置,国内建议 Asia/Shanghai

4. 启动服务

docker compose up -d

查看日志确认启动成功:

docker compose logs -f --tail=50

看到类似 listening on 0.0.0.0:3000 就表示启动成功。

5. 首次登录

浏览器访问 http://你的服务器IP:3000,默认管理员账号密码:

  • 用户名:root
  • 密码:123456

登录后第一件事:立即修改默认密码!到「个人设置」→「修改密码」。

6. 配置 Nginx 反向代理(可选但强烈建议)

如果需要通过域名 + HTTPS 访问,在宝塔或 1Panel 里创建站点后,添加反向代理配置:

server {
    listen 443 ssl http2;
    server_name api.yourdomain.com;

    ssl_certificate     /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    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;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

注意:proxy_set_header UpgradeConnection 两行是 WebSocket 支持,New API 的实时日志功能需要。

方式二:宝塔面板部署

1. 安装宝塔面板

如果还没装宝塔,执行:

wget -O install.sh https://download.bt.cn/install/install_6.0.sh && bash install.sh

安装完成后登录宝塔后台,安装 Docker 管理器插件(在「软件商店」→「Docker」里搜索安装)。

2. 创建站点

在宝塔「网站」→「添加站点」,填入域名(如 api.yourdomain.com),PHP 版本选「纯静态」。

3. 通过 Docker 部署

宝塔装好 Docker 管理器后,到「Docker」→「编排」→「添加编排」:

  • 编排名称:new-api
  • 把上面的 docker-compose.yml 内容粘贴进去
  • 点「提交」,等拉取镜像和启动完成

4. 配置反向代理

回到「网站」→ 点击刚创建的站点 →「反向代理」→「添加反向代理」:

  • 代理名称:new-api
  • 目标URL:http://127.0.0.1:3000
  • 发送域名:$host

如果需要 HTTPS,在「SSL」选项卡申请 Let’s Encrypt 证书。

方式三:1Panel 部署

1. 安装 1Panel

curl -sSL https://resource.fit2cloud.com/1panel/package/v1/install.sh -o install.sh && bash install.sh

安装完成后访问 1Panel 后台。

2. 通过容器编排部署

到「容器」→「编排」→「创建编排」:

  • 名称:new-api
  • 将 docker-compose.yml 内容粘贴进去
  • 点击「确认」,等待镜像拉取和容器启动

3. 配置网站反向代理

到「网站」→「创建网站」→「反向代理」:

  • 主域名:api.yourdomain.com
  • 代理地址:http://127.0.0.1:3000
  • HTTPS:勾选并申请证书

使用 MySQL(生产环境推荐)

SQLite 适合个人测试,生产环境建议用 MySQL。修改 docker-compose.yml 的环境变量:

environment:
  - SQL_DSN=root:yourpassword@tcp(127.0.0.1:3306)/newapi?charset=utf8mb4&parseTime=True&loc=Local
  - SESSION_SECRET=your_session_secret
  - TOKEN_SECRET=your_token_secret

注意:如果 MySQL 也在 Docker 里,127.0.0.1 要换成 MySQL 容器的网络地址或容器名。建议把 MySQL 也放到同一个 docker-compose 里:

services:
  mysql:
    image: mysql:8.0
    container_name: new-api-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
      MYSQL_DATABASE: newapi
    volumes:
      - mysql_data:/var/lib/mysql

  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data
    environment:
      - SQL_DSN=root:your_root_password@tcp(mysql:3306)/newapi?charset=utf8mb4&parseTime=True&loc=Local
      - TZ=Asia/Shanghai
    depends_on:
      - mysql

volumes:
  mysql_data:

更新 New API

# 拉取最新镜像
docker compose pull

# 重建容器
docker compose up -d

# 查看更新后的版本
docker compose logs -f --tail=20

更新前建议先备份数据:

# SQLite 备份
cp -r /opt/new-api/data /opt/new-api/data_backup_$(date +%Y%m%d)

# MySQL 备份
docker exec new-api-mysql mysqldump -u root -p newapi > /opt/new-api/backup_$(date +%Y%m%d).sql

常见问题

Q1:访问 3000 端口打不开

  • 检查防火墙/安全组是否放行 3000 端口
  • 执行 docker compose ps 确认容器状态是 Up
  • 查看日志:docker compose logs --tail=50

Q2:反向代理后 WebSocket 连不上

  • 确认 Nginx 配置了 UpgradeConnection
  • 宝塔用户检查「反向代理」配置文件里是否有 WebSocket 支持

Q3:添加渠道后测试不通

  • 检查 API Key 是否正确且未过期
  • 检查服务器能否访问目标 API 地址(curl https://api.openai.com
  • 如果用了代理,在环境变量中设置 HTTPS_PROXY

Q4:数据迁移怎么做

  • SQLite:直接复制 data/new-api.db 文件到新服务器
  • MySQL:用 mysqldump 导出再导入
  • 迁移后记得更新域名解析和 SSL 证书

Q5:并发量高时响应慢

  • SQLite 在高并发下性能有限,建议切换 MySQL 或 PostgreSQL
  • 增加服务器内存到 2G 以上
  • 在 New API 后台合理设置渠道权重和负载均衡

小结

New API 是目前比较好用的开源 AI 接口中转方案。Docker 部署最简单,宝塔和 1Panel 对不熟悉命令行的站长更友好。建议生产环境用 MySQL + Nginx 反代 + HTTPS,定期备份数据库。

来源:

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容