服务器 从零开始完整部署教程
适用于 Ubuntu 20.04 / 22.04 / 24.04 系统
获取源码链接🔗:https://pan.xunlei.com/s/VOrxmQy1xF84wmi2hsg5z80_A1?pwd=ia2x#
官方链接(推荐):https://github.com/QuantumNous/new-api.git
部署服务器:自行购买/找博主购买,优惠
博主微信:JHFFF897
融合云注册购买链接(对接阿里云):https://aliyun.dellidc.com/index/user/register/admin_id/112
腾讯云官网注册购买链接:
📋 前置准备
- 一台VPS服务器(配置建议:2核4G以上,硬盘20G以上)
- 服务器SSH连接信息(IP、端口、账号、密码)
- (可选)需要绑定的域名,提前解析到服务器IP
服务器推荐:
🔧 步骤1:系统更新与基础依赖安装
1.1 登录连接到服务器(finalshell登录也可)
ssh root@您的服务器IP
# 如果是普通用户,切换到root:
sudo -i1.2 更新系统软件包
apt update && apt upgrade -y1.3 安装基础依赖
apt install -y git curl wget vim build-essential ufw🐳 步骤2:安装Docker环境
2.1 自动安装Docker官方脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh2.2 验证Docker安装是否成功
docker --version # 显示Docker版本号表示成功
docker compose version # 显示Docker Compose版本号表示成功2.3 设置Docker开机自启
systemctl enable docker --now🚀 步骤3:部署New-API项目
3.1 克隆项目代码到/root目录
cd /root
git clone https://github.com/QuantumNous/new-api.git
cd new-api3.2 复制配置文件
cp .env.example .env3.3 (可选)修改配置文件
如果需要自定义端口、数据库密码等,可以编辑
.env文件:vim .env常用配置项说明:
# 服务端口,默认3000
PORT=3000
# 数据库配置(默认不需要修改,Docker内部使用)
DB_HOST=postgres
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_DATABASE=postgres
# Redis配置(默认不需要修改)
REDIS_ADDR=redis:6379
REDIS_PASSWORD=修改完成后按
Esc,输入:wq保存退出。3.4 启动所有服务
docker compose up -d第一次启动会自动拉取镜像,需要等待1-3分钟,取决于网络速度。
3.5 验证服务启动状态
docker compose ps看到三个服务状态都是
Up表示启动成功:new-api主服务postgres数据库redis缓存
🌐 步骤4:配置防火墙和端口开放
4.1 启用防火墙(如果未启用)
ufw enable4.2 开放必要端口
ufw allow 22 # SSH端口,必须开放否则无法连接服务器
ufw allow 80 # HTTP端口
ufw allow 443 # HTTPS端口
ufw allow 3000 # New-API服务端口4.3 重新加载防火墙配置
ufw reload4.4 查看防火墙状态
ufw status✅ 步骤5:访问验证
5.1 浏览器访问
打开浏览器输入:
http://您的服务器IP:3000如果能看到New-API登录页面,说明部署成功!
5.2 默认登录信息
- 账号:
root - 密码:
123456
⚠️ 重要:登录后请立即修改默认管理员密码,确保安全!
🔗 步骤6:(可选)绑定域名与配置HTTPS
6.1 安装Nginx
apt install -y nginx6.2 创建Nginx配置文件
vim /etc/nginx/sites-available/new-api粘贴以下内容,将xzapi.top替换为您的实际域名:
server {
listen 80;
server_name xzapi.top www.xzapi.top;
client_max_body_size 100M;
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_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
}
}保存退出。
6.3 启用配置文件
ln -s /etc/nginx/sites-available/new-api /etc/nginx/sites-enabled/6.4 测试Nginx配置是否正确
nginx -t显示
syntax is ok和test is successful表示配置正确。6.5 重载Nginx配置
systemctl reload nginx6.6 配置免费SSL证书(Let's Encrypt)将xzapi.top替换为您的实际域名
# 安装certbot
apt install -y certbot python3-certbot-nginx
# 自动申请并配置证书
certbot --nginx -d xzapi.top -d www.xzapi.top按照提示输入邮箱、同意协议等,证书会自动配置并设置自动续期。
配置完成后就可以通过
https://your-domain.com访问服务了!🛠️ 常用运维命令
服务管理
cd /root/new-api
# 启动服务
docker compose up -d
# 停止服务
docker compose down
# 重启服务
docker compose restart
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs -f # 查看所有日志
docker compose logs -f new-api # 只查看API服务日志升级版本
cd /root/new-api
docker compose pull # 拉取最新镜像
docker compose up -d # 重启服务数据备份
cd /root/new-api
# 备份数据库
docker compose exec postgres pg_dump -U postgres postgres > backup_$(date +%Y%m%d).sql数据恢复
cd /root/new-api
# 先停止API服务
docker compose stop new-api
# 导入备份文件(backup.sql替换为实际备份文件名)
docker compose exec -T postgres psql -U postgres postgres < backup.sql
# 重启服务
docker compose up -d重置管理员密码
如果忘记密码,执行以下命令重置为
123456:cd /root/new-api
docker compose exec postgres psql -U postgres -c "UPDATE \"user\" SET \"password\" = '\$2a\$10\$Z8H4kL9M2nP3qR5sT7uV9wX0yZ1aB3cD5eF7gH9jK1lM3nO5pQ7rS9tV1' WHERE \"username\" = 'root';"🎯 部署完成后建议操作
- ✅ 登录后台修改默认管理员密码
- ✅ 配置安全组/防火墙,只开放必要端口
- ✅ 配置HTTPS证书
- ✅ 定期备份数据库
- ✅ 添加模型渠道和配置价格
- ✅ 配置用户权限和额度
❓ 常见问题排查
Q1:访问IP:3000打不开?
- 检查服务是否启动:
docker compose ps看是否都是Up状态 - 检查3000端口是否开放:
ufw status看是否有3000端口允许 - 检查服务器安全组是否开放3000端口(云服务器需要在后台配置)
- 查看服务日志:
docker compose logs new-api看是否有报错
Q2:Docker启动失败?
- 检查系统版本是否支持:Ubuntu 20.04+
- 检查虚拟化是否开启(VPS一般默认开启)
- 查看Docker日志:
journalctl -u docker
Q3:数据库连接失败?
- 检查PostgreSQL容器是否启动:
docker compose ps postgres - 查看数据库日志:
docker compose logs postgres - 确认
.env文件中的数据库配置是否正确
Q4:升级版本后页面不更新?
- 强制刷新浏览器缓存(Ctrl+F5)
- 重启容器:
docker compose restart new-api - 清理浏览器缓存或使用无痕模式测试
📚 参考链接
- 项目官方仓库:https://github.com/QuantumNous/new-api
🚀 一键部署脚本(直接复制到Ubuntu服务器root用户下执行即可)
💡 使用方法:
- 连接到新服务器,切换到root用户: sudo -i
- 创建脚本文件:
vim deploy.sh - 粘贴下面的全部脚本内容,输入复制粘贴:按键盘( i )输入下面内容。保存退出:按Esc ,然后输入(:wq)
- 赋予执行权限:
chmod +x deploy.sh - 执行脚本:
./deploy.sh
#!/bin/bash
# 自动部署New-API脚本
# 适用于Ubuntu 20.04/22.04/24.04
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${YELLOW}=====================================${NC}"
echo -e "${YELLOW} New-API 自动部署脚本开始执行... ${NC}"
echo -e "${YELLOW}=====================================${NC}"
echo ""
# 检查是否为root用户
if [ "$(id -u)" != "0" ]; then
echo -e "${RED}错误:请使用root用户执行此脚本${NC}"
exit 1
fi
# 步骤1:系统更新和基础依赖安装
echo -e "${GREEN}[1/7] 正在更新系统并安装基础依赖...${NC}"
apt update -y
apt upgrade -y
apt install -y git curl wget vim build-essential ufw
echo -e "${GREEN}基础依赖安装完成!${NC}"
echo ""
# 步骤2:安装Docker环境
echo -e "${GREEN}[2/7] 正在安装Docker环境...${NC}"
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl enable docker --now
docker version
docker compose version
echo -e "${GREEN}Docker安装完成!${NC}"
echo ""
# 步骤3:克隆项目代码
echo -e "${GREEN}[3/7] 正在克隆New-API项目代码...${NC}"
cd /root
if [ -d "new-api" ]; then
echo -e "${YELLOW}检测到已存在new-api目录,正在备份...${NC}"
mv new-api new-api_backup_$(date +%Y%m%d_%H%M%S)
fi
git clone https://github.com/QuantumNous/new-api.git
cd new-api
cp .env.example .env
echo -e "${GREEN}项目代码克隆完成!${NC}"
echo ""
# 步骤4:启动服务
echo -e "${GREEN}[4/7] 正在启动New-API服务...${NC}"
docker compose up -d
echo -e "${YELLOW}等待服务启动完成...${NC}"
sleep 30
echo ""
# 步骤5:配置防火墙
echo -e "${GREEN}[5/7] 正在配置防火墙...${NC}"
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3000/tcp
ufw reload
echo -e "${GREEN}防火墙配置完成!${NC}"
echo ""
# 步骤6:验证服务状态
echo -e "${GREEN}[6/7] 正在验证服务启动状态...${NC}"
docker compose ps
echo ""
# 步骤7:显示部署结果
echo -e "${YELLOW}=====================================${NC}"
echo -e "${GREEN}✅ New-API 部署完成!${NC}"
echo -e "${YELLOW}=====================================${NC}"
echo ""
echo -e "${GREEN}访问地址:${NC}http://$(curl -s ifconfig.me):3000"
echo -e "${GREEN}默认账号:${NC}root"
echo -e "${GREEN}默认密码:${NC}123456"
echo ""
echo -e "${YELLOW}⚠️ 重要提示:${NC}"
echo -e "1. 请立即登录后台修改默认管理员密码"
echo -e "2. 如果无法访问,请检查服务器安全组是否开放3000端口"
echo -e "3. 如需绑定域名,请参考教程中的Nginx配置部分"
echo ""
echo -e "${GREEN}常用命令:${NC}"
echo -e " 进入项目目录:cd /root/new-api"
echo -e " 查看服务状态:docker compose ps"
echo -e " 查看服务日志:docker compose logs -f"
echo -e " 重启服务:docker compose restart"
echo ""
echo -e "${YELLOW}=====================================${NC}"