GitHub'ın barındırdığı runner'lar, fatura veya bekleme süresi canınızı yakmaya başlayana kadar kullanışlıdır. Ücretsiz kotanın üstünde dakika başına ödersiniz, her iş «soğuk» başlar ve bağımlılıkları her çalıştırmada yeniden indirir. Kendi VPS'inizde kendi barındırdığınız bir runner bu üçünü de tersine çevirir: sabit aylık maliyet, önbellekleriniz zaten diskte olan «sıcak» bir makine ve tamamen sizin kontrol ettiğiniz bir derleme ortamı — belirli araç sürümleri, daha fazla RAM, gerçekten kalıcı olan bir Docker katman önbelleği.
Bir runner'ın yalnızca GitHub'a giden erişime ihtiyacı vardır, bu yüzden en ucuz planlarımızda çalışır, kripto ile ödenir ve KYC gerektirmez.
Bir runner neye ihtiyaç duyar
- Derlemeleriniz için CPU ve RAM. Small (aylık 8 $ — 4 vCPU, 4 GB RAM, 35 GB NVMe) çoğu CI için rahat varsayılandır: Node/Go/Rust derlemeleri, test paketleri, Docker imaj derlemeleri. Ağır derleme veya paralel işler mi? Medium veya bir Pro planına yükseltin.
- Önbellekler için NVMe disk. Kendi barındırmanın tüm amacı kalıcılıktır — bağımlılık önbellekleri, Docker katmanları ve derleme çıktıları çalıştırmalar arasında diskte kalır. NVMe geri yüklemeleri hızlı tutar.
- Ayrılmış IP gerekmez. Runner GitHub'a HTTPS ile bağlanır; gelen erişim gerekmez. Bir NAT planı (aylık 3 $'dan) yeterli. Yalnızca trafik sunan bir şeyi de barındırıyorsanız ayrılmış IP alın.
Bir runner kurma (Ubuntu 24.04)
Runner'ı deponuzda (veya organizasyonunuzda) oluşturun: Settings → Actions → Runners → New self-hosted runner → Linux. GitHub bir indirme komutu ve tek kullanımlık bir kayıt token'ı gösterir. VPS'te:
# root olmayan kullanıcı olarak (runner root olarak çalışmayı reddeder)
adduser --disabled-password --gecos "" runner
su - runner
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L \
https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz
tar xzf actions-runner-linux-x64.tar.gz
# GitHub arayüzündeki URL + token ile kaydet
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
Hizmet olarak çalışır tutma
./run.sh'i terminalde çalıştırmayın — yeniden başlatmalardan sağ çıkması için runner'ı systemd hizmeti olarak kurun:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
Runner artık GitHub arayüzünde Idle olarak görünür ve kendisini hedefleyen her işi alır.
Bir workflow'dan kullanma
runs-on ile bir işi runner'ınıza yönlendirin:
jobs:
build:
runs-on: self-hosted # veya kayıtta belirlediğiniz özel bir etiket
steps:
- uses: actions/checkout@v4
- run: make build && make test
Docker tabanlı işler
Docker'ı bir kez kurun; workflow'larınız imaj derleyebilir veya hizmet konteynerleri çalıştırabilir, katman önbelleği çalıştırmalar arasında kalır:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # runner'ın Docker'ı sudo'suz kullanmasına izin ver
İş başına tek kullanımlık izolasyon için runner'ın kendisini bir konteynerde çalıştırın ve her çalıştırmada yeniden oluşturun — güvenilmeyen veya matris derlemeler için yaygın bir kalıp.
Neden CI için EQVPS
- Sabit maliyet, sınırsız dakika. Dakika başına ölçüm yok — yoğun bir pipeline, boşta olan kadar tutar.
- «Sıcak» önbellekler. Bağımlılıklar ve Docker katmanları çalıştırmalar arasında NVMe'de kalır; derlemeler yavaşlamaz, hızlanır.
- ~60 saniyede root, temiz imajlar. cloud-init ile Ubuntu, Debian ve daha fazlası; tam ihtiyacınız olan araç zincirini kurun.
- KYC yok, kripto ile ödeme. Kayıt için e-posta, ödeme için USDC/USDT. Sürüm yoğunlukları için ek runner'lar açın, sonra iptal edin — kullanılmayan ödenmiş süre bakiyenize iade edilir.
Yorumlar
Henüz yorum yok. İlk olun.