# 安装 docker 和 docker-coponse
安装 docker
curl -fsSL https://get.docker.com -o get-docker.sh | |
sudo sh get-docker.sh |
安装 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v5.0.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
授予执行权限
chmod +x /usr/local/bin/docker-compose |
测试是否安装成功
docker --version | |
docker-compose version |
# 创建并更改 docker-compose.yml
拉取 Git 并编辑 docker-compose.yml 文件
git clone https://github.com/QuantumNous/new-api.git | |
cd new-api | |
# 编辑 docker-compose.yml 配置 | |
nano docker-compose.yml |
version: '3.4' | |
services: | |
# --- New-API 主程序 --- | |
new-api: | |
image: calciumion/new-api:latest | |
container_name: new-api | |
restart: always | |
command: --log-dir /app/logs | |
# 端口保持关闭,只通过 NPM 访问,安全! | |
# ports: | |
# - "3000: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 | |
- 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 | |
# --- Nginx Proxy Manager (反向代理 + SSL) --- | |
npm: | |
image: 'jc21/nginx-proxy-manager:latest' | |
container_name: nginx-proxy-manager | |
restart: always | |
ports: | |
- '80:80' # HTTP | |
- '443:443' # HTTPS | |
- '81:81' # 管理后台 | |
volumes: | |
- ./npm/data:/data | |
- ./npm/letsencrypt:/etc/letsencrypt | |
depends_on: | |
- new-api | |
# --- 数据库 --- | |
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 | |
# --- 缓存 --- | |
redis: | |
image: redis:latest | |
container_name: redis | |
restart: always | |
volumes: | |
- ./redis_data:/data |
# 启动服务
docker-compose up -d |
# 配置域名和 SSL
# 1. 登录管理后台
-
在浏览器访问:
http://你的服务器IP:81 -
设置账号密码
# 2. 添加反向代理
如果你使用的是 cloudflae Saas + 自定义主机,则需要两个域名都填写


# 针对 AI 流式传输的优化 (重要)
New-API 做中转时,如果上游(比如 OpenAI)响应很慢,或者对话很长,Nginx 默认的超时时间(60 秒)可能会切断连接,导致输出一半中断
代理服务编辑——>点击⚙️
# 增加超时时间,防止长对话中断 | |
proxy_read_timeout 300s; | |
proxy_connect_timeout 300s; | |
proxy_send_timeout 300s; | |
# 关闭缓存,确保流式输出流畅 | |
proxy_buffering off; | |
proxy_cache off; | |
chunked_transfer_encoding on; |
保存即可
# 迁移
停止 docker 容器
docker-compose down |
打包整个目录为压缩文件
cd /root | |
# 格式: tar -czvf [压缩包名] [文件夹名] | |
tar -czvf new-api-backup.tar.gz new-api |
到新服务器上解压
cd /root | |
tar -xzvf new-api-backup.tar.gz | |
cd new-api |
检查 docker-compose 环境
docker-compose version |
启动服务
docker-compose up -d |
# 初始化数据
# 1. 停止并删除旧容器 | |
docker-compose down | |
# 2. (可选) 如果你想彻底从零开始,把旧的配置文件夹也删了(慎用!会清空所有数据和 NPM 配置) | |
# rm -rf npm data logs pg_data redis_data | |
# 3. 启动新服务 (Docker 会自动在当前目录创建 pg_data 等文件夹) | |
docker-compose up -d | |
# 4. 查看运行状态 | |
docker-compose ps |