引言
刷 Twitter 的时候看到有人分享如何使用 Railway + Supabase 部署应用,这些 PaaS 服务通常都有免费额度,如果是小项目通常相当于免费使用。
简单看了一下觉得还不错,于是我尝试部署了一份 Laravel 应用。这篇文章就来分享一下我踩过的坑。
Railway
Railway 提供服务器和数据库服务,注册账户就可以免费使用 500 小时(20 天),或者 5 美元以下的额度,每个月重置额度,详情看他们的 Starter Plan。
绑定信用卡之后就会按照使用情况自动扣钱了,每个月超过 5 美元就开始收费。当然也就没有 500 小时/月的限制。所以 Starter Plan 版就是给你体验的,真要使用起来还是得绑定信用卡。
这里我们只使用它提供的服务器服务,数据库可以使用 Supabase 代替,以减轻 Railway 的免费额度。
Supabase
Supabase 提供 Database、Authentication、Storage、Edge Functions 服务,这里我们只需要用它的 Database 服务,免费额度有 500MB,感觉对小项目够用了。
值得注意的是 Supabase 提供 Database 是 PostgreSQL,如果要用 MySQL 的话,可以使用 PlanetScale。
部署 Laravel 应用
Railway 新建项目的时候可以选 Laravel 模板,但是坑爹的是,这个模板根本无法正常使用,我摸索了半天,经过几个小时的踩坑(Google + 不断尝试)最后终于正常部署了。
其实只要在 Laravel 项目根目录加上 Procfile
文件就可以了,代码如下:
|
|
由于我们使用的是 Supabase 数据库,所以这里我们要输入环境变量,配置从 Supabase 获取到。
Railway 支持自动化部署,自定义域名,看起来还不错。
Supabase 的使用就不讲了,很简单。
最后
Railway 看起来是一个很新的平台,不是很完善,目前我没找到如何部署跑队列服务和定时脚本服务,在没找到这两个解决方案之前我不打算使用 Railway。如果你没有这两个需求倒是可以试试。
说起 PaaS,就不得不提起 Heroku ,但是它似乎在被 Salesforce 收购之后不思进取了,可惜了。希望这行业有更多的平台涌出吧,有竞争才是好事。
另外听说 Fly.io 也是一个不错的平台,下回有时间可以研究一下。
更新
今天折腾了半天好好体验了一下 PlanetScale 和 Supabase,功能是不错,产品是好产品,但是真正要用起来的话发现国内网络延迟太高了(我选的是新加坡节点),我的服务器在香港,一个请求接近 2 秒。体验下来 PlanetScale 会比 Supabase 好一点。
如果是自己一个人用还好,但是如果是 Side Project 用的话,太慢,体验不好。
最后不得不放弃了,还是老老实实用阿里云的 RDS,RDS 新用户基础版 3 年 59.9 元,这个价格还不错。
参考资料
- 原文作者: forecho
- 原文链接: https://blog.forecho.com/use-railway-and-supabase.html
- 版权声明:本作品采用 署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。