Repolode
kunchenguid

kunchenguid/runner-up

Self-hosted GitHub Actions runners на ваших Linux-, Mac- и Windows-машинах: для каждой задачи создаётся новый контейнер, VM или аккаунт.

Open source альтернатива:GitHub Actions hosted runners

Звёзды
262
Форки
17
Открытые issues
2
Последний коммит
вчера

Что это?

runner-up запускает задачи GitHub Actions на принадлежащих вам машинах вместо GitHub-hosted runners. Единый координатор подключается к GitHub через runner scale sets, отслеживает ожидающие задачи и назначает каждую на свободное место на одной из ваших машин. Для каждой задачи создаётся новый Docker-контейнер или виртуальная машина KVM на Linux, новый клон tart или гостевая Apple container на Mac либо новый аккаунт Windows или виртуальная машина Hyper-V на Windows. По завершении задачи это окружение удаляется. Места также могут запускать задачи непосредственно на хосте.

Координатор подключается к каждой машине по SSH; для работы нужен только SSH-доступ, Kubernetes-кластер не требуется. Он отслеживает количество ядер и объём памяти на каждой машине, резервирует ресурсы для её владельца и распределяет ожидающие задачи по настраиваемым правилам между репозиториями. Pull request из форков по умолчанию отклоняются. Запущенные задачи продолжают выполняться после перезапуска координатора, а машина, агент которой перестал отвечать, приостанавливается до восстановления связи.

Проект новый, и статус каждого провайдера описан отдельно: Docker и KVM на Linux, а также tart и места на хосте на Mac уже запускали реальные задачи. Hyper-V, Apple container и места с аккаунтами Windows помечены как экспериментальные. Проект зависит от runner scale set API GitHub, который GitHub всё ещё обозначает как preview.

Ключевые возможности

  • 01Запускает каждую задачу в новом Docker-контейнере, VM, клоне tart или аккаунте Windows, а затем удаляет это окружение.
  • 02Подключается к машинам по SSH; Kubernetes-кластер не требуется.
  • 03Разбивает ресурсы каждой машины — ядра и память — на места и резервирует часть для её владельца.
  • 04Распределяет ожидающие задачи между репозиториями по настраиваемым правилам.
  • 05По умолчанию отклоняет задачи из pull request, созданных в форках.
  • 06Сохраняет запущенные задачи при перезапуске координатора.

Сценарии использования

  • Заменить платные минуты GitHub-hosted runners на свободные Linux- или Mac-машины.
  • Запускать задачи сборки и подписи для macOS на принадлежащем вам Mac.
  • Запускать CI-задачи на простаивающих офисных или домашних ПК без управления Kubernetes-кластером.
  • Предоставить каждой CI-задаче изолированное окружение на собственном оборудовании.

Быстрый старт

  1. 1

    Установите runner-up с помощью Go

    go install github.com/kunchenguid/runner-up@latest
  2. 2

    Выберите репозиторий для обслуживания и метку пула Linux

    runner-up init --repo you/app --pool my-linux
  3. 3

    Добавьте машину, доступную по SSH

    runner-up machine add box --ssh ci@box
  4. 4

    Проверьте настройку и запустите coordinator

    runner-up check-config && runner-up serve

Что важно знать

  • coordinator работает только в Linux и macOS, но не в Windows.
  • Runner scale sets на стороне GitHub всё ещё находится в предварительной версии, поэтому изменения там могут нарушить его работу.
  • Hyper-V, Apple container, Windows account, borrowing и draining — экспериментальные функции, которые могут меняться от релиза к релизу.
  • Проект ещё молодой, и некоторые провайдеры пока не запускали реальные задания.

В подборках

Темы

Частые вопросы

Что такое runner-up?
Self-hosted GitHub Actions runners на ваших Linux-, Mac- и Windows-машинах: для каждой задачи создаётся новый контейнер, VM или аккаунт. runner-up запускает задачи GitHub Actions на принадлежащих вам машинах вместо GitHub-hosted runners. Единый координатор подключается к GitHub через runner scale sets, отслеживает ожидающие задачи и назначает каждую на свободное место на одной из ваших машин. Для каждой задачи создаётся новый Docker-контейнер или виртуальная машина KVM на Linux, новый клон tart или гостевая Apple container на Mac либо новый аккаунт Windows или виртуальная машина Hyper-V на Windows. По завершении задачи это окружение удаляется. Места также могут запускать задачи непосредственно на хосте.
runner-up можно использовать бесплатно? Какая у него лицензия?
runner-up распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
runner-up всё ещё поддерживается?
Активно поддерживается. Последний коммит в runner-up — 6 нояб. 2026 г..
Для чего можно использовать runner-up?
Заменить платные минуты GitHub-hosted runners на свободные Linux- или Mac-машины. Запускать задачи сборки и подписи для macOS на принадлежащем вам Mac. Запускать CI-задачи на простаивающих офисных или домашних ПК без управления Kubernetes-кластером. Предоставить каждой CI-задаче изолированное окружение на собственном оборудовании.
Как установить runner-up?
Установите runner-up с помощью Go: go install github.com/kunchenguid/runner-up@latest Выберите репозиторий для обслуживания и метку пула Linux: runner-up init --repo you/app --pool my-linux Добавьте машину, доступную по SSH: runner-up machine add box --ssh ci@box Проверьте настройку и запустите coordinator: runner-up check-config && runner-up serve
Где скачать runner-up?
Исходный код и инструкции по установке — на GitHub: https://github.com/kunchenguid/runner-up

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Запускает Windows в Docker-контейнере: автоматически скачивает и устанавливает систему, а доступ к ней предоставляет через браузер или RDP.

54,1 тыс.+217 за неделю5,1 тыс.ShellMITАктивно поддерживаетсяОбновлён 5 дней назад

Минималистичный монитор виртуальных машин на базе KVM для запуска лёгких microVM под безопасные serverless- и контейнерные нагрузки в многопользовательской среде.

37,9 тыс.+141 за неделю2,7 тыс.RustApache-2.0Активно поддерживаетсяОбновлён 22 часа назад