Частина посилань на цій сторінці партнерські: якщо ви зареєструєтесь через них, сайт отримає комісію, для вас ціна не змінюється. На ціни й рекомендації це не впливає.
Кожен гайд « запустіть CI безкоштовно » зупиняється на тому самому: GitHub дає безкоштовні хвилини, а self-hosted раннери безкоштовні. Жодне твердження не хибне, і жодне не каже, скільки раннер коштує насправді. Цей робить арифметику з цифрами, які GitHub публікує сьогодні, і ціною VPS, яку ми заміряли самі.
Скільки GitHub-hosted раннери коштують за хвилину
Заголовна цифра - $0.006 за хвилину за стандартний Linux-раннер на 2 ядра, і вона діє лише коли ваші включені хвилини вичерпано. До того ви не платите похвилинно; ви витрачаєте місячний ліміт.
| Раннер | Тариф за хвилину (USD) |
|---|---|
| Linux 1 ядро (x64) | $0.002 |
| Linux 2 ядра (x64) | $0.006 |
| Linux 2 ядра (arm64) | $0.005 |
| Windows 2 ядра | $0.010 |
| macOS 3-4 ядра | $0.062 |
У цій таблиці ховаються дві речі. По-перше, GitHub округлює кожен джоб до цілої хвилини вгору, тож 30-секундний джоб рахується як хвилина. По-друге, arm64 дешевший за x64 ($0.005 проти $0.006) - привід перевести публічний раннер на Arm-мітку, якщо ваш стек збирається на Arm.
Більші раннери - це інша драбина: Linux на 4 ядра - $0.012/хв, 8 ядер - $0.022, 16 ядер - $0.042, аж до 96 ядер за $0.252. Вони важать лише коли ви паралелите всередині одного джоба, і на плані Free їх узагалі немає.
Безкоштовний ліміт, у хвилинах
« Безкоштовно » означає включений обсяг обчислень, а не безмежні хвилини. Місячний ліміт у перерахунку на стандартні Linux-хвилини за $0.006:
| План | Включені обчислення | Стандартні Linux-хвилини |
|---|---|---|
| Free | $12 | 2 000 |
| Pro | $18 | 3 000 |
| Team | $18 | 3 000 |
| Enterprise Cloud | $300 | 50 000 |
Два правила важать більше за таблицю. Публічні репозиторії отримують стандартні hosted-раннери безкоштовно й безлімітно - хвилини вище стосуються лише приватних репозиторіїв. А self-hosted раннери безкоштовні завжди й узагалі не витрачають ваші включені обчислення. Саме це друге правило - увесь бізнес-сенс запускати власний.
Точка беззбитковості: коли VPS б’є GitHub
Self-hosted раннер коштує стільки, скільки коштує машина, а хвилини безкоштовні. Питання в тому, скільки hosted-хвилин ця машина має замінити, перш ніж окупиться.
Візьміть Hetzner CX23, який ми заміряли для нашого порівняння VPS: 2 vCPU / 4 ГБ / 40 ГБ за €5.49 на місяць, приблизно $6. За $0.006 за Linux-хвилину $6 купують рівно 1 000 hosted-хвилин. Тож CX23 окупається того місяця, коли ви інакше витратили б 1 000 платних хвилин - тобто хвилин понад безкоштовний ліміт.
Розрахований приклад на плані Free:
- Ви отримуєте 2 000 Linux-хвилин безкоштовно.
- Вам реально треба 4 000 хвилин (завантажений приватний репозиторій або кілька).
- Вартість hosted: (4 000 - 2 000) × $0.006 = $12.
- Вартість self-hosted: €5.49 ≈ $6, хвилини безлімітні.
- Ви в плюсі з першого місяця, і кожна додаткова хвилина безкоштовна.
Той самий розрахунок на Pro (3 000 включено): self-hosted виграє, щойно ви переходите 3 000 + 1 000 = 4 000 хвилин на місяць. Нижче hosted дешевший, бо ви вже платите за Pro і ліміт вас покриває.
Частина, яку арифметика замовчує
VPS працює незалежно від того, йде білд чи ні. Hosted-раннери тарифікують лише використані хвилини. Ця асиметрія вирішує все:
- Стабільне, важке CI - нічні білди, монорепозиторій з багатьма джобами - self-hosted виграє в перший насичений місяць і далі.
- Стрибкоподібне CI - кілька пушів на тиждень, хвилини там і тут - ви лишаєтесь у безкоштовному ліміті, і hosted нічого не коштує. VPS за €5.49 - це €5.49, які вам не треба було витрачати.
- Короткі джоби - округлення GitHub до хвилини карає 20-секундні джоби. У self-hosted раннера немає лічильника, який треба округлювати, тож сто 20-секундних джобів - це просто… час.
Є ще дві переваги self-hosting, які не про гроші. Hosted-джоби обмежені 6 годинами; у self-hosted раннера такого стелі немає. А hosted-паралелізм обмежений планом, тоді як self-hosted раннер дає стільки паралельних джобів, скільки ядер у машини.
Скільки self-hosted раннер коштує вам насправді
Ціна в доларах - це не вся ціна. Тепер ви запускаєте сервіс, який виконує довільний код з вашого репозиторію, і вам належать патчі, оновлення та межа безпеки.
Три правила, яких ми дотримуємось на власній машині:
- Ніколи не на продакшн-хості. Раннер виконує недовірений код воркфлоу. Дайте йому власний VPS або принаймні власний контейнер без доступу до вашого сайту, конфігів чи бекапів.
- Ефемерний, а не довгоживучий. Реєструйте свіжий раннер на джоб або на день, щоб отруєний образ не залишався. Actions Runner Controller (ARC) робить це на Kubernetes; простий
docker run --rmобразу раннера робить це на одній машині. - Жодних секретів у середовищі раннера. Раннер бачить лише
GITHUB_TOKEN, обмежений репозиторієм, для джобів, які виконує. Тримайте ключі деплою там, де джоб їх не прочитає - те саме міркування з гайда про rsync-деплой.
Сам раннер - це один бінарник або один контейнер, який ви запускаєте під Docker; він не екзотичний. Легко помилитись у всьому, що навколо нього, і саме це має реальну ціну у вашому часі.
Налаштування однакове на будь-якій машині: створіть раннер у Settings → Actions → Runners → New self-hosted runner, скопіюйте команду завантаження - вона містить ваш токен і поточну версію - потім запустіть config.sh і встановіть його як сервіс. Сторінка GitHub дає вам рівно три команди; номер версії змінюється, процес - ні.
Що обрати?
Обирайте GitHub-hosted, якщо лишаєтесь у безкоштовному ліміті - приватні репозиторії до 2 000 хвилин на місяць або будь-який публічний - хочете нуль обслуговування, і ваші джоби завершуються за хвилини, а не години.
Обирайте self-hosted раннер на Hetzner , якщо щомісяця вичерпуєте безкоштовний ліміт, вам потрібні довгі або сильно паралельні джоби, або білди в приватній мережі поруч із серверами.
Обирайте Vultr або DigitalOcean , якщо вам потрібен раннер у регіоні, якого Hetzner не покриває, або посекундна тарифікація для раннера, який ви запускаєте лише на вимогу.
FAQ
Чи GitHub Actions безкоштовні? Публічні репозиторії отримують стандартні hosted-раннери безкоштовно й безлімітно. Приватні репозиторії отримують щомісячний ліміт - $12 обчислень на плані Free, тобто 2 000 стандартних Linux-хвилин - а далі платять $0.006 за кожну додаткову Linux-хвилину.
Скільки коштує self-hosted раннер? Програмне забезпечення раннера безкоштовне. Ви платите лише за машину, на якій він працює - від приблизно €5.49 на місяць за Hetzner CX23 - і за свій час на обслуговування. Хвилини безлімітні.
Коли self-hosted раннер дешевший? Коли ваше споживання на приватних репозиторіях перевищує безкоштовний ліміт більш ніж приблизно на 1 000 Linux-хвилин на місяць. Нижче VPS за приблизно $6 коштує більше, ніж hosted-хвилини, які він замінює.
Чи мають hosted-раннери обмеження? Так. Джоби завершуються таймаутом на 6 годинах, а паралелізм обмежений планом. Self-hosted раннери не мають похвилинної вартості й 6-годинного стелі, але вам належить машина та її оновлення.
Чи безпечно запускати self-hosted раннер? Лише якщо ізолювати його. Він виконує довільний код з вашого репозиторію, тож ніколи не має ділити хост із продакшн-навантаженнями, має бути ефемерним і без довгоживучих секретів. Наш аудит успадкованого сервера - це чекліст ізоляції.
Що далі?
Машина під усім цим - рішення, яке ви насправді ухвалюєте. Порівняння VPS розбирає Hetzner проти DigitalOcean проти Vultr з бенчмарками, які ми прогнали самі, а гайд Caddy + Docker показує односерверне налаштування, що тримає self-hosted раннер і невеликий сайт на одному сервері так, щоб вони не торкалися.