仓库中的 render.yaml 是 Desk 的 Render Blueprint。开始前请先阅读所有部署方式的共同要求。
render.yaml 的设置 | 值 |
|---|---|
| 服务 | 使用镜像 ghcr.io/modelriver/desk:1 的 Web 服务 |
| 实例类型 | Starter。磁盘需要付费实例类型 |
| 磁盘 | desk-data,1 GB,挂载到 /data |
| 健康检查 | /robots.txt |
| 密钥 | DESK_SECRET_KEY 和 DESK_IDENTITY_SECRET,首次部署时生成 |
| 访客地址 | 从 True-Client-IP 请求头读取(CLIENT_IP_HEADER),用于限流 |
带磁盘的服务只运行一个实例,这正是 Desk 需要的。
1. 创建服务
打开 部署到 Render 并登录 Render。它会读取仓库中的 render.yaml。为服务命名,在要求填写 MODELRIVER_API_KEY 时粘贴你的 ModelRiver API 密钥,然后应用。
2. 创建第一位管理员
部署上线后,打开服务的 Shell 标签页并运行:
Bash
desk-entrypoint node /app/scripts/create-admin.ts它会询问管理员的邮箱、姓名和密码。
3. 设置地址
Desk 的地址就是服务页面顶部显示的 onrender.com 地址。在 Environment 中添加 APP_URL,填入这个地址(或下面配置的自己的域名)。打开 /dashboard 登录,首次登录会设置双重认证。
使用自己的域名
在 Settings → Custom Domains 中添加你的域名,并创建 Render 显示的 DNS 记录,Render 会签发证书。然后把 APP_URL 设为 https:// 加你的域名。
设置邮件
推荐设置。提交和回复工单、账户查询的邮箱验证以及团队通知都需要邮件(没有邮件会怎样)。可使用 Resend、Postmark 或 Amazon SES,EMAIL_FROM 需使用邮件服务已验证的域名,SUPPORT_REPLY_TO 设为团队会查看的邮箱。
在 Environment 下添加:
Bash
EMAIL_PROVIDER=resendRESEND_API_KEY=re_…EMAIL_FROM="Acme Support <[email protected]>"SUPPORT_REPLY_TO=support@acme.comRender 会用新设置重新部署。
然后在 后台 → 设置 → Send a test email(发送测试邮件) 中检查。
日常运维
- 日志: Logs 标签页。
- 修改设置: Environment,保存后服务会重新部署。不要修改
DESK_SECRET_KEY。 - 新增管理员,或忘记密码、丢失手机: 在 Shell 标签页再次运行第 2 步的命令。
- 更多空间: 在 Disks 中增大磁盘。
- 修改蓝图: fork 仓库,编辑
render.yaml(实例类型、磁盘大小、固定的镜像标签如1.0.1),再从你的 fork 创建 Blueprint。 - 更新: Manual Deploy → Deploy latest reference 会拉取标签对应的最新镜像。发布新版本后 Render 不会自动重新部署;如需定期更新,可以用定时任务调用服务的部署钩子 URL(在 Settings 中)。参见更新。