从零部署 OpenClaw AI 助手并创建个人网站
最近我在自己的服务器上成功部署了 OpenClaw AI 助手 Nova,并让她帮我创建了一个个人网站"灰狗的糖果屋"。整个过程虽然遇到了一些问题,但最终都顺利解决了。这篇文章详细记录整个部署过程,希望能帮助到同样想要尝试的人。
目录
什么是 OpenClaw
OpenClaw 是一个开源的 AI 助手框架,可以部署在自己的服务器上,支持多种大模型,并且可以集成各种技能(Skills)。它可以通过 Telegram、WhatsApp、飞书等平台进行交互,就像一个随时待命的数字助手。
我的 AI 助手叫 Nova,是一个数字伙伴,平时认真冷峻但偶尔有幽默感。她可以帮我执行各种任务:文件操作、Shell 命令、Web 搜索、网站部署等等。
OpenClaw 部署步骤
1. 环境准备
首先确保你的服务器满足以下条件:
- 操作系统:Ubuntu 20.04+ 或其他 Linux 发行版
- Node.js:v18+(OpenClaw 使用 Node.js 运行)
- Docker:可选,但推荐安装(用于容器化部署)
- 至少 2GB 内存
2. 安装 OpenClaw
# 安装 Node.js(如果还没有)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# 安装 OpenClaw
npm install -g openclaw
# 初始化
openclaw init
3. 配置 OpenClaw
按照提示完成配置,包括:
- 选择模型提供商(如 zai、OpenAI、Anthropic 等)
- 配置 API 密钥
- 选择交互平台(飞书、Telegram 等)
- 配置工作空间目录
4. 启动 OpenClaw Gateway
# 启动服务
openclaw gateway start
# 查看状态
openclaw gateway status
5. 连接交互平台
如果你选择了飞书,需要:
- 在飞书开放平台创建应用
- 获取 App ID 和 App Secret
- 配置机器人事件订阅
- 在 OpenClaw 配置中填写这些信息
创建个人网站
部署好 OpenClaw 后,就可以让 AI 助手帮你创建网站了。我的需求是:
- 网站名称:灰狗的糖果屋
- 功能:展示博客、产品经理工作总结、技术文章、资源库
- 技术栈:简单、易部署、支持内网访问
1. 让 AI 助手创建网站
只需要跟 Nova 说:"在服务器部署一个个人网站,叫灰狗的糖果屋,支持展示一些博客,产品经理日常工作总结,技术博客,产品经理日常要用到的一些资源。然后把部署好后的url给我"
Nova 就会自动:
- 创建网站目录结构
- 编写 HTML、CSS 文件
- 配置 Python http.server
- 启动服务
- 提供访问地址
2. 网站自动部署
Nova 自动创建了以下结构:
/home/root123/graypuppy-candy-house/
├── www/ # 网站根目录
│ ├── index.html # 首页
│ ├── styles.css # 样式文件
│ ├── blog/ # 博客文章目录
│ │ └── hello.html # 示例博客文章
│ └── 404.html # 404错误页面
├── nginx-conf/ # Nginx配置(备用)
├── manage.sh # 管理脚本
└── README.md # 文档
遇到的第一个问题:Docker 权限
问题描述
执行 `docker ps` 时报错:permission denied while trying to connect to the docker API
原因分析
当前用户不在 docker 组中,无法直接访问 Docker socket
解决方案
将用户添加到 docker 组:
# 添加用户到 docker 组
sudo usermod -aG docker $USER
# 重新登录(重要!让组权限生效)
# 退出 SSH 后重新连接
# 验证
groups
或者临时切换到 docker 组执行命令:
sg docker -c "docker ps -a"
遇到的第二个问题:Nginx 配置
需求
我有域名 ai.graypuppy.cn,DNS 解析到服务器的 80 端口,但实际服务在 8080 端口(nginx-proxy 容器)。我希望访问域名时直接显示"灰狗的糖果屋"。
原有情况
- nginx-proxy 容器运行在 8080 端口
- 80 端口映射到 8080 端口
- 原配置只有 /ai-edu 和 /ai-edu-backend 路径
解决方案
修改 Nginx 配置文件,在根路径 / 添加反向代理:
# 灰狗的糖果屋 - 根路径
location / {
proxy_pass http://172.17.0.1:8888/;
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;
}
操作步骤
- 找到 Nginx 配置文件:
/home/root123/docker/nginx/conf/conf.d/default.conf - 在 server 块中添加上述 location / 配置
- 重启 nginx-proxy 容器:
docker restart nginx-proxy - 验证:
curl http://localhost:8080/
遇到的第三个问题:端口冲突
问题描述
最初尝试使用 8080 端口启动 Python http.server,但提示 Address already in use
原因分析
8080 端口已被 nginx-proxy 容器占用
解决方案
改用 8888 端口启动网站服务
cd /home/root123/graypuppy-candy-house/www
python3 -m http.server 8888
总结
通过这次部署,我学到了:
- OpenClaw 很强大:AI 助手可以自动完成复杂的部署任务,大大提高效率
- 权限管理很重要:Linux 权限和 Docker 组权限需要正确配置
- Nginx 配置灵活:通过反向代理可以实现多个服务的统一入口
- 问题解决要有耐心:遇到报错不要慌,查看日志、分析原因、逐步排查
最终效果
现在访问 http://ai.graypuppy.cn 就可以看到"灰狗的糖果屋"网站了!网站包含博客、产品经理工作总结、技术博客和资源库四个模块,设计简洁优雅,响应式布局支持移动端访问。
访问路径
http://ai.graypuppy.cn/- 灰狗的糖果屋(首页)http://ai.graypuppy.cn/ai-edu- AI-Edu 应用http://ai.graypuppy.cn/ai-edu-backend/- AI-Edu 后端 API
管理命令
# 启动网站
/home/root123/graypuppy-candy-house/manage.sh start
# 停止网站
/home/root123/graypuppy-candy-house/manage.sh stop
# 查看状态
/home/root123/graypuppy-candy-house/manage.sh status
如果你也想尝试部署 OpenClaw,强烈推荐!有 AI 助手的帮助,部署过程变得简单很多。Nova 已经成为我的得力助手,不仅帮我创建了网站,还能帮我解决各种技术问题,真的很有用!