Решение

VPS для self-hosted CI/CD раннеров (GitHub Actions, GitLab, Woodpecker)

Cutter 16 · $62/moClipper 16 · $92/mo
Краткий ответ

Self-hosted раннеры быстро окупаются: Cutter 16 за $62 в месяц заменяет несколько тысяч минут облачного CI и собирает быстрее, так как кэш локальный. Четыре-шесть выделенных ядер и 16 ГБ справятся с большинством матриц сборки. Используйте NVMe — установка зависимостей и извлечение слоёв контейнеров почти полностью упираются в ввод-вывод.

Что вам нужно

Минимальные характеристики для ci/cd раннеры
РесурсЧто вам нужно на самом деле
CPU4–8 выделенных ядер; сборки хорошо параллелятся
RAM16 ГБ для типичной матрицы, 32 ГБ для больших монорепозиториев
Диск320 ГБ NVMe — кэши, образы и артефакты накапливаются
ЯдроВложенная виртуализация для задач с контейнерами и VM

Рекомендуемые тарифы

Cutter

Cutter 16

$ 58.9 /month

Итого 176,70 $ · Скидка 5%

vCPU
6 × dedicated
RAM
16 GB
Диск
320 GB NVMe SSD
Трафик
15 TB
IPv4 / IPv6
1 / /64 routed
Настроить
Clipper

Clipper 16

$ 87.4 /month

Итого 262,20 $ · Скидка 5%

vCPU
8 × dedicated
RAM
16 GB
Диск
400 GB NVMe Gen4 SSD
Трафик
30 TB
IPv4 / IPv6
1 / /64 routed
Настроить
Clipper

Clipper 32

$ 165.3 /month

Итого 495,90 $ · Скидка 5%

vCPU
12 × dedicated
RAM
32 GB
Диск
800 GB NVMe Gen4 SSD
Трафик
40 TB
IPv4 / IPv6
1 / /64 routed
Настроить

Рекомендуемые местоположения

Местоположение обычно является решающим фактором для этой нагрузки — либо из-за задержек, либо из-за юрисдикции.

Почему OnionVPS для этого

  • Вложенная виртуализация означает, что задачи на Docker и на VM работают.
  • Локальные кэши зависимостей на NVMe заметно сокращают время сборки по сравнению с холодным облачным раннером.
  • Фиксированная месячная цена вместо поминутной тарификации, которая бьёт по карману в загруженную неделю.
  • Без верификации аккаунта: раннер можно развернуть скриптом в три часа ночи.

Как настроить

  1. Разверните Cutter 16 с Ubuntu 24.04

    Шесть ядер и 16 ГБ покрывают большинство проектов.

  2. Установите агент раннера

    GitHub Actions runner, gitlab-runner или Woodpecker — в зависимости от вашей платформы.

  3. Запускайте задачи в эфемерных контейнерах

    Свежий контейнер на каждую задачу не даёт одной сборке отравить следующую.

  4. Сохраняйте кэши пакетов вне контейнера

    Монтируйте каталоги хоста для npm, cargo, pip и слоёв Docker.

  5. Зарегистрируйте раннер и добавьте теги

    Теги позволяют направлять тяжёлые задачи сюда, а лёгкие оставлять на облачных раннерах.

Часто задаваемые вопросы

Дешевле ли self-hosted CI раннер, чем облачные минуты?

Почти всегда после нескольких тысяч минут в месяц. Инстанс за $62 работает непрерывно; облачный CI тарифицируется поминутно и при каждом холодном старте заново скачивает зависимости.

Можно ли запускать Docker-сборки на self-hosted раннере?

Да. Вложенная виртуализация и полный root означают, что buildx, Docker-in-Docker и rootless-сборки — всё работает.

Безопасны ли self-hosted раннеры для публичных репозиториев?

Только с эфемерными изолированными раннерами. Публичный репозиторий может выполнять произвольный код из pull request, поэтому никогда не давайте такому раннеру доступ к секретам или вашей внутренней сети.