임시 컨테이너로 자체 호스팅 GitHub Actions runner를 실행하고 자동 확장하는 Kubernetes operator입니다.
kunchenguid/runner-up
소유한 Linux, Mac, Windows 장비에서 GitHub Actions self-hosted runner를 운영하고, 작업마다 새 컨테이너·VM·계정을 제공합니다.
대체할 수 있는 제품:GitHub Actions hosted runners
- 스타
- 262
- 포크
- 17
- 열린 이슈
- 2
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
runner-up은 GitHub 호스팅 runner 대신 이미 보유한 장비에서 GitHub Actions 작업을 실행합니다. 단일 코디네이터가 runner scale set을 통해 GitHub에 연결하고, 대기 중인 작업을 확인해 각 작업을 장비에서 사용할 수 있는 빈 자리 하나에 할당합니다. 작업마다 Linux에서는 새 Docker 컨테이너나 KVM 가상 머신을, Mac에서는 새 tart 클론이나 Apple container 게스트를, Windows에서는 새 Windows 계정이나 Hyper-V 가상 머신을 사용하며, 작업이 끝나면 해당 환경을 삭제합니다. 자리를 호스트에서 직접 작업을 실행하도록 설정할 수도 있습니다.
코디네이터는 SSH로 각 장비에 접속하며 Kubernetes 클러스터 없이 SSH 액세스만 있으면 됩니다. 각 장비의 코어와 메모리를 추적하고, 장비 소유자가 사용할 자원을 남겨 두며, 저장소 전반의 설정 가능한 규칙에 따라 대기 중인 작업의 순서를 정합니다. 포크에서 온 pull request는 기본적으로 거부합니다. 코디네이터를 재시작해도 실행 중인 작업은 계속되며, 에이전트에 연결할 수 없게 된 장비는 응답이 돌아올 때까지 일시 중지됩니다.
이 프로젝트는 아직 초기 단계이며 공급자별 지원 상태를 문서화하고 있습니다. Linux의 Docker 및 KVM과 Mac의 tart 및 호스트 자리는 실제 작업을 실행해 봤지만, Hyper-V, Apple container 및 Windows 계정 자리는 실험 단계로 표시되어 있습니다. GitHub가 아직 프리뷰로 표시하는 runner scale set API에 의존합니다.
핵심 기능
- 01각 작업을 새 Docker 컨테이너, KVM VM, tart 클론 또는 Windows 계정에서 실행하고 작업이 끝나면 해당 환경을 삭제합니다.
- 02Kubernetes 클러스터 없이 SSH로 장비에 연결합니다.
- 03각 장비의 코어와 메모리를 여러 자리로 나누고, 소유자가 사용할 자원을 남겨 둡니다.
- 04설정 가능한 규칙에 따라 여러 저장소의 대기 작업 순서를 정합니다.
- 05포크 pull request에서 발생한 작업을 기본적으로 거부합니다.
- 06코디네이터를 재시작해도 실행 중인 작업을 계속 유지합니다.
활용 사례
- 여유 Linux 또는 Mac 장비를 활용해 유료 GitHub 호스팅 runner 사용 시간을 대체합니다.
- 이미 보유한 Mac에서 macOS 빌드 및 서명 작업을 실행합니다.
- Kubernetes 클러스터를 관리하지 않고 유휴 사무실 또는 가정용 PC에서 CI 작업을 실행합니다.
- 자체 하드웨어에서 각 CI 작업에 격리된 환경을 제공합니다.
빠른 시작
- 1
Go로 runner-up을 설치합니다
go install github.com/kunchenguid/runner-up@latest - 2
서비스할 저장소와 Linux pool label을 선택합니다
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 측에서 아직 프리뷰 단계이므로, GitHub의 변경으로 작동이 중단될 수 있습니다.
- Hyper-V, Apple container, Windows account, borrowing, draining은 실험적 기능이며 릴리스마다 변경될 수 있습니다.
- 프로젝트가 아직 초기 단계이며, 일부 provider에서는 실제 작업을 실행해 본 적이 없습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- runner-up은(는) 무엇인가요?
- 소유한 Linux, Mac, Windows 장비에서 GitHub Actions self-hosted runner를 운영하고, 작업마다 새 컨테이너·VM·계정을 제공합니다. runner-up은 GitHub 호스팅 runner 대신 이미 보유한 장비에서 GitHub Actions 작업을 실행합니다. 단일 코디네이터가 runner scale set을 통해 GitHub에 연결하고, 대기 중인 작업을 확인해 각 작업을 장비에서 사용할 수 있는 빈 자리 하나에 할당합니다. 작업마다 Linux에서는 새 Docker 컨테이너나 KVM 가상 머신을, Mac에서는 새 tart 클론이나 Apple container 게스트를, Windows에서는 새 Windows 계정이나 Hyper-V 가상 머신을 사용하며, 작업이 끝나면 해당 환경을 삭제합니다. 자리를 호스트에서 직접 작업을 실행하도록 설정할 수도 있습니다.
- runner-up은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- runner-up은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- runner-up은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. runner-up의 마지막 커밋은 2026년 11월 6일입니다.
- runner-up은(는) 어디에 사용할 수 있나요?
- 여유 Linux 또는 Mac 장비를 활용해 유료 GitHub 호스팅 runner 사용 시간을 대체합니다. 이미 보유한 Mac에서 macOS 빌드 및 서명 작업을 실행합니다. Kubernetes 클러스터를 관리하지 않고 유휴 사무실 또는 가정용 PC에서 CI 작업을 실행합니다. 자체 하드웨어에서 각 CI 작업에 격리된 환경을 제공합니다.
- runner-up는 어떻게 설치하나요?
- Go로 runner-up을 설치합니다: go install github.com/kunchenguid/runner-up@latest 서비스할 저장소와 Linux pool label을 선택합니다: 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Windows를 Docker 컨테이너에서 자동으로 다운로드하고 무인 설치한 뒤, 브라우저나 RDP로 접속할 수 있습니다.
OS 이미지를 자동으로 다운로드하고 최적화된 Windows, macOS, Linux VM을 실행하는 QEMU 래퍼
Apple Silicon에서 GitHub Actions, Buildkite, GitLab Runner 또는 사용자 지정 스크립트를 위한 임시 VM을 실행하는 셀프 호스팅 macOS CI 앱입니다.
Docker 또는 Podman 컨테이너에서 Windows 앱을 실행하고, Linux 데스크톱의 기본 창처럼 표시하는 Electron 앱입니다.
보안이 중요한 멀티테넌트 서버리스 및 컨테이너 워크로드를 위해 경량 microVM을 실행하는 미니멀한 KVM 기반 가상 머신 모니터입니다.