supabase 还是 firebase? 一键部署自己的后端服务
supabase 还是 firebase? 一键部署自己的后端服务
作为独立开发者,尤其是技术栈多为偏向前端技术的时候,如何选择自己的后端支撑服务变得非常的重要。firebase 和 supabase 如何选择一定会是许多人面临的问题。
与传统的完全自己开发一个后端站点不同,firebase 和 supabase 都都是强大的后端即服务 BaaS 平台,两者提供了几乎所有的开发一个 App 需要的后端服务。让开发一款 App,尤其是对后端技术不太懂的用户来说,变得更加的容易和方便。
firebase 是基于谷歌的基础设施,提供高性能和良好的扩展性,supabase 则基于AWS Graviton 构建,性能也相当不错。supabase 声称是 firebase 的开源替代品,除了提供官方的托管服务外,同时也提供开源版本,用户可以部署到自己的服务器上面。
根据官方文档,其自部署通过 Docker 进行的。Docker 虽然在一定程度上面简化了部署的过程,但是由于其系统运行起来总共有 10 多个docker 共同组合的,如 Auth、Storage、realtime、Edge function 等各种服务,所以能部署并正常运行起来就是一个比较大的挑战,许多人尝试之后望而却步。
再加上可能还会碰到部署 SSL、设置域名等问题,许多人经过失败的尝试之后便放弃了。
但是有一个自部署的 supabase 服务也是相当诱人的,相比官方的套餐,如果能自部署成功,价格也划算的多。并且也就没有其他的限制,比如自定义域名在官方托管版本上面必须是 Pro 版才可以。realtime 和 Edge function 也有一定的调用次数限制,自部署的话完全看自己的服务器资源性能。
是否有简单的部署方式可以操作?当然有,这里我们可以通过 dokploy 进行 supabase 的一键部署。
一、dokploy搭建
dokploy 站点:https://dokploy.com/zh-Hans
Dokploy 有点类似于宝塔等面板,但是又不相同。也是开源的服务器上基础设施管理工具,它提供了一套自动化部署、缩放和构建优化的解决方案,适用于各种规模的企业和项目。
dokploy 可以做到类似 Vercel 这样的自动化部署,而其又不仅限于部署前端的项目。可以部署任何基于 Docker 的项目,管理起来也非常方便。按照官网的介绍,我们可以通过一行代码在新的服务器上面安装 dockploy。整个过程非常简单,几乎没有难点。
二、用dokploy进行supabase的自部署
安装完 dokploy 后,便可以打开后台后,创建 project。在每个 project 中,可以创建多个 service。
dokploy 提供了多种创建 service 的方式,除了可以通过 github、bitbucket 等方式一键部署外,还可以通过 dokploy 内置的 template 的方式进行系统的安装,目前其后端内置了多种系统提供选择。其第一个选项变成 supabase。
选择 supabase 点击 Create,然后确认弹窗中点击 confirm。
这时便开始了自动部署,几分钟之后,整个项目便可以运行成功。查看对应 service 的 Logs,总共有 11 个服务部署并运行成功。在 supabase 官方托管的几乎所有服务,自部署上面都可以正常运行。
三、supabase 自部署与官方托管版本的差异
需要注意的是,虽然 supabase 自部署版本实现了 supabase 官方托管版本上面几乎所有的功能,但是其部分管理方式并不一致。
比如对于 Auth 部分,自部署版本并不像官方托管版本那么直观,全部都可以在 studio 上面进行操作。而是绝大多数需要自己自定义配置的地方,都是通过 docker-compose 文件和.env 文件进行修改和定制的。Auth 部分,在官方托管版本上面,可以直接在 studio 界面上面进行选择和配置。
但是在自部署的版本上面,你只能看到配置内容。
并不是说没有实现这些功能,只是这些功能需要在 docker-compose 中通过代码参数进行配置,配置完成后,重新部署,然后一样可以正常使用。
虽然自部署相比官方托管看起来麻烦一些,但是也有更高的灵活性。自部署版本甚至可以配置 storage 直接到 aws 的 s3 上面,通过调用supabase 的 storage 的 sdk,可以直接上传图片到 aws 的 s3,并且其在前端调用中,也是跟正常使用没有任何区别。
总结
supabase 的自部署,本身是有一定难度的,但通过 dokploy 可以极大的简化其部署和维护的过程。虽然后台的使用可能不是那么直观,但是也有更高的灵活性。熟悉了之后,也非常方便。
对于有一定动手能力的小伙伴来说,supabase 的自部署也是非常值得尝试的,相信会有一些意想不到的收获。