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.
Top comments (0)