Бесплатный Linux VPS от GitHub Actions (6 часов)
By PyProHACK - tg: @pyprohack_projectПривет! Сегодня я в очередной раз улучшу туториал по получению халявного VPS сервера, работающего на базе GitHub Actions.

В прошлый раз мы добились того, что сервер стабильно работал 40 минут, а потом его приходилось перезапускать, хотя в официальных доках гитхаба написано, что сервер должен жить 6 часов. Как так?
Дело в том, что гитхаб выдаёт сервер без белого ip и для того, чтобы к нему подключиться нам приходится туннелировать трафик через ngrok, тунель которого в бесплатной версии живёт всего 40 минут.
Избавляемся от ngrok
Сразу хочу предупредить, что данный туториал не позволит вам получить сервер на Windows, только Linux(в туториале Ubuntu).
Воспользуемся сервисом tmate.io, который позволяет расшарить терминал посредством ssh + tmux. Они предоставляют свой публичный сервер, который по-сути выполняет роль ngrok'а, но в данном случае у них нет лимита на длительность сессии.
Туториал
Создаём новый репозиторий на гитхабе и переходим во вкладку "Actions".

Далее создаём новый пустой 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"

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

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