Vinícius Boscardin
Posted on 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
- Crie uma conta em fly.io
- Baixe e instale o SDK fornecido.
linux
curl -L https://fly.io/install.sh | sh
mac
brew install flyctl
windows
iwr https://fly.io/install.ps1 -useb | iex
- Faça o login com o SDK
fly auth login
Deploy
- Na pasta raiz do seu projeto rode
fly launch
# siga os passos de configuração necessários
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"
- Por fim rode
fly launch
# or
fly deploy
Acesse o link disponibilizado no fly.io e seu app estará disponível.
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 }}
- No seu job
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only --detach
- 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
Feito, com isso seu app já está disponível gratuitamente para uso da mesma forma que fazíamos no heroku.
Posted on August 28, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.