Deply Project to Fly Replace Heroku
Deply Project to Fly Replace Heroku
Heroku 將在 11/28, 2022 中止免費方案.
替代方案
更詳細的內容請參考: https://dev.to/meshvpatel18/top-heroku-alternatives-for-free-46g1
- Netlify - Host serverless apps
- Cloudflare - Best for Static Site.
- Cyclic - Deploy full stack Node JS apps in seconds.
- Deta – The Cloud for Developers
- Firebase - Fast and secure web hosting
- Railway - Made for any language.
- Render - The fastest
- Devtron
- Fly - Run your full stack apps all over the world.
- Fathym - Develop and deploy micro frontends in a headless, open world.
- Back4app - Low-code backend to build modern apps
- Dom Cloud - Classic Web Hosting Made Easy
- Adaptable - The easiest way to deploy your FullStack App
- Microtica
- Coherence - The First Developer Experience Platform
原先在 Heroku 上架了 Line Bot, 使用上面的free PostgreSQL 跟 Redis. fly 剛好符合目前想要的使用情境, 所以這篇文章紀錄一下 如何使用~
fly 免費方案的RAM約250MB, 想比Heroku的 500 MB 小了很多, 但 fly 不像 Heroku 會30分鐘沒使用就讓你的 server 停機
Install Flyctl
MAC
|
|
其他的 OS安裝方式可以參考 : https://fly.io/docs/hands-on/install-flyctl/
Singup and Login
首先要先註冊再來是登入, 指令如下
|
|
Launch and Deploy
Launch
可以直接到你的project下 執行 flyctl launch
此時就他會詢問一些問題, 像是你的app name , 跟 server 要放在哪個國家區域等
|
|
最後會自動產生出fly.toml
跟 Dockerfile
. 這邊是我的Django
|
|
Deploy
flyctl deploy
, 就可以在 fly的 dashboard 看到程式碼正在部署了~
如果有程式異動, 也可以直接打此指令
Create Postgre
跟上一步建立flyctl launch
差不多.
執行此指令flyctl postgres create
, 最後他產生出一組連線資訊跟密碼.
記得要把它存起來, 要不然之後沒地方可以查到這些資訊
Create Redis
執行此指令flyctl redis create
記得要把它存起來, 要不然之後沒地方可以查到這些資訊
https://fly.io/docs/reference/redis/
其他指令:
|
|
Secrets
當 Postgre
跟 Redis
都建立好時, 你可以把連線資訊或者你的環境變數寫入 .env
檔.
藉由 flyctl secrets import
去匯入
ex:
|
|
Fly Status
flyctl ssh console
: 可以 ssh 進去
fly status --all
: 看目前此 project 狀態
最後可以在你的 Dashborad上看到
Github Action
https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/
1. 建立 Fly API Token
flyctl auth token
產生出一組 token, 並把它寫到你的 repositiry > settings > Secrets > Actions
取名為 FLY_API_TOKEN
如下圖
2. 建立 yml 檔
最後可以使用 Github Action, 當push時, 自動 deploy
在你的目錄 .github/workflows
資料夾下建立一個yml
檔
|
|
之後只要push到 flyio
branch 就會自動跑 action了