Частина посилань на цій сторінці партнерські: якщо ви зареєструєтесь через них, сайт отримає комісію, для вас ціна не змінюється. На ціни й рекомендації це не впливає.

Кожен гайд « запустіть 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$122 000
Pro$183 000
Team$183 000
Enterprise Cloud$30050 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 раннер коштує вам насправді

Ціна в доларах - це не вся ціна. Тепер ви запускаєте сервіс, який виконує довільний код з вашого репозиторію, і вам належать патчі, оновлення та межа безпеки.

Три правила, яких ми дотримуємось на власній машині:

  1. Ніколи не на продакшн-хості. Раннер виконує недовірений код воркфлоу. Дайте йому власний VPS або принаймні власний контейнер без доступу до вашого сайту, конфігів чи бекапів.
  2. Ефемерний, а не довгоживучий. Реєструйте свіжий раннер на джоб або на день, щоб отруєний образ не залишався. Actions Runner Controller (ARC) робить це на Kubernetes; простий docker run --rm образу раннера робить це на одній машині.
  3. Жодних секретів у середовищі раннера. Раннер бачить лише 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 раннер і невеликий сайт на одному сервері так, щоб вони не торкалися.