上一篇 下一篇 分享链接 返回 返回顶部

站长自建 AI 编程环境:Docker 部署 Open WebUI、Ollama 与 code-server 实战教程

发布人:慈云数据-客服中心 发布时间:5小时前 阅读量:0

AI编程 Docker部署教程|适合站长

随着 AI 编程工具的普及,越来越多站长、开发者和中小团队希望在自己的服务器上部署一套可控、稳定、低成本的 AI 编程环境。相比直接使用第三方在线平台,自建 AI 编程服务有几个明显优势:数据更可控、接口更灵活、可接入多种模型、便于团队统一使用,也方便与现有网站、后台系统或开发流程结合。

本文将以站长视角,介绍如何使用 Docker 部署一套适合日常开发、代码辅助、接口调试和团队使用的 AI 编程环境。文章内容偏实战,适合有一定服务器基础、熟悉 Linux 基本命令的站长阅读。


一、什么是 AI 编程 Docker 部署?

所谓 AI 编程 Docker 部署,简单来说就是把 AI 编程相关服务通过 Docker 容器运行在自己的服务器上。

常见的 AI 编程部署方案包括:

  1. 部署在线 AI 聊天 / 编程助手界面

    • 例如 Open WebUI、ChatGPT-Next-Web 等。
    • 可以接入 OpenAI、DeepSeek、Claude、通义千问、智谱、Ollama 等模型。
  2. 部署本地大模型服务

    • 例如 Ollama。
    • 可以运行 Qwen、DeepSeek Coder、Code Llama、Llama 等开源模型。
  3. 部署网页版代码编辑环境

    • 例如 code-server。
    • 在浏览器中使用 VS Code,适合远程开发。
  4. 通过反向代理提供 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

这里有几个地方需要注意:

  1. WEBUI_SECRET_KEY 建议改成复杂随机字符串。
  2. PASSWORD 是 code-server 登录密码,必须修改。
  3. /www/wwwroot 是宝塔面板常见的网站目录,如果你的服务器网站目录不是这个路径,请自行修改。
  4. 如果不想让 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。

如果云服务器安全组没有放行端口,需要在云厂商控制台开放 30008443 端口。后续如果使用 Nginx 反向代理,则建议只开放 80443,不要直接暴露内部端口。


八、下载 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 中就可以直接打开网站源码。

不过需要特别提醒:

不建议直接在生产网站目录上进行高风险修改。

更安全的做法是:

  1. 先备份网站目录;
  2. 在测试目录修改;
  3. 使用 Git 管理代码;
  4. 修改完成后再发布到正式环境。

站长可以使用 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. 不需要高配置服务器;
  2. 响应速度更快;
  3. 可选模型更多;
  4. 维护成本更低。

十五、常见问题与解决方法

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 编程不是完全替代开发者,而是成为站长的效率工具。正确部署和使用之后,它可以像一个随时在线的技术助手,帮助你更快完成网站维护、程序开发和服务器运维工作。

目录结构
全文