发布到其他托管平台
要点MonstarX 会替你托管应用,但你也可以在自己的云账户上运行它。在“后端 → 云服务”中连接 Cloudflare、Vercel、Google Cloud、Railway、Azure 或 AWS,然后从“发布”菜单部署。你的应用的数据库、登录、邮件、文件和 AI 都保持原样;托管费用由托管平台直接向你收取。
默认情况下,发布 会把你的应用放在 MonstarX 自己的托管服务上,地址为 your-app.monstarx.app。这是最简单的选择,也适合大多数人。有些团队需要让应用运行在自己的云账户中:可能是公司政策要求、已有的合同,或者希望账单开在自己名下。MonstarX 可以替你部署到六个托管平台。
应该选择哪个托管平台?
Section titled “应该选择哪个托管平台?”| 托管平台 | 应用运行在哪里 | 你需要连接什么 | 它的数据库 |
|---|---|---|---|
| MonstarX(默认) | MonstarX 的云端,地址为 your-app.monstarx.app | 无需连接 | MonstarX Cloud |
| Cloudflare | 你的 Cloudflare 账户,使用 workers.dev 地址或你的某个域名 | 一个 API 令牌 | 在你的 Cloudflare 账户上新建一个数据库 |
| Vercel | 你的 Vercel 账户 | 一个访问令牌(如果使用团队,还需要团队 ID) | 留在 MonstarX |
| Google Cloud | 你的 Google Cloud 项目中的 Cloud Run | 一个服务账号密钥和一个区域 | 留在 MonstarX |
| Railway | 你的 Railway 项目,从 GitHub 构建 | 一个 API 令牌、项目 ID 和环境 ID | 留在 MonstarX,或迁移到 Railway Postgres |
| Azure | 你的订阅中的 Azure App Service | 一个服务主体(租户、客户端 ID、密钥、订阅) | 留在 MonstarX |
| AWS | 你的 AWS 账户中的 ECS on Fargate | 一个根据 MonstarX 模板创建的设置堆栈 | 留在 MonstarX |
“留在 MonstarX”是指应用继续使用它已有的数据库、登录、邮件、文件存储和 AI,只有应用页面运行的位置发生变化。除非表格中注明,否则不会复制或迁移任何内容。
在哪里连接托管平台?
Section titled “在哪里连接托管平台?”六个平台都在 后端云服务 的连接器列表中。在你想用的平台上点击 连接。
连接某个平台之后,“发布”菜单底部的 其他已连接的托管服务 下就会出现它:部署到 Cloud Run、部署到 Railway、打开 Vercel、Azure 托管 或 AWS。(Cloudflare 不一样:它会接管常规的 发布网站 按钮。)
你自己的 Cloudflare 账户
Section titled “你自己的 Cloudflare 账户”在 后端云服务Cloudflare 中连接一个 Cloudflare API 令牌,并开启 在我的 Cloudflare 上运行此应用。从此以后,常规的 发布网站 按钮就会部署到你的账户:应用、它的数据库和账单都归你所有。线上数据库一开始是空的,但会包含所有数据表;预览则保留它自己的练习数据。应用可以通过 workers.dev 地址访问,也可以通过你自己在 Cloudflare 上的某个域名访问。
完整指南:在你自己的 Cloudflare 账户上运行应用。
Vercel
Section titled “Vercel”-
在 后端云服务 中,点击 Vercel 上的 连接。通过 Vercel 发布 窗口会打开。
-
在你的 Vercel 账户设置中创建一个访问令牌(它必须有创建部署和管理项目的权限),粘贴进去;如果应用属于某个团队,再填写 团队 ID,然后点击 连接 Vercel。
-
你可以选择通过 ID 或名称关联一个已有的 Vercel 项目。否则,第一次部署时会新建一个项目。
-
点击 部署预览环境 试一试,或点击 部署生产环境 正式上线。窗口会显示最新一次部署的状态和链接。
在同一个窗口中,你还可以为 Vercel 项目添加域名(Vercel 会显示需要添加的 DNS 记录,然后点击 验证 DNS),以及管理 环境变量。每次部署时,你在 MonstarX 中的密钥都会复制到 Vercel,所以修改密钥后请重新部署。之后,可以从 发布其他已连接的托管服务打开 Vercel 重新打开这个窗口。断开连接 会移除 MonstarX 的访问权限;你的 Vercel 项目会继续在线。
Google Cloud Run
Section titled “Google Cloud Run”-
在 Google Cloud 中,为 MonstarX 创建一个服务账号,并授予这些角色:Cloud Run Admin、Cloud Build Editor、Artifact Registry Administrator、Storage Admin 和 Service Account User。下载它的 JSON 密钥。
-
在 后端云服务 中,点击 Google Cloud 上的 连接,粘贴密钥,并填写一个 Cloud Run 区域(例如
australia-southeast1)。 -
打开 发布,展开 其他已连接的托管服务,然后点击 部署到 Cloud Run。
MonstarX 会在你的项目中把应用构建成一个容器,并在 Cloud Run 上运行,使用 Google 自己的 run.app 地址。应用会继续使用它在 MonstarX 的数据库;如果要使用 Firestore 以及 Firebase 自己的登录和存储,还需要连接 Firebase。取消发布 会删除 Cloud Run 服务,但构建文件和镜像会留在你的 Google Cloud 项目中。
Railway
Section titled “Railway”-
先把项目关联到一个 GitHub 仓库,Railway 会从这个仓库构建。请参阅 GitHub。
-
在 Railway 中,创建一个账户令牌或工作区令牌(项目令牌无法创建服务),并复制你的项目 ID 和环境 ID。
-
在 后端云服务 中,点击 Railway 上的 连接,然后粘贴这些信息。
-
打开 发布,展开 其他已连接的托管服务,然后点击 部署到 Railway。MonstarX 会同步仓库,然后由 Railway 构建并部署。“发布”菜单打开期间,状态会实时更新。
Railway 还可以用 Railway Postgres 存放你的应用数据,请参阅 Railway。取消发布 会移除应用的 Railway 服务;Railway Postgres 数据库会保留。
连接一个对你的 Azure 订阅拥有 Contributor(参与者)权限的服务主体:填写它的 租户 ID、应用程序(客户端)ID、客户端密钥、订阅 ID 和一个 Azure 区域,然后点击 验证并连接。打开 发布其他已连接的托管服务Azure 托管,点击 部署到 Azure。
MonstarX 会为它创建一个资源组、一个 Basic B1 Linux App Service 计划和一个 Web 应用。部署最新版本 会更新它,打开 Azure 应用 会访问它,移除 Azure 应用 会从 Azure 中删除应用及其计划。
AWS 托管适用于 MonstarX 构建的应用(不适用于导入的应用)。连接它需要多几个步骤,因为 MonstarX 从不索要 AWS 密码或访问密钥:
-
在 后端云服务 中,点击 AWS 上的 连接,然后选择一个区域。
-
点击 下载设置模板,在该区域打开 AWS CloudFormation,用这个模板创建一个堆栈,堆栈名称 必须和显示的完全一致。创建时勾选确认会创建已命名的 IAM 角色。
-
堆栈创建完成后,把它的
RoleArn输出值粘贴到 部署角色 ARN 中,然后点击 验证并连接 AWS。 -
打开 发布其他已连接的托管服务AWS,点击 部署到 AWS。
应用运行在 ECS Fargate 上(0.5 vCPU、1 GB 内存、一到两个副本),通过 AWS 的 HTTPS 地址访问。你的账户需要有一个默认网络(VPC),并且至少在两个可用区中有公有子网。部署最新版本 会发布新版本,恢复上一次部署 会退回上一个版本(数据库的更改不会撤销),停止 AWS 托管 会移除应用。设置用的资源、镜像和密钥会留在你的账户中,直到你自己移除设置堆栈。
- Cloud Run 和 Railway 需要等 MonstarX 托管停止。 当应用正在 MonstarX 的托管服务上运行时,部署到 Cloud Run 和 部署到 Railway 按钮会处于等待状态;要迁移过去,请先取消发布。
- 自定义域名:在 MonstarX 的“发布”菜单中购买或连接的域名,只适用于 MonstarX 托管。在你自己的 Cloudflare 账户上,请在它的设置中选择你的某个 Cloudflare 域名;在 Vercel 上,请在 Vercel 窗口中添加域名;在其他托管平台上,请使用平台自己的域名设置。
- 想自己动手? 导出你的代码,然后部署到任何地方。
我需要其他托管平台吗?
不需要。MonstarX 托管开箱即用,自带免费地址和 HTTPS。其他托管平台适合需要让应用运行在自己云账户中的团队。
部署到其他托管平台时,我的数据会迁移吗?
不会。应用的数据库、登录、邮件、文件和 AI 都保持原样。只有 Cloudflare(在你的账户上新建数据库)和 Railway Postgres(如果你添加了它)会改变数据存放的位置。
托管费用由谁支付?
托管平台会直接向你自己的账户收取它提供的托管服务费用。
可以把导入的应用部署到 AWS 吗?
暂时不行。AWS 托管支持 MonstarX 构建的应用。导入的应用可以使用其他托管平台,或者导出。
断开某个托管平台的连接会怎样?
MonstarX 会失去访问权限。对于 Vercel,Vercel 项目会继续在线。如果应用仍在 Cloudflare、Google Cloud 或 AWS 上运行,MonstarX 会拒绝断开连接,请先让应用下线。