Fly.io, альтернатива Heroku

25/08/2022 пришло письмо, что heroku удалит некоторые бесплатные сервисы в ноябре. Если вы, как и я, часто использовали его для размещения тестов, решений с вашего github и даже некоторых игр. Fly.io может стать отличным решением, заменяющим heroku.

Как перенести свои приложения

Мы рассмотрим пошаговый подход к выполнению миграции, как приложения, так и ковриков развертывания в действиях на github.

Установка

  • Создайте учетную запись на fly.io

  • Загрузите и установите SDK из комплекта поставки.

linux

curl -L https://fly.io/install.sh | sh
Войдите в полноэкранный режим Выход из полноэкранного режима

mac

brew install flyctl
Войдите в полноэкранный режим Выход из полноэкранного режима

windows

iwr https://fly.io/install.ps1 -useb | iex
Войдите в полноэкранный режим Выход из полноэкранного режима
  • Введите SDK
fly auth login
Войдите в полноэкранный режим Выход из полноэкранного режима

Развернуть

  • В корневой папке вашего проекта выполните
fly launch
# siga os passos de configuração necessários
Войдите в полноэкранный режим Выход из полноэкранного режима

В корне проекта будет создан файл с именем fly.toml.

  • Измените порт приложения.
[[services]]
  http_checks = []
  internal_port = 3000  #porta da sua aplicação aqui
  processes = ["app"]
  protocol = "tcp"
Войдите в полноэкранный режим Выход из полноэкранного режима
  • Наконец запустите
fly launch
# or
fly deploy
Войдите в полноэкранный режим Выход из полноэкранного режима

Перейдите по ссылке, указанной на сайте fly.io, и ваше приложение будет доступно.

Действия на Github

Измените файл рабочего процесса вашего приложения. Удалите все, что связано с Heroku.

  • Добавьте в файл deploy.yaml.
env:
  FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
Войдите в полноэкранный режим Выход из полноэкранного режима
  • На вашей работе
- uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only --detach  
Войдите в полноэкранный режим Выход из полноэкранного режима
  • Пример
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  
Войдите в полноэкранный режим Выход из полноэкранного режима

Готово, теперь ваше приложение доступно для бесплатного использования так же, как и на heroku.

Оцените статью
devanswers.ru
Добавить комментарий