Fly.io, alternativa ao Heroku

booscaaa

Vinícius Boscardin

Posted on August 28, 2022

Fly.io, alternativa ao Heroku

No dia 25/08/2022 chegou o e-mail que o heroku vai remover alguns serviços gratuitos lá em novembro. Se você assim como eu usava muito ele para hospedar alguns testes, soluções do seu github e até mesmo algumas brincadeiras. Fly.io pode ser uma solução incrível substituindo o heroku.

Como migrar seus apps

Veremos um passo a passo para realizar a migração, tanto da aplicação quanto das esteiras de deploy no github actions.

Instalação

Image description

  • Baixe e instale o SDK fornecido.

linux

curl -L https://fly.io/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

mac

brew install flyctl
Enter fullscreen mode Exit fullscreen mode

windows

iwr https://fly.io/install.ps1 -useb | iex
Enter fullscreen mode Exit fullscreen mode
  • Faça o login com o SDK
fly auth login
Enter fullscreen mode Exit fullscreen mode

Deploy

  • Na pasta raiz do seu projeto rode
fly launch
# siga os passos de configuração necessários
Enter fullscreen mode Exit fullscreen mode

Um arquivo chamado fly.toml será criado na raiz do projeto.

  • Altere a porta da aplicação.
[[services]]
  http_checks = []
  internal_port = 3000  #porta da sua aplicação aqui
  processes = ["app"]
  protocol = "tcp"
Enter fullscreen mode Exit fullscreen mode
  • Por fim rode
fly launch
# or
fly deploy
Enter fullscreen mode Exit fullscreen mode

Acesse o link disponibilizado no fly.io e seu app estará disponível.

Image description

Github actions

Altere o arquivo de workflow do seu app. Remova tudo referente ao Heroku.

  • Adicione no arquivo_deploy.yaml.
env:
  FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
Enter fullscreen mode Exit fullscreen mode
  • No seu job
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only --detach  
Enter fullscreen mode Exit fullscreen mode
  • Exemplo
name: Deploy to fly.io app

on:
  create:
    tags:
      - v*

env:
  FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Config file access
        run: |
          rm -rf config.json
          touch config.json 
          json='{"database": {"url": "://$DB_USER:$DB_PASS@$DB_HOST:$DB_PORT/"},"server": {"port": ""}}'
          echo "$json" > config.json
          sed -i -e 's/$DB_PORT/'${{ secrets.DB_PORT }}'/g' config.json
          sed -i -e 's/$DB_USER/'${{ secrets.DB_USER }}'/g' config.json
          sed -i -e 's/$DB_PASS/'${{ secrets.DB_PASS }}'/g' config.json
          sed -i -e 's/$DB_HOST/'${{ secrets.DB_HOST }}'/g' config.json
          cat config.json

      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only --detach  
Enter fullscreen mode Exit fullscreen mode

Feito, com isso seu app já está disponível gratuitamente para uso da mesma forma que fazíamos no heroku.

💖 💪 🙅 🚩
booscaaa
Vinícius Boscardin

Posted on August 28, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Fly.io, alternativa ao Heroku
heroku Fly.io, alternativa ao Heroku

August 28, 2022