Fly.io, alternativa ao Heroku – DEV Community 👩‍💻👨‍💻

August 28, 2022


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 modeExit fullscreen mode



mac

brew install flyctl
Enter fullscreen modeExit fullscreen mode



windows

iwr https://fly.io/install.ps1 -useb | iex
Enter fullscreen modeExit fullscreen mode
fly auth login
Enter fullscreen modeExit fullscreen mode



Deploy

  • Na pasta raiz do seu projeto rode
fly launch
# siga os passos de configuração necessários
Enter fullscreen modeExit 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 modeExit fullscreen mode
fly launch
# or
fly deploy
Enter fullscreen modeExit 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 modeExit fullscreen mode
- uses: superfly/flyctl-actions/[email protected]
- run: flyctl deploy --remote-only --detach  
Enter fullscreen modeExit fullscreen mode
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/[email protected]

      - name: Config file access
        run: |
          rm -rf config.json
          touch config.json 
          json='{"database": {"url": "://$DB_USER:[email protected]$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/[email protected]
      - run: flyctl deploy --remote-only --detach  
Enter fullscreen modeExit fullscreen mode

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



Source link

Comments 0

Leave a Reply

Your email address will not be published. Required fields are marked *