跳到主要内容

云端部署

OpenHuman 是桌面应用,但其 Rust 核心 (openhuman-core) 是一个可以托管在云端的无头 JSON-RPC 服务器。单独部署核心适用于:

  • 多设备访问,多个桌面客户端指向同一个托管核心
  • 内部测试人员无需本地 Rust 工具链
  • 长时运行的 cron 作业/webhook

本指南涵盖四种部署路径:

  1. DigitalOcean App Platform:一键部署
  2. DigitalOcean App Platform:通过 doctl 手动部署
  3. 任何 VPS:通过 Docker Compose
  4. Fly.io

部署内容

每种路径都部署一个在端口 7788 上运行 openhuman-core serve 的容器。公共主机应位于提供商的 TLS 后面,例如 https://core.example.com/rpc

前置要求

设置必需说明
OPENHUMAN_CORE_TOKENBearer token,生成:openssl rand -hex 32
BACKEND_URLOpenHuman 后端(生产环境为 https://api.tinyhumans.ai
OPENHUMAN_APP_ENVproductionstaging,默认 production
OPENHUMAN_CORE_HOST默认 0.0.0.0
OPENHUMAN_CORE_PORT默认 7788

1. DigitalOcean App Platform:一键部署

点击按钮创建新的 App Platform 应用:

Deploy to DO

在首次部署完成前,进入 Settings → App-Level Environment Variables

  1. 用强密钥替换 OPENHUMAN_CORE_TOKEN 占位符
  2. 如需 staging,更改 OPENHUMAN_APP_ENVstaging

2. 任何 VPS via Docker Compose

适用于任何具有 Docker Engine ≥ 24 的主机。生产发布镜像:

docker pull ghcr.io/tinyhumansai/openhuman-core:latest

快速运行:

docker run -d --name openhuman-core -p 7788:7788 \
-e OPENHUMAN_CORE_TOKEN="$(openssl rand -hex 32)" \
-e BACKEND_URL=https://api.tinyhumans.ai \
-e OPENHUMAN_APP_ENV=production \
-v openhuman-workspace:/home/openhuman/.openhuman \
ghcr.io/tinyhumansai/openhuman-core:latest

3. Fly.io

前置要求

  • flyctl 已安装并认证
  • Fly.io 账户

步骤 1 — 启动应用

fly launch --no-deploy --config .fly/fly.toml

步骤 2 — 创建持久卷

fly volumes create openhuman_workspace --size 5 --region <your-region> --config .fly/fly.toml

重要:将工作区挂载到持久卷,否则数据会在每次重新部署时丢失。

步骤 3 — 设置密钥

fly secrets set OPENHUMAN_CORE_TOKEN="$(openssl rand -hex 32)"
fly secrets set BACKEND_URL="https://api.tinyhumans.ai"
fly secrets set OPENHUMAN_APP_ENV="production"

步骤 4 — 部署

fly deploy --config .fly/fly.toml

步骤 5 — 连接桌面应用

app/.env.local 中:

OPENHUMAN_CORE_RUN_MODE=external
OPENHUMAN_CORE_RPC_URL=https://<your-app-name>.fly.dev/rpc
OPENHUMAN_CORE_TOKEN=<your-token>

持续部署

推送到 main 分支自动重新部署。

更新

# Docker Compose
git pull && docker compose build && docker compose up -d

# Fly.io
fly deploy --config .fly/fly.toml

日志

# Docker Compose
docker compose logs -f openhuman-core

# Fly.io
fly logs --config .fly/fly.toml

常见问题

Bearer Token 轮换

# 1. 生成新 token 并更新服务器端 .env
openssl rand -hex 32 > /tmp/new-token
sed -i.bak "s|^OPENHUMAN_CORE_TOKEN=.*|OPENHUMAN_CORE_TOKEN=$(cat /tmp/new-token)|" .env

# 2. 重启容器
docker compose up -d --force-recreate openhuman-core

# 3. 更新每个桌面客户端

TLS 问题

使用 Caddy、nginx 或 Traefik 作为反向代理:

core.example.com {
reverse_proxy localhost:7788
}

下一步