如何在自己的服务器上托管 Lovable 应用
要在自己的服务器上托管 Lovable 应用,请用 Lovable 的 Git sync 把项目同步到 GitHub,把仓库连接到服务器上的 Coolify 面板,设置环境变量,并把域名指向它。Lovable 自己的文档就记录了这条路线:代码是您的,放在哪里都能运行。您也可以继续在 Lovable 中开发,因为修改会进入仓库,服务器从那里部署。
最重要的决定是后端,因为数据库记录和上传的文件不会随代码一起走。
如何把代码从 Lovable 中导出?
| 途径 | 方式 | 适用场景 |
|---|---|---|
| Git sync | 进入 Project settings,再进入 Git 和 GitHub,点击 Connect。Lovable 会创建一个新仓库(默认私有),并开始双向同步。 | 持续部署,所有套餐都可用 |
| Download codebase | 从同一页面或代码编辑器下载一个 .zip。 | 一次性的副本,付费套餐可用 |
您的项目是哪一种?
Lovable 基于两种技术栈构建,服务器的设置也随之而定。如果 package.json 中列有 @tanstack/react-start,您的项目就是 TanStack Start。如果没有,那就是较旧的 React + Vite 项目。新项目都从 TanStack Start 开始。
| 技术栈 | 服务器上运行什么 | Coolify 设置 |
|---|---|---|
| TanStack Start | 一个 Node.js 服务器,用于服务器端渲染的页面、服务器函数和 API 路由 | 构建变量 NITRO_PRESET=node-server,Start command 为 node .output/server/index.mjs,端口 3000。package.json 中必须列有 nitro。 |
| React + Vite | dist/ 中的静态文件 | Output type 选 Static site,Publish directory 填 /dist。在 General 页面把 Site type 设为 SPA,这样刷新嵌套页面时才不会返回 404。 |
静态的 Vite 构建,是我们在真实服务器上通过 Coolify 运行过的项目类型之一。TanStack Start 的数值来自 Lovable 自己的文档,该文档推荐 Node 22。
分步操作
- 从 Next.js VPS 页面订购服务器。尽管名字如此,它自带的 Coolify 能部署的远不止 Next.js。
- 克隆仓库,并在 Claude Code 或 Cursor 这样的编程工具中打开该文件夹。
- 复制您的 Seturack 面板概览标签页上的粘贴到您的 AI 工具一行,把它粘贴到那个工具里,由它来完成部署。不要把它粘贴到 Lovable 的聊天里。它包含 API 密钥,而且 Lovable 无法在自己的预览之外运行任何东西。
- 把工具需要的环境变量交给它,这取决于您在下面对后端的选择。
- 拿到 HTTPS 地址后,请测试一下。刷新一个嵌套页面,登录再退出,试一试写入数据和上传。如果登录因重定向而失败,请把新地址添加到允许的重定向 URL 中。
- 把域名的 A 记录指向服务器的 IP 地址,并告诉工具域名。证书会自动签发。
- 让工具在每次推送时都部署。Lovable 的修改会进入仓库,所以每一次修改都会触发一次构建。
Next.js 指南介绍了如何手动完成这件事。root 权限在您手里,如果愿意,也可以全部在面板中管理。您的 lovable.app 地址会继续提供您上次在那里发布的版本。
后端放在哪里?
继续使用内置后端
只迁移网站,所以工作量最小。请在构建之前设置 VITE_SUPABASE_URL 和 VITE_SUPABASE_PUBLISHABLE_KEY。TanStack Start 的服务器端代码还需要 SUPABASE_URL 和 SUPABASE_PUBLISHABLE_KEY。这些值在仓库的 .env 文件中,但您的服务器函数读取的密钥不在其中。AI 功能和连接器继续可用,并继续消耗您的 Lovable 额度。
在自己的服务器上运行 Supabase
Lovable 为它的内置后端指出了两个去处:托管的 Supabase 和自托管的 Supabase。只迁移 PostgreSQL 是不够的,因为登录、存储、实时功能和 Edge Functions 也必须一起迁移。Supabase VPS 在一台单独的服务器上为您提供这些全部功能。Supabase 的文档要求至少 4 GB RAM、2 个核心和 40 GB 磁盘。
- 按日期顺序运行
supabase/migrations/中的文件,创建结构。 - 迁移数据。依次进入 More、Database、Manage、Settings,点击 Export data,然后在 5432 端口上用支持 zstd 的
pg_restore载入经 zstd 压缩的 PostgreSQL 归档。其中包含用户账户,所有人都需要重新登录。请先在测试安装上试一试。 - 从 More、Storage 下载文件,并在 Studio 中上传到同名的 bucket。
- 把
supabase/functions/复制到服务器上的volumes/functions/,设置它们的密钥,并重启 functions 服务。 - 设置登录提供方、
SITE_URL和ADDITIONAL_REDIRECT_URLS。 - 在网站中,把
VITE_SUPABASE_URL设为您的 Supabase 服务器的地址,设置 publishable key,然后重新构建。
经由 Lovable 的 AI 和连接器调用,必须迁移到您自己的服务商账户。更新和监控成为您的工作,而 Lovable 无法调试它不能控制的基础设施。
使用您自己 Supabase 账户中的项目
如果您连接的是自己的 Supabase 账户,后端本来就在 Lovable 之外,所以您只需设置地址。要把它迁到您的服务器上,Supabase 的恢复指南给出了使用 supabase db dump 的步骤。
常见问题
Lovable 应用需要多少 RAM?
销售页面推荐至少 4 GB RAM、2 vCore 和 40 GB 磁盘。这个数字来自构建:一个有 85 个软件包的大型 Next.js 项目在 2 GB 上内存不足,在 4 GB 上完成了构建。如果构建内存不足,请在面板中升级。
每月费用是多少?
推荐的最低配置每月约 $6(含增值税),在土耳其以外以美元付款。每日备份已包含在价格中,流量不限。用于 Supabase 的第二台服务器单独收费。导出代码并不会终止您的 Lovable 订阅或 Cloud 用量。
如何把域名从 Lovable 迁走?
先在临时地址上测试一切。然后把 A 记录指向服务器的 IP 地址,把域名添加到应用中,并重新部署。要停用 lovable.app 地址,请在 Lovable 中取消发布该项目。
上线后如何更新网站?
继续在 Lovable 或您的编程工具中工作。每次修改都会进入同步的分支,设置了 webhook 的话,服务器会构建它。想把做到一半的工作留在线下,可以让 Lovable 在单独的分支上工作,准备好之后再合并。
数据库会随代码一起过来吗?
不会。Git sync 和 zip 包里包含源文件和定义数据库结构的文件。记录和上传的文件需要单独导出,所以在停用旧后端之前,请先在新地方验证它们。
评论0
暂无评论
成为第一个分享想法的人。
请登录或注册后发表评论。