搬瓦工 VPS 私有部署 ChatGPT Next Web 教程
ChatGPT Next Web(也称 NextChat)是一款轻量级的 ChatGPT 聊天界面,支持一键部署为私有服务。它界面简洁、部署方便、资源占用极低,是最受国内用户欢迎的 AI 对话界面之一。NextChat 支持对接 OpenAI、Azure、自定义 API 等多种后端。本教程将介绍在搬瓦工 VPS 上完整部署 NextChat 的流程。
一、NextChat 特点
- 极度轻量:前端项目,资源占用极小,512MB 内存即可运行。
- 一键部署:Docker 单条命令即可完成部署。
- 多模型支持:OpenAI、Azure OpenAI、Google Gemini、自定义 API 等。
- 数据本地化:聊天数据存储在浏览器本地,隐私安全。
- 丰富功能:支持 Markdown 渲染、代码高亮、Prompt 预设等。
- 访问控制:通过访问密码保护服务。
二、环境要求
- 操作系统:Ubuntu 20.04 或更高版本。
- 内存:512MB 即可(NextChat 本身非常轻量)。
- Docker:需要 Docker 环境。
部署前需安装 Docker,参考 Docker 安装教程。选购 VPS 请参考 全部方案。
三、Docker 快速部署
3.1 对接本地模型
如果已在 VPS 上部署了 Llama.cpp 等推理服务:
docker run -d \
--name chatgpt-next-web \
-p 3000:3000 \
-e OPENAI_API_KEY=not-needed \
-e BASE_URL=http://host.docker.internal:8080 \
-e CODE=your_access_password \
--extra-host=host.docker.internal:host-gateway \
--restart unless-stopped \
yidadaa/chatgpt-next-web:latest
3.2 对接远程 API
docker run -d \
--name chatgpt-next-web \
-p 3000:3000 \
-e OPENAI_API_KEY=sk-your-api-key \
-e CODE=password1,password2 \
-e CUSTOM_MODELS=-gpt-4-32k,+gpt-4o \
--restart unless-stopped \
yidadaa/chatgpt-next-web:latest
四、使用 Docker Compose
mkdir -p /opt/nextchat && cd /opt/nextchat
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
nextchat:
image: yidadaa/chatgpt-next-web:latest
ports:
- "3000:3000"
environment:
- OPENAI_API_KEY=not-needed
- BASE_URL=http://host.docker.internal:8080
- CODE=your_secure_password
- HIDE_USER_API_KEY=1
- DISABLE_GPT4=0
- ENABLE_BALANCE_QUERY=0
- HIDE_BALANCE_QUERY=1
- CUSTOM_MODELS=+local-model
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
EOF
docker compose up -d
五、环境变量详解
OPENAI_API_KEY:API 密钥,对接本地模型时设为任意值。BASE_URL:API 基础地址(不含 /v1 后缀)。CODE:访问密码,多个密码用逗号分隔。HIDE_USER_API_KEY:设为 1 隐藏用户自定义 API Key 选项。CUSTOM_MODELS:自定义模型列表,+ 添加,- 隐藏。DEFAULT_MODEL:默认使用的模型名称。DISABLE_GPT4:设为 1 禁用 GPT-4 系列模型。
六、对接 One API 管理多个密钥
配合 One API 可以同时管理多个模型提供商的密钥:
# One API 运行在 3300 端口
docker run -d \
--name chatgpt-next-web \
-p 3000:3000 \
-e OPENAI_API_KEY=sk-your-one-api-key \
-e BASE_URL=http://host.docker.internal:3300 \
-e CODE=your_password \
--extra-host=host.docker.internal:host-gateway \
--restart unless-stopped \
yidadaa/chatgpt-next-web:latest
七、Nginx 反向代理与 HTTPS
cat > /etc/nginx/sites-available/nextchat <<'EOF'
server {
listen 80;
server_name chat.yourdomain.com;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
EOF
ln -s /etc/nginx/sites-available/nextchat /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
配合 Let's Encrypt 可以添加 HTTPS 支持。
八、自定义 Prompt 预设
NextChat 支持在界面中创建自定义的 Prompt 预设(面具/Mask),可以预设系统提示词、模型参数和对话模板。在界面左侧菜单的 Mask 页面中管理。
九、更新 NextChat
cd /opt/nextchat
docker compose pull
docker compose up -d
十、NextChat 与其他界面对比
NextChat 的优势在于极度轻量和部署简单,适合只需要基础聊天功能的场景。Open WebUI 功能最全面,适合需要用户管理和 RAG 的场景。LobeChat 界面最精美,插件生态最丰富。
十一、常见问题
无法连接到本地 API
Docker 容器内的 localhost 指向容器自身。要访问宿主机上的服务,需使用 host.docker.internal 并配置 extra_hosts。
流式响应不工作
确认 Nginx 代理配置中包含 WebSocket 支持头部,并且没有启用响应缓冲。
访问密码不生效
确认 CODE 环境变量已正确设置并重启容器。注意密码区分大小写。
总结
ChatGPT Next Web 是部署私有 AI 聊天界面最简单的方案。一条 Docker 命令即可完成部署,非常适合搬瓦工 VPS 上的快速搭建。配合 Llama.cpp 本地模型或 New API 代理服务,可以搭建完整的 AI 聊天方案。选购搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,购买链接:bwh81.net。