HAPI + CF Tunnel 远程 Vibe 部署经验分享

项目名HAPI,可以直接在公司电脑部署实现远程vibe coding,也能切换为终端模式使用,这里先不放链接了,近期有远程VC相关需求,所以就借助codex检索多方产品对比实测后,综合下来 HAPI 实用性更好点,并且还有国际化,目前支持Claude/Codex/Cursor/Gemini/Open...
HAPI + CF Tunnel 远程 Vibe 部署经验分享
HAPI + CF Tunnel 远程 Vibe 部署经验分享

项目名HAPI,可以直接在公司电脑部署实现远程vibe coding,也能切换为终端模式使用,这里先不放链接了,近期有远程VC相关需求,所以就借助codex检索多方产品对比实测后,综合下来 HAPI 实用性更好点,并且还有国际化,目前支持Claude/Codex/Cursor/Gemini/OpenCode/Kimi

5323443d471e4bfff7dc642bb3de03a7
faa95b72376ad70a4828b29a79620598
image

我们的目标是通过CF的隧道(HTTP/2)把本地HAPI服务暴露到公网来实现远程移动端访问

前置要求:
1.一个由 CF 托管的域名
2.一台个安装了nodejs的服务器或本地PC

1. cloudflared 配置

  • 安装cloudflared
    windows:
    winget install --id Cloudflare.cloudflared
    mac:
    brew install cloudflare/cloudflare/cloudflared
    linux:

    # Debian / Ubuntu
    sudo dpkg -i cloudflared-linux-amd64.deb
    # RHEL / Fedora
    sudo rpm -i cloudflared-linux-x86_64.rpm
    
  • 登录账号并且选择域名完成授权,证书会保存在 ~/.cloudflared/cert.pem
    cloudflared tunnel login

  • 创建Named Tunnel
    cloudflared tunnel create hapi

  • 创建成功后会在 ~/.cloudflared/ 目录下生成一个 JSON 凭据文件 ~/.cloudflared/<tunnel-id>.json

    • 编写 cloudflared 配置文件

    配置文件路径:~/.cloudflared/config.yml

    tunnel: hapi
    credentials-file: ~/.cloudflared/<tunnel-id>.json
    protocol: http2
    
    ingress:
      - hostname: hapi.<你的域名>
        service: http://localhost:3006
      - service: http_status:404
    

    Q:为什么用 http2 而不是默认的 quic
    A:QUIC 协议走 UDP,在某些网络环境下长连接容易超时断开。HTTP/2 走 TCP,连接更稳定,适合长时间维持的 AI 会话。

  • 配置 Cloudflare DNS
    在 Cloudflare 控制面板中,为你的域名添加 DNS 记录:

    类型 名称 目标 代理 CNAME hapi hapi.<tunnel-id>.cfargotunnel.com 开启(橙色)

2. 安装 HAPI

  • npm安装HAPI
    npm install -g @twsxtd/hapi --registry=https://registry.npmjs.org

  • 配置HAPI的settings.json

    平台 路径 Windows %USERPROFILE%.hapi\settings.json macOS/Linux ~/.hapi/settings.json

    cliApiToken 在首次运行 hapi hub 时自动生成

    {
      "HAPI_API_URL": "https://hapi.<你的域名>",
      "publicUrl": "https://hapi.<你的域名>"
    } 
    

3. 启动服务

  • 启动Hub
    hapi hub 默认监听 127.0.0.1:3006,提供 Web 界面和 API

  • 启动 Runner
    hapi runner start --workspace-root <项目目录1> -workspace-root <项目目录2>
    这个--workspace-root参数可以传多次,但是唯一要求不能用E:\这种根目录

  • 启动 cloudflared
    后台运行 tunnel:
    cloudflared tunnel --protocol http2 run hapi
    或者直接用前面 config.yml 中我们已经配置好的协议
    cloudflared tunnel run hapi

移动端用法

打开浏览器进入https://hapi.<你的域名>,然后输入你设置的CLI_API_TOKEN就可以了

踩坑

使用 TUN 模式的代理工具时,所有流量会被虚拟网卡劫持,需要在代理里面添加直连将 Cloudflare Tunnel 流量从代理中排除:

rules:
  - DOMAIN-SUFFIX,argotunnel.com,DIRECT
  - IP-CIDR,28.0.0.0/8,DIRECT

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文