Скрипт встановлення self-hosted раннера GitHub Actions
Вкажіть репозиторій і мітки та отримайте скрипт: він встановить раннер під окремим користувачем і запустить його як сервіс. Токен ви вводите на своєму сервері, а не тут.
Працює повністю в браузері — нічого з уведеного не надсилається на наші сервери.
Лише для приватних репозиторіїв. У публічному pull request із форка може виконати код на вашому сервері.
Як запустити
- На GitHub відкрийте Settings → Actions → Runners → New self-hosted runner і скопіюйте токен.
- Скопіюйте скрипт на сервер із Debian або Ubuntu і запустіть від root: bash install-runner.sh.
- Коли скрипт попросить, вставте токен. Він залишається на вашому сервері й через цю сторінку не проходить.
- Вставте рядок runs-on у свій workflow.
Потрібен сервер під раннер? Тариф Small: 4 vCPU, 4 ГБ, root-доступ, $8 на місяць.
Тариф SmallЯк це працює
Self-hosted раннер працює на вашій машині: сам підключається до GitHub, забирає завдання й виконує їх у вас. Скрипт встановлює потрібні пакети, створює окремого користувача Linux, завантажує останній випуск раннера, реєструє його й налаштовує сервіс systemd, який переживає перезавантаження. Скрипт збирається в браузері, тож прочитайте кожен рядок перед запуском. Серверу потрібен лише вихідний доступ до GitHub, виділений IP не потрібен.
Питання й відповіді
Де взяти токен реєстрації?
У репозиторії відкрийте Settings → Actions → Runners → New self-hosted runner. Токен діє одну годину. Для раннера на всю організацію шлях той самий, але в налаштуваннях організації.
Чи можна використовувати self-hosted раннер із публічним репозиторієм?
GitHub не радить: pull request із форка може виконати код на вашому сервері. Використовуйте self-hosted раннери з приватними репозиторіями.
Чи потрібен серверу виділений IP?
Ні. Раннер сам підключається до GitHub, вхідні з'єднання йому не потрібні, тому підійде тариф без виділеного IP. За потужністю більшості проєктів вистачає 4 vCPU і 4 ГБ пам'яті.