Бесплатный Linux VPS от GitHub Actions (6 часов)

Бесплатный Linux VPS от GitHub Actions (6 часов)

By PyProHACK - tg: @pyprohack_project

Привет! Сегодня я в очередной раз улучшу туториал по получению халявного VPS сервера, работающего на базе GitHub Actions.

By PyProHACK - tg: @pyprohack_project

В прошлый раз мы добились того, что сервер стабильно работал 40 минут, а потом его приходилось перезапускать, хотя в официальных доках гитхаба написано, что сервер должен жить 6 часов. Как так?

Дело в том, что гитхаб выдаёт сервер без белого ip и для того, чтобы к нему подключиться нам приходится туннелировать трафик через ngrok, тунель которого в бесплатной версии живёт всего 40 минут.

Избавляемся от ngrok

Сразу хочу предупредить, что данный туториал не позволит вам получить сервер на Windows, только Linux(в туториале Ubuntu).

Воспользуемся сервисом tmate.io, который позволяет расшарить терминал посредством ssh + tmux. Они предоставляют свой публичный сервер, который по-сути выполняет роль ngrok'а, но в данном случае у них нет лимита на длительность сессии.

Туториал

Создаём новый репозиторий на гитхабе и переходим во вкладку "Actions".

Actions

Далее создаём новый пустой workflow.

Simple workflow
Код на скриншоте не совсем верный, скопируйте код, который представлен ниже

Можете поменять название файла, главное оставить расширение yml или yaml. В поле вводим следующий код:

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup tmate session
      uses: mxschmitt/action-tmate@v3 

И коммитим файл.

Теперь возвращаемся во вкладку Actions, в ней появится запущенный workflow, который мы только что создали.

Кликаем на него и дальше кликаем на "build".

Через некоторое время вы увидите данные для подключения к сессии.

Есть возможность подключиться через веб терминал, либо обычный через ssh клиент. Не рекомендую использовать веб - терминал, так как в нём не работают хоткеи tmux'а, и он лагает.

Открываем терминал (на Windows powershell или cmd) и выполняем команду вида(копируем из логов запущенного workflow):

ssh ВАШИ ДАННЫЕ.tmate.io

Если после подключения у вас появится такое предупреждение, то нажимайте "q"

Вы внутри tmux сесси и все её фичи работают отлично

Всё! Теперь вы можете спокойно использовать сервер!

sudo apt install speedtest-cli

В него подгружаются файлы из вашего репозитория, поэтому вы можете закидывать их в него, перезапускать workflow и они автоматически скопируются на него.

Report Page