Оператор Kubernetes для запуска и автоматического масштабирования self-hosted GitHub Actions runners в эфемерных контейнерах.
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
Установите runner-up с помощью Go
go install github.com/kunchenguid/runner-up@latest - 2
Выберите репозиторий для обслуживания и метку пула Linux
runner-up init --repo you/app --pool my-linux - 3
Добавьте машину, доступную по SSH
runner-up machine add box --ssh ci@box - 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.
Обёртка для QEMU, которая автоматически скачивает образы ОС и запускает оптимизированные виртуальные машины Windows, macOS и Linux.
Самостоятельно размещаемое CI-приложение для macOS и Apple Silicon, запускающее временные виртуальные машины для GitHub Actions, Buildkite, GitLab Runner или пользовательских скриптов.
Приложение Electron для запуска Windows-программ в контейнере Docker или Podman и отображения их как окон Linux.
Минималистичный монитор виртуальных машин на базе KVM для запуска лёгких microVM под безопасные serverless- и контейнерные нагрузки в многопользовательской среде.