logo
0
0
WeChat Login

Baby Claw - OpenClaw Nginx 部署配置

通过 OpenResty/Nginx 将 OpenClaw Control UI 以 HTTPS 方式对外提供访问,并添加密码保护。

项目结构

baby-claw/ ├── claw.zhongxiaojie.cn.conf # Nginx 站点配置 ├── setup-password.sh # 密码文件生成脚本 └── README.md # 本文档

功能特性

  • HTTPS:80 端口自动重定向到 443
  • SSL 证书:支持自定义域名证书
  • 密码保护:基于 htpasswd 的登录表单(/login)+ Cookie 会话,访问时会自动跳转到登录页
  • 反向代理:转发至 OpenClaw 网关 http://127.0.0.1:18789
  • WebSocket 友好:支持 OpenClaw Control UI 所需的长连接

前置条件

  • 服务器已安装 OpenResty(或 Nginx)
  • OpenClaw 已安装并运行在 127.0.0.1:18789
  • SSL 证书文件已准备好
  • 域名 claw.zhongxiaojie.cn 已解析到服务器

证书文件

证书存放路径:/home/ubuntu/claw.zhongxiaojie.cn_nginx/

文件说明
claw.zhongxiaojie.cn_bundle.pemSSL 证书(也可使用 .crt
claw.zhongxiaojie.cn.key私钥

部署步骤

1. 创建 vhost 目录并放置配置

sudo mkdir -p /usr/local/openresty/nginx/conf/vhost sudo cp claw.zhongxiaojie.cn.conf /usr/local/openresty/nginx/conf/vhost/

2. 在主配置中包含 vhost

编辑 nginx.conf,在 http {} 块中添加:

include vhost/*.conf;

3. 生成密码文件

# 安装 htpasswd 工具 sudo apt install apache2-utils # 执行密码生成脚本 chmod +x setup-password.sh ./setup-password.sh # 如果你的 `setup-password.sh` 生成路径不是 `/etc/nginx/auth/claw.htpasswd`,请修改脚本的 `PASSWORD_FILE` # 或直接跳过脚本,使用下面的“手动创建”命令。 # 或手动创建 htpasswd -c /etc/nginx/auth/claw.htpasswd claw_user

按提示输入密码。添加新用户时不要使用 -c 参数,否则会覆盖现有用户:

htpasswd /etc/nginx/auth/claw.htpasswd 新用户名

4. 验证并重载 Nginx

# 检查配置语法 sudo openresty -t # 重载配置 sudo openresty -s reload

访问方式

  • 公网访问https://claw.zhongxiaojie.cn
  • 本地调试http://127.0.0.1:18789

首次访问会跳转到 https://claw.zhongxiaojie.cn/login,在登录表单中输入 .htpasswd 里的用户名/密码即可。

登录成功后会签发 claw_session Cookie(有效期 1 天),后续请求将自动放行并按 next 参数跳转到目标页面。

证书使用 .crt 格式

若使用 .crt 而非 .pem,修改配置中的证书路径:

ssl_certificate /home/ubuntu/claw.zhongxiaojie.cn_nginx/claw.zhongxiaojie.cn_bundle.crt;

相关链接

web_scraper.py(可选)

初始化环境:./setup-web-scraper.sh(创建 venv、安装 Chrome / chromedriver、安装 requirements.txt)。

  • 无桌面 / 服务器默认即为无头模式(headless),无需额外参数,直接运行即可,例如:
    python web_scraper.py 'https://example.com' -o ./out
    只有在本机有图形界面、需要看浏览器窗口时,才加 --no-headless
  • 参数:--skip-chrome 跳过浏览器安装(本机已有 Chrome 时常用);--skip-chromedriver 跳过 apt/brew 安装驱动。
  • 脚本结束时会生成 web-scraper.env(含检测到的 CHROME_BIN / CHROMEDRIVER_PATH),运行前可:source ./web-scraper.env

Selenium Manager 报错(code 65 / Unable to obtain driver)

脚本已改为显式使用本机 chromedriver,不再依赖 Selenium Manager 自动下载。

  • Ubuntu:安装驱动并确认在 PATH 中,例如:
    • sudo apt-get update && sudo apt-get install -y chromium-chromedriver
    • 或从 Chrome for Testing 下载与 google-chrome --version 主版本一致的 chromedriver,解压后:
      • export CHROMEDRIVER_PATH=/path/to/chromedriver
  • 可选指定浏览器路径:export CHROME_BIN=/usr/bin/google-chrome

About

open claw 配置测试项目

Language
Python63.1%
Shell30.1%
HTML6.8%