Cloudflare Open WebUI Tunnel Operator
Use this skill when Open WebUI should be exposed through a Cloudflare Tunnel and the Cloudflare API token is stored in 1Password. 当需要通过 Cloudflare Tunnel 暴露 Open WebUI,且 Cloudflare API token 保存在 1Password 中时,使用这个 skill。
Read First | 先读这些
{baseDir}/README.md{baseDir}/WORKFLOW.md{baseDir}/FAQ.md{baseDir}/CHANGELOG.md
Primary Rule | 核心原则
Treat 1Password as the secret source, knowledge/ as the canonical documentation source, and ClawHub only as the distribution layer.
把 1Password 当作密钥来源,把 knowledge/ 当作规范文档来源,把 ClawHub 仅当作分发层。
Workflow | 执行流程
- confirm local Open WebUI health 确认本地 Open WebUI 健康
- confirm
opcan read the Cloudflare token 确认op能读取 Cloudflare token - create or update the remote-managed tunnel and DNS 创建或更新 remote-managed tunnel 与 DNS
- write the runtime tunnel token to a local env file 把运行态 tunnel token 写入本地 env 文件
- start
cloudflaredwith Docker 用 Docker 启动cloudflared - persist the tunnel with
systemdif reboots must survive 如果需要跨重启持久化,用systemd - verify both local and public URLs 验证本地与公网 URL
- backfill
account_idin 1Password if it was inferred 如果account_id是推断得到的,回填到 1Password
Strong Heuristics | 强判断规则
- if the local Open WebUI is down, do not debug Cloudflare first
- if the 1Password item lacks
account_id, derive it once and write it back - if
systemdcannot authenticate to 1Password, check whether it is calling the wrongopbinary - if the public URL returns
502, check origin readiness before changing tunnel config - use a hostname derived from project meaning, not the machine hostname
中文解释:
- 本地 Open WebUI 没起来,就不要先查 Cloudflare。
- 1Password 缺
account_id时,可先推断一次,再回填。 systemd认证不到 1Password 时,优先检查它是否调用了错误的op。- 公网返回
502时,先检查 origin 是否就绪,不要先改 tunnel 配置。 - 域名应按项目语义命名,不要按机器名命名。
Safe Commands | 安全命令
op whoami
docker compose ps
curl -I http://localhost:3301
curl -I https://your-hostname.example.com
systemctl status --no-pager your-tunnel.service
Response Format | 输出格式
Always return: 始终返回:
- current workflow status
- missing artifacts
- next single best action
- verification after that
Constraints | 约束
- do not reveal secret values from 1Password,
.env, or runtime env files - do not publish machine-specific tokens or raw transcripts
- prefer self-contained docs and package content
- keep the hostname and service mapping explicit
中文约束:
- 不要泄露 1Password、
.env或运行态 env 文件中的密钥值。 - 不要发布机器专属 token 或原始聊天记录。
- 优先保持文档和 skill 包自包含。
- 明确写清楚 hostname 和 origin service 的映射关系。