跳转到内容

Oracle Cloud

在 Oracle Cloud(OCI)上运行 CoderClaw

Section titled “在 Oracle Cloud(OCI)上运行 CoderClaw”

在 Oracle Cloud 的 Always Free ARM 层上运行持久化的 CoderClaw Gateway 网关。

Oracle 的免费层非常适合 CoderClaw(特别是如果你已经有 OCI 账户),但有一些权衡:

  • ARM 架构(大多数东西都能工作,但某些二进制文件可能仅支持 x86)
  • 容量和注册可能比较麻烦
提供商方案配置价格/月说明
Oracle CloudAlways Free ARM最多 4 OCPU,24GB RAM$0ARM,容量有限
HetznerCX222 vCPU,4GB RAM~ $4最便宜的付费选项
DigitalOceanBasic1 vCPU,1GB RAM$6易用的 UI,文档完善
VultrCloud Compute1 vCPU,1GB RAM$6多个地区
LinodeNanode1 vCPU,1GB RAM$5现为 Akamai 的一部分

  1. 登录 Oracle Cloud Console
  2. 导航到 Compute → Instances → Create Instance
  3. 配置:
    • Name: coderclaw
    • Image: Ubuntu 24.04 (aarch64)
    • Shape: VM.Standard.A1.Flex(Ampere ARM)
    • OCPUs: 2(或最多 4)
    • Memory: 12 GB(或最多 24 GB)
    • Boot volume: 50 GB(最多 200 GB 免费)
    • SSH key: 添加你的公钥
  4. 点击 Create
  5. 记录公网 IP 地址

提示: 如果实例创建失败并显示”Out of capacity”,尝试不同的可用性域或稍后重试。免费层容量有限。

Terminal window
# 通过公网 IP 连接
ssh ubuntu@YOUR_PUBLIC_IP
# 更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential

注意: build-essential 是某些依赖项 ARM 编译所必需的。

Terminal window
# 设置主机名
sudo hostnamectl set-hostname coderclaw
# 为 ubuntu 用户设置密码
sudo passwd ubuntu
# 启用 lingering(注销后保持用户服务运行)
sudo loginctl enable-linger ubuntu
Terminal window
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh --hostname=coderclaw

这会启用 Tailscale SSH,所以你可以从 tailnet 上的任何设备通过 ssh coderclaw 连接——不需要公网 IP。

验证:

Terminal window
tailscale status

从现在开始,通过 Tailscale 连接: ssh ubuntu@coderclaw(或使用 Tailscale IP)。

Terminal window
curl -fsSL https://coderclaw.ai/install.sh | bash
source ~/.bashrc

当提示”How do you want to hatch your bot?”时,选择 “Do this later”

注意:如果你遇到 ARM 原生构建问题,在使用 Homebrew 之前先从系统包开始(例如 sudo apt install -y build-essential)。

6) 配置 Gateway 网关(loopback + 令牌认证)并启用 Tailscale Serve

Section titled “6) 配置 Gateway 网关(loopback + 令牌认证)并启用 Tailscale Serve”

使用令牌认证作为默认值。它是可预测的,避免需要任何”不安全认证”的控制 UI 标志。

Terminal window
# 在 VM 上保持 Gateway 网关私有
coderclaw config set gateway.bind loopback
# 要求 Gateway 网关 + 控制 UI 的认证
coderclaw config set gateway.auth.mode token
coderclaw doctor --generate-gateway-token
# 通过 Tailscale Serve 暴露(HTTPS + tailnet 访问)
coderclaw config set gateway.tailscale.mode serve
coderclaw config set gateway.trustedProxies '["127.0.0.1"]'
systemctl --user restart coderclaw-gateway
Terminal window
# 检查版本
coderclaw --version
# 检查守护进程状态
systemctl --user status coderclaw-gateway
# 检查 Tailscale Serve
tailscale serve status
# 测试本地响应
curl http://localhost:18789

现在一切正常工作了,锁定 VCN 以阻止除 Tailscale 之外的所有流量。OCI 的虚拟云网络充当网络边缘的防火墙——流量在到达你的实例之前就被阻止。

  1. 在 OCI Console 中转到 Networking → Virtual Cloud Networks
  2. 点击你的 VCN → Security Lists → Default Security List
  3. 移除除以下之外的所有入站规则:
    • 0.0.0.0/0 UDP 41641(Tailscale)
  4. 保留默认出站规则(允许所有出站)

这会在网络边缘阻止端口 22 上的 SSH、HTTP、HTTPS 和其他所有内容。从现在开始,你只能通过 Tailscale 连接。


从你 Tailscale 网络上的任何设备:

https://coderclaw.<tailnet-name>.ts.net/

<tailnet-name> 替换为你的 tailnet 名称(在 tailscale status 中可见)。

不需要 SSH 隧道。Tailscale 提供:

  • HTTPS 加密(自动证书)
  • 通过 Tailscale 身份认证
  • 从 tailnet 上的任何设备(笔记本电脑、手机等)访问

安全:VCN + Tailscale(推荐基线)

Section titled “安全:VCN + Tailscale(推荐基线)”

通过锁定 VCN(仅开放 UDP 41641)并将 Gateway 网关绑定到 loopback,你获得了强大的纵深防御:公共流量在网络边缘被阻止,管理访问通过你的 tailnet 进行。

此设置通常消除了纯粹为了阻止互联网范围的 SSH 暴力破解而需要额外的基于主机的防火墙规则的需求——但你仍应保持操作系统更新,运行 coderclaw security audit,并验证你没有意外地在公共接口上监听。

传统步骤是否需要?原因
UFW 防火墙VCN 在流量到达实例之前就阻止了
fail2ban如果端口 22 在 VCN 被阻止则无暴力破解
sshd 加固Tailscale SSH 不使用 sshd
禁用 root 登录Tailscale 使用 Tailscale 身份,而不是系统用户
仅 SSH 密钥认证Tailscale 通过你的 tailnet 认证
IPv6 加固通常不需要取决于你的 VCN/子网设置;验证实际分配/暴露的内容
  • 凭证权限: chmod 700 ~/.coderclaw
  • 安全审计: coderclaw security audit
  • 系统更新: 定期 sudo apt update && sudo apt upgrade
  • 监控 Tailscale:Tailscale 管理控制台 中查看设备
Terminal window
# 确认没有公共端口在监听
sudo ss -tlnp | grep -v '127.0.0.1\|::1'
# 验证 Tailscale SSH 处于活动状态
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"
# 可选:完全禁用 sshd
sudo systemctl disable --now ssh

如果 Tailscale Serve 不工作,使用 SSH 隧道:

Terminal window
# 从你的本地机器(通过 Tailscale)
ssh -L 18789:127.0.0.1:18789 ubuntu@coderclaw

然后打开 http://localhost:18789


实例创建失败(“Out of capacity”)

Section titled “实例创建失败(“Out of capacity”)”

免费层 ARM 实例很受欢迎。尝试:

  • 不同的可用性域
  • 在非高峰时段(清晨)重试
  • 选择 shape 时使用”Always Free”过滤器
Terminal window
# 检查状态
sudo tailscale status
# 重新认证
sudo tailscale up --ssh --hostname=coderclaw --reset
Terminal window
coderclaw gateway status
coderclaw doctor --non-interactive
journalctl --user -u coderclaw-gateway -n 50
Terminal window
# 验证 Tailscale Serve 正在运行
tailscale serve status
# 检查 Gateway 网关是否在监听
curl http://localhost:18789
# 如需要则重启
systemctl --user restart coderclaw-gateway

某些工具可能没有 ARM 构建。检查:

Terminal window
uname -m # 应该显示 aarch64

大多数 npm 包工作正常。对于二进制文件,寻找 linux-arm64aarch64 版本。


所有状态存储在:

  • ~/.coderclaw/ — 配置、凭证、会话数据
  • ~/.coderclaw/workspace/ — 工作区(SOUL.md、记忆、产物)

定期备份:

Terminal window
tar -czvf coderclaw-backup.tar.gz ~/.coderclaw ~/.coderclaw/workspace