跳转到主要内容
使用基础设施即代码方式在 Render 上部署 Fased。内置的 deploy/hosting/render.yaml Blueprint 从本仓库文件定义服务、磁盘和环境变量,让托管部署可以和本地运行的代码一起审查和版本管理。
Render 会保留在文档中,是因为本仓库包含 deploy/hosting/render.yaml。Fased 不记录仓库外部的托管预设,因为无法从代码库验证或维护。默认托管安全姿态仍然优先推荐干净 VPS + Tailscale 私有访问。

前提条件

  • 一个 Render 账户(提供免费套餐)
  • 你稍后计划在 Agent > Models 中添加的模型提供商凭据

使用 Render Blueprint 部署

使用 deploy/hosting/render.yaml 作为本仓库已审查的 Blueprint。如果你的 Render 流程要求根目录 render.yaml,先把这个文件复制到 fork 的根目录。 Blueprint 将会:
  1. 根据已审查的 deploy/hosting/render.yaml 创建一个新的 Render 服务。
  2. 为 Control UI 生成 Gateway token
  3. 构建 Docker 镜像并部署
部署完成后,你的服务 URL 格式为 https://<service-name>.onrender.com

了解 Blueprint

Render Blueprint 是定义基础设施的 YAML 文件。本仓库中的 deploy/hosting/render.yaml 配置了运行 Fased 所需的一切:
services:
  - type: web
    name: fased
    runtime: docker
    plan: starter
    healthCheckPath: /health
    envVars:
      - key: PORT
        value: "8080"
      - key: FASED_STATE_DIR
        value: /data/.fased
      - key: FASED_GATEWAY_TOKEN
        generateValue: true # auto-generates a secure token
    disk:
      name: fased-data
      mountPath: /data
      sizeGB: 1
使用的关键 Blueprint 功能:
功能用途
runtime: docker从仓库的 Dockerfile 进行构建
healthCheckPathRender 监控 /health 并重启不健康的实例
generateValue: true自动生成加密安全的值
disk持久化存储,在重新部署后数据仍然保留
FASED_STATE_DIR 控制配置和状态路径。Agent 工作区文件由 agents.defaults.workspace 或单个 Agent 的 workspace 设置控制。 FASED_WORKSPACE_DIR 只由 Docker/Podman 辅助脚本使用,不要依赖它来配置普通托管运行时。在 Agent 设置中将默认 Agent 工作区设为 /data/workspace,或在 Shell 中运行:
node dist/index.js config set agents.defaults.workspace /data/workspace
修改配置后重启服务。

选择套餐

套餐休眠机制磁盘适用场景
Free空闲 15 分钟后休眠不可用测试、演示
Starter永不休眠1GB+个人使用、小团队
Standard+永不休眠1GB+常驻、多渠道
Blueprint 默认使用 starter。如需使用免费套餐,请在你 fork 的 deploy/hosting/render.yaml 中将 plan: free(但请注意:没有持久化磁盘意味着每次部署后配置都会重置)。

部署完成后

完成设置

  1. 访问 https://<your-service>.onrender.com/
  2. 如果提示,输入 Gateway token
  3. 使用 Agent > Models 配置模型认证和模型角色
  4. Chat 中测试一条消息
  5. 只在需要时添加 Agent > ChannelsServicesSkillsMemoryTasks

访问控制面板

Web 管理面板位于 https://<your-service>.onrender.com/

Render 仪表盘功能

日志

Dashboard → 你的服务 → Logs 中查看实时日志。可按以下类型筛选:
  • 构建日志(Docker 镜像创建)
  • 部署日志(服务启动)
  • 运行时日志(应用输出)

Shell 访问

如需调试,可通过 Dashboard → 你的服务 → Shell 打开 shell 会话。持久化磁盘挂载在 /data

环境变量

Dashboard → 你的服务 → Environment 中修改变量。更改会触发自动重新部署。

自动部署

如果你使用的是原始 Fased 仓库,Render 不会自动部署你的 Fased。要更新它,请在仪表盘中手动执行 Blueprint 同步。

自定义域名

  1. 前往 Dashboard → 你的服务 → Settings → Custom Domains
  2. 添加你的域名
  3. 按照指引配置 DNS(CNAME 指向 *.onrender.com
  4. Render 会自动配置 TLS 证书

扩展

Render 支持水平和垂直扩展:
  • 垂直扩展:更改套餐以获取更多 CPU/内存
  • 水平扩展:增加实例数量(Standard 套餐及以上)
对于 Fased,垂直扩展通常就足够了。水平扩展需要粘性会话或外部状态管理。

备份与迁移

迁移主机前,请备份 Render 持久化磁盘,或复制已配置的状态目录和已配置的 Agent 工作区。 请把 FASED_GATEWAY_TOKEN、模型认证、渠道凭据和钱包文件都视为密钥。

故障排除

服务无法启动

在 Render 仪表盘中检查部署日志。常见问题:
  • 旧 Blueprint 提示 — 如果 Render 要求填写当前 deploy/hosting/render.yaml 中不存在的变量,请先同步 fork 后再部署
  • 端口不匹配 — 确保 PORT=8080 与 Dockerfile 暴露的端口一致

冷启动缓慢

部分 Render 计划会在无活动后休眠。休眠后的首次请求需要几秒钟等待容器启动。需要连续访问时,请使用常驻计划。

重新部署后数据丢失

这发生在没有持久化磁盘支持的计划上。使用持久化存储,或定期备份已配置的状态目录和已配置的 Agent 工作区。

健康检查失败

Render 期望在 30 秒内从 /health 获得 200 响应。如果构建成功但部署失败,可能是服务启动耗时过长。请检查:
  • 构建日志中是否有错误
  • 容器是否能通过 docker build && docker run 在本地正常运行