IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用 Railway 和 Supabase 部署 Laravel 应用

    forecho\'s Blog发表于 2022-08-30 09:09:00
    love 0

    引言

    20220830lBfWYZ

    刷 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 文件就可以了,代码如下:

    1
    
    web: (cd /app && cp .env.example .env && php artisan key:generate && php artisan migrate) && ([ -e /app/storage ] && chmod -R ugo+w /app/storage); perl /assets/transform-config.pl /assets/nginx.template.conf /nginx.conf && echo "Server starting on port $PORT" && (php-fpm -y /assets/php-fpm.conf & nginx -c /nginx.conf)
    

    由于我们使用的是 Supabase 数据库,所以这里我们要输入环境变量,配置从 Supabase 获取到。

    Railway 支持自动化部署,自定义域名,看起来还不错。

    Supabase 的使用就不讲了,很简单。

    最后

    Railway 看起来是一个很新的平台,不是很完善,目前我没找到如何部署跑队列服务和定时脚本服务,在没找到这两个解决方案之前我不打算使用 Railway。如果你没有这两个需求倒是可以试试。

    说起 PaaS,就不得不提起 Heroku ,但是它似乎在被 Salesforce 收购之后不思进取了,可惜了。希望这行业有更多的平台涌出吧,有竞争才是好事。

    另外听说 Fly.io 也是一个不错的平台,下回有时间可以研究一下。

    更新

    今天折腾了半天好好体验了一下 PlanetScale 和 Supabase,功能是不错,产品是好产品,但是真正要用起来的话发现国内网络延迟太高了(我选的是新加坡节点),我的服务器在香港,一个请求接近 2 秒。体验下来 PlanetScale 会比 Supabase 好一点。

    如果是自己一个人用还好,但是如果是 Side Project 用的话,太慢,体验不好。

    最后不得不放弃了,还是老老实实用阿里云的 RDS,RDS 新用户基础版 3 年 59.9 元,这个价格还不错。

    参考资料

    • 使用 Railway 和 Miniflux 零成本搭建 RSS 服务


沪ICP备19023445号-2号
友情链接