站长自建 AI 编程环境:Docker 部署 Open WebUI、Ollama 与 code-server 实战教程
AI编程 Docker部署教程|适合站长
随着 AI 编程工具的普及,越来越多站长、开发者和中小团队希望在自己的服务器上部署一套可控、稳定、低成本的 AI 编程环境。相比直接使用第三方在线平台,自建 AI 编程服务有几个明显优势:数据更可控、接口更灵活、可接入多种模型、便于团队统一使用,也方便与现有网站、后台系统或开发流程结合。
本文将以站长视角,介绍如何使用 Docker 部署一套适合日常开发、代码辅助、接口调试和团队使用的 AI 编程环境。文章内容偏实战,适合有一定服务器基础、熟悉 Linux 基本命令的站长阅读。
一、什么是 AI 编程 Docker 部署?
所谓 AI 编程 Docker 部署,简单来说就是把 AI 编程相关服务通过 Docker 容器运行在自己的服务器上。
常见的 AI 编程部署方案包括:
-
部署在线 AI 聊天 / 编程助手界面
- 例如 Open WebUI、ChatGPT-Next-Web 等。
- 可以接入 OpenAI、DeepSeek、Claude、通义千问、智谱、Ollama 等模型。
-
部署本地大模型服务
- 例如 Ollama。
- 可以运行 Qwen、DeepSeek Coder、Code Llama、Llama 等开源模型。
-
部署网页版代码编辑环境
- 例如 code-server。
- 在浏览器中使用 VS Code,适合远程开发。
-
通过反向代理提供 HTTPS 访问
- 使用 Nginx、Nginx Proxy Manager、Caddy 等。
- 配置域名、SSL 证书和访问控制。
本文会重点介绍一个适合站长的组合方案:
Docker + Ollama + Open WebUI + code-server + Nginx 反向代理
这套方案既可以用于 AI 对话和代码生成,也可以用于远程写代码、修改网站程序、维护服务器脚本。
二、适合站长的部署架构
推荐架构如下:
用户浏览器
│
├── https://ai.example.com → Open WebUI,AI 编程助手
│
└── https://code.example.com → code-server,网页版 VS Code
│
▼
Nginx / Caddy 反向代理
│
▼
Docker 容器环境
├── Open WebUI
├── Ollama
└── code-server
其中:
- Open WebUI:提供类似 ChatGPT 的网页界面,可用于代码问答、生成脚本、解释报错、优化 SQL 等。
- Ollama:本地模型运行服务,可拉取和运行开源大模型。
- code-server:网页版 VS Code,可远程编辑网站代码。
- Nginx / Caddy:负责域名绑定、HTTPS 证书、反向代理。
如果你的服务器配置较低,也可以不部署 Ollama,而是让 Open WebUI 直接调用第三方 API,例如 OpenAI、DeepSeek、通义千问等。
三、服务器配置建议
不同 AI 编程方案对服务器配置要求不同。
1. 轻量方案:只接第三方 API
如果你只部署 Open WebUI 或 ChatGPT-Next-Web,然后接入第三方大模型 API,服务器配置要求很低。
推荐配置:
| 项目 | 建议 |
|---|---|
| CPU | 1 核以上 |
| 内存 | 1GB 以上 |
| 硬盘 | 20GB 以上 |
| 系统 | Ubuntu 22.04 / Debian 12 |
| 带宽 | 3Mbps 以上 |
这种方案适合大多数站长,成本低、部署简单、响应速度取决于第三方 API。
2. 本地模型方案:部署 Ollama
如果你希望在服务器本地运行大模型,对服务器配置要求会高很多。
推荐配置:
| 模型类型 | 建议配置 |
|---|---|
| 1.5B / 3B 模型 | 4GB 内存以上 |
| 7B 模型 | 8GB - 16GB 内存 |
| 14B 模型 | 24GB 内存以上 |
| GPU 推理 | NVIDIA 显卡更佳 |
如果是普通云服务器,没有 GPU,也可以运行小模型,但速度可能较慢。对于站长来说,如果只是辅助写脚本、生成 Nginx 配置、分析 PHP 报错,小参数模型也能满足一部分需求。
四、安装 Docker 和 Docker Compose
以下教程以 Ubuntu 22.04 为例。
1. 更新系统
sudo apt update
sudo apt upgrade -y
2. 安装基础工具
sudo apt install -y curl wget git vim ca-certificates gnupg lsb-release
3. 安装 Docker
可以使用官方脚本快速安装:
curl -fsSL https://get.docker.com | bash
安装完成后,查看 Docker 版本:
docker -v
如果能够显示版本号,说明安装成功。
4. 设置 Docker 开机自启
sudo systemctl enable docker
sudo systemctl start docker
5. 安装 Docker Compose
新版 Docker 通常自带 Compose 插件,可以通过以下命令检查:
docker compose version
如果能正常输出版本号,就可以继续下一步。
五、创建项目目录
建议统一把 AI 编程相关服务放在 /opt/ai-code 目录下。
sudo mkdir -p /opt/ai-code
cd /opt/ai-code
创建几个数据目录:
sudo mkdir -p open-webui ollama code-server nginx
目录说明:
/opt/ai-code
├── docker-compose.yml
├── open-webui # Open WebUI 数据
├── ollama # Ollama 模型数据
├── code-server # code-server 配置
└── nginx # Nginx 配置,可选
六、编写 Docker Compose 配置
在 /opt/ai-code 目录下创建 docker-compose.yml:
vim docker-compose.yml
写入以下内容:
services:
ollama:
image: ollama/ollama:latest
container_name: ai-ollama
restart: always
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: ai-open-webui
restart: always
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- WEBUI_SECRET_KEY=please_change_this_secret_key
volumes:
- ./open-webui:/app/backend/data
depends_on:
- ollama
code-server:
image: lscr.io/linuxserver/code-server:latest
container_name: ai-code-server
restart: always
ports:
- "8443:8443"
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- PASSWORD=please_change_code_password
- SUDO_PASSWORD=please_change_sudo_password
- DEFAULT_WORKSPACE=/config/workspace
volumes:
- ./code-server:/config
- /www/wwwroot:/config/workspace/wwwroot
这里有几个地方需要注意:
WEBUI_SECRET_KEY建议改成复杂随机字符串。PASSWORD是 code-server 登录密码,必须修改。/www/wwwroot是宝塔面板常见的网站目录,如果你的服务器网站目录不是这个路径,请自行修改。- 如果不想让 code-server 直接操作网站目录,可以把它改成独立工作目录,例如:
- ./workspace:/config/workspace
七、启动服务
在 /opt/ai-code 目录执行:
docker compose up -d
查看容器状态:
docker ps
如果看到类似以下容器,说明启动成功:
ai-ollama
ai-open-webui
ai-code-server
访问服务:
http://服务器IP:3000
http://服务器IP:8443
其中:
3000是 Open WebUI。8443是 code-server。
如果云服务器安全组没有放行端口,需要在云厂商控制台开放 3000 和 8443 端口。后续如果使用 Nginx 反向代理,则建议只开放 80 和 443,不要直接暴露内部端口。
八、下载 AI 编程模型
如果你部署了 Ollama,就需要拉取模型。
进入 Ollama 容器:
docker exec -it ai-ollama bash
拉取一个适合编程的模型,例如:
ollama pull qwen2.5-coder:7b
也可以选择较小模型:
ollama pull qwen2.5-coder:3b
或者拉取通用模型:
ollama pull llama3.1:8b
查看已安装模型:
ollama list
测试模型:
ollama run qwen2.5-coder:7b
然后输入:
请帮我写一个 Nginx 反向代理配置,将 ai.example.com 转发到本机 3000 端口。
如果模型能正常回答,说明 Ollama 运行正常。
九、配置 Open WebUI
浏览器访问:
http://服务器IP:3000
首次访问需要注册管理员账号。注册完成后进入后台,可以看到模型列表。如果 Open WebUI 已经正确连接 Ollama,通常会自动识别 Ollama 中的模型。
你可以在 Open WebUI 中尝试输入:
你是一个资深 PHP 和 Linux 运维工程师,请帮我分析以下报错,并给出修复步骤。
或者:
请帮我写一个用于备份 MySQL 数据库的 Shell 脚本,要求保留最近 7 天备份。
对于站长来说,Open WebUI 的使用场景非常丰富:
- 生成 Nginx 配置;
- 分析 PHP、Node.js、Python 报错;
- 编写 Shell 维护脚本;
- 优化 MySQL 查询语句;
- 生成网站后台接口代码;
- 编写 WordPress 插件基础代码;
- 检查代码安全风险;
- 生成 robots.txt、sitemap 规则;
- 辅助撰写技术文章和说明文档。
十、配置 code-server
浏览器访问:
http://服务器IP:8443
输入你在 docker-compose.yml 中设置的 PASSWORD,即可进入网页版 VS Code。
如果你挂载了网站目录,例如:
- /www/wwwroot:/config/workspace/wwwroot
那么在 code-server 中就可以直接打开网站源码。
不过需要特别提醒:
不建议直接在生产网站目录上进行高风险修改。
更安全的做法是:
- 先备份网站目录;
- 在测试目录修改;
- 使用 Git 管理代码;
- 修改完成后再发布到正式环境。
站长可以使用 code-server 完成以下工作:
- 修改网站模板;
- 编辑 PHP、HTML、CSS、JavaScript;
- 编写自动化脚本;
- 调试接口文件;
- 配合 AI 生成代码后再人工审查;
- 维护静态站点或文档项目。
十一、使用 Nginx 配置域名访问
直接使用 IP 加端口访问不够专业,也不安全。建议使用域名和 HTTPS。
假设你有两个域名:
ai.example.com
code.example.com
分别指向服务器 IP。
1. Open WebUI 的 Nginx 配置
创建配置文件:
sudo vim /etc/nginx/conf.d/ai.example.com.conf
写入:
server {
listen 80;
server_name ai.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
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_read_timeout 3600;
proxy_send_timeout 3600;
}
}
2. code-server 的 Nginx 配置
创建配置文件:
sudo vim /etc/nginx/conf.d/code.example.com.conf
写入:
server {
listen 80;
server_name code.example.com;
location / {
proxy_pass http://127.0.0.1:8443;
proxy_http_version 1.1;
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_read_timeout 3600;
proxy_send_timeout 3600;
}
}
测试 Nginx 配置:
sudo nginx -t
重载 Nginx:
sudo systemctl reload nginx
十二、配置 HTTPS 证书
建议使用 Certbot 申请 Let’s Encrypt 免费证书。
安装 Certbot:
sudo apt install -y certbot python3-certbot-nginx
申请证书:
sudo certbot --nginx -d ai.example.com
sudo certbot --nginx -d code.example.com
按照提示输入邮箱、同意协议即可。
证书申请成功后,Certbot 会自动修改 Nginx 配置,并加入 HTTPS 支持。
测试自动续期:
sudo certbot renew --dry-run
十三、安全设置建议
AI 编程环境如果暴露到公网,安全非常重要。尤其是 code-server,一旦密码泄露,相当于别人可以远程编辑你的服务器文件。
1. 使用强密码
不要使用以下弱密码:
123456
admin
password
888888
建议使用至少 16 位随机密码,例如:
A9f#28Lm@qP7xTz!
2. 限制访问 IP
如果你固定办公 IP,可以在 Nginx 中限制访问:
location / {
allow 你的IP;
deny all;
proxy_pass http://127.0.0.1:8443;
}
3. 不直接暴露容器端口
如果已经配置了 Nginx 反向代理,可以考虑把 Docker 端口绑定到本地地址:
ports:
- "127.0.0.1:3000:8080"
- "127.0.0.1:8443:8443"
这样外部无法直接通过 服务器IP:3000 访问,只能通过 Nginx 访问。
修改后重启:
docker compose down
docker compose up -d
4. 定期更新镜像
cd /opt/ai-code
docker compose pull
docker compose up -d
5. 做好数据备份
至少备份以下目录:
/opt/ai-code/open-webui
/opt/ai-code/ollama
/opt/ai-code/code-server
如果 code-server 挂载了网站目录,也要备份网站目录和数据库。
十四、接入第三方大模型 API
如果你的服务器配置较低,不适合运行本地模型,可以在 Open WebUI 中接入第三方 API。
常见模型服务包括:
- OpenAI API;
- DeepSeek API;
- 阿里云百炼 / 通义千问;
- 智谱 GLM;
- Moonshot Kimi;
- OpenRouter;
- SiliconFlow。
接入方式通常是在 Open WebUI 后台添加 OpenAI 兼容接口。
常见配置项包括:
API Base URL
API Key
Model Name
例如某些 OpenAI 兼容平台会提供类似地址:
https://api.example.com/v1
然后填入对应 API Key,即可在 Open WebUI 里调用。
对于站长来说,这种方式更推荐,因为:
- 不需要高配置服务器;
- 响应速度更快;
- 可选模型更多;
- 维护成本更低。
十五、常见问题与解决方法
1. Open WebUI 无法连接 Ollama
检查容器是否运行:
docker ps
查看日志:
docker logs ai-open-webui
docker logs ai-ollama
确认 docker-compose.yml 中配置了:
OLLAMA_BASE_URL=http://ollama:11434
并且两个服务在同一个 compose 项目中。
2. 模型下载很慢
可以尝试:
ollama pull qwen2.5-coder:3b
先下载小模型测试。国内服务器下载速度可能受网络影响,建议选择网络较好的机器或使用镜像加速方式。
3. code-server 登录失败
检查密码是否正确:
PASSWORD=please_change_code_password
修改密码后需要重启容器:
docker compose restart code-server
4. 访问域名出现 502
常见原因:
- 容器没有启动;
- Nginx 代理端口写错;
- 防火墙拦截;
- Docker 端口没有映射成功。
排查命令:
docker ps
curl http://127.0.0.1:3000
curl http://127.0.0.1:8443
sudo nginx -t
5. 服务器内存不足
查看内存:
free -h
查看容器资源占用:
docker stats
如果内存较小,建议不要运行 7B 以上模型,可以改用第三方 API 或选择 1.5B、3B 小模型。
十六、站长实际使用建议
如果你是个人站长或小团队,推荐按照以下方式使用:
方案一:低成本稳定方案
Open WebUI + 第三方 API + code-server
优点:
- 服务器压力小;
- 模型效果好;
- 维护简单;
- 适合生产环境。
适合:
- WordPress 站长;
- 独立博客站长;
- 企业官网维护;
- 小程序 / 后台接口开发;
- SEO 内容站维护。
方案二:本地可控方案
Open WebUI + Ollama + code-server
优点:
- 数据不经过第三方 API;
- 可离线使用;
- 适合内部测试和私有项目。
缺点:
- 服务器配置要求高;
- 推理速度受硬件影响;
- 模型效果可能不如商业大模型。
适合:
- 有高配置服务器的开发者;
- 对数据隐私要求较高的团队;
- 内网开发环境;
- AI 工具实验环境。
十七、维护与升级
1. 查看日志
docker logs -f ai-open-webui
docker logs -f ai-ollama
docker logs -f ai-code-server
2. 重启服务
docker compose restart
3. 停止服务
docker compose down
4. 更新服务
cd /opt/ai-code
docker compose pull
docker compose up -d
5. 清理无用镜像
docker image prune -a
注意:清理前要确认不再需要旧镜像。
十八、总结
通过 Docker 部署 AI 编程环境,对站长来说是一种非常实用的能力。它不仅可以提升日常开发效率,还能帮助站长更快处理服务器配置、网站报错、代码修改、脚本编写和内容生产等任务。
本文介绍的方案:
Docker + Ollama + Open WebUI + code-server + Nginx HTTPS
适合想要自建 AI 编程工作台的站长使用。
如果你追求简单稳定,建议优先采用:
Open WebUI + 第三方大模型 API
如果你更重视数据私有化,并且服务器配置足够,可以进一步部署:
Ollama + 本地编程模型
无论选择哪种方案,都要注意安全:使用强密码、开启 HTTPS、限制访问 IP、定期备份数据,并避免直接在生产环境中让 AI 修改关键代码。
AI 编程不是完全替代开发者,而是成为站长的效率工具。正确部署和使用之后,它可以像一个随时在线的技术助手,帮助你更快完成网站维护、程序开发和服务器运维工作。