Yaz sıcağı — her şey eriyor, fiyatlarımız bile.−25%31 Ağustos'a kadar her yıllık planda −%25Planları gör
EQVPS
Hemen başla

Bir VPS'te Kendi Kendine Barındırılan GitHub Actions Runner Çalıştırmak

27 Tem 2026 · 4 dk okuma · EQVPS Team

GitHub tarafından barındırılan runner'lar iyi bir varsayılandır. Bir derleme onlarda olmayan bir şey istediği an onlara ihtiyacınız kalmaz — özel paket kaydınız, her çalıştırmada yeniden kurmaktan bıktığınız belirli bir araç zinciri sürümü, kendi ağınızdaki bir veritabanı ya da sadece makine üzerinde daha fazla kontrol. İşte o zaman bir VPS'teki kendi kendine barındırılan bir runner ekmeğini kazanır.

Bu rehber bir tanesini düzgünce çalıştırıyor: kurulu, kaydedilmiş, systemd altında hayatta ve — insanların yanlış anladığı kısım — güvenli. O son kısımla başlayalım, çünkü ısıran kısım o.

Tek güvenlik kuralı

Bir GitHub Actions iş akışı rastgele kod çalıştırır — iş akışı dosyasında ne varsa ve o kodun çektiği ne varsa. Kendi deponuzda bu sizin kodunuzdur ve sorun yok. Genel bir depoda, bir yabancıdan gelen bir çekme isteği runner'ınızda onların kodunu çalıştırabilir. Bu bir hata değil; CI'nin çalışma biçimidir. GitHub'ın kendi belgeleri açıkça söyler: kendi kendine barındırılan runner'ları genel depolarla kullanmayın.

Yani kural basit ve tartışılmaz: kendi kendine barındırılan runner'lar özel depolar içindir. Deponuz genelse, GitHub tarafından barındırılan runner'ları kullanın ve devam edin. Aşağıdaki her şey özel bir depo varsayar.

Bir runner kutudan neye ihtiyaç duyar

Derlemeye bağlıdır ve bir sayfadaki rakama değil, kendinizinkine göre boyutlandırmalısınız:

Disk de önemlidir: derleme önbellekleri, Docker katmanları ve klonlanmış depolar birikir. Göz kulak olun ve temizleyin.

1. Kutuyu hazırlayın

Runner için root olmayan bir kullanıcı oluşturun — GitHub'ın kurucusu zaten root olarak çalışmayı reddeder ve öyle olmasını istersiniz:

sudo adduser --disabled-password --gecos "" runner
sudo usermod -aG sudo runner   # only if your builds genuinely need sudo

Derlemelerinizin ihtiyaç duyduğu her şeyi kurun — bir dil araç zinciri, Docker, derleme araçları. Örneğin, işleriniz kapsayıcı derliyorsa:

sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner

2. Runner'ı indirin ve kaydedin

GitHub'da deponuzda (ya da kuruluşunuzda) Settings → Actions → Runners → New self-hosted runner'a gidin. GitHub size tam indirme komutlarını ve bir kayıt token'ı verir (kısa ömürlüdür — taze alın). runner kullanıcısı olarak:

sudo -iu runner
mkdir actions-runner && cd actions-runner
# use the exact URL GitHub shows you for your OS/arch:
curl -o actions-runner-linux-x64.tar.gz -L "URL_FROM_GITHUB"
tar xzf actions-runner-linux-x64.tar.gz
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN

config.sh bir runner adı, etiketler ve bir çalışma klasörü ister — başlamak için varsayılanlar iyidir. Etiketler, iş akışınızın bu runner'ı hedeflediği biçimdir (runs-on: self-hosted).

3. Onu bir systemd servisi olarak çalıştırın

Runner, sizin için bir systemd servisi kuran bir yardımcıyla gelir — onu kullanın ki runner yeniden başlatmalardan sağ çıksın ve hatada yeniden başlasın. Hâlâ runner kullanıcısının kurulumundan, ama servis komutları root ister:

sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status

Bu, actions.runner.*runner kullanıcısı olarak çalışan, önyüklemede başlayan bir systemd birimi olarak kaydeder. Kayıtlar journald'a gider:

sudo journalctl -u 'actions.runner.*' -f

GitHub'ın Runners sayfasına geri dönün, runner'ınız artık Idle gösterir — yeşil nokta. Bir iş akışını ona yöneltin:

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: make test

Push edin, iş kutunuzda çalışır.

4. Onu temiz tutun

Kendi kendine barındırılan bir runner, işler arasında dosya sistemini yeniden kullanır — bu hem hız kazancıdır (sıcak önbellekler) hem de tetik tehlikesidir (artık durum). İki alışkanlık onu sağlıklı tutar:

İş başına gerçekten temiz bir ortama ihtiyacınız varsa, her işi bir kapsayıcı adımı içinde çalıştırın — runner kalır, işin dağınıklığı kalmaz.

Ne zaman kendiniz barındırmalısınız, dürüstçe

Kendi araç zincirinizin gömülü olmasına, özel ağ kaynaklarına erişime ya da makine üzerinde kontrole ihtiyacınız olduğunda kendiniz barındırın. Temiz, tek kullanımlık bir ortam ve onların dakikaları size uyduğunda GitHub tarafından barındırılan runner'larda kalın — bu gerçekten daha basittir ve daha basit bir şeydir. Ve asla, bir genel depoda, kendiniz barındırmayın. O bir tercih değildir.

Özel-depo bir runner ihtiyacınız olan şeyse: bir plan seçin — daha hafif derlemeler için Small ($8), daha ağırlaştıklarında Medium ($12) — USDC veya USDT ile ödeyin (KYC yok, belge yok) ve yaklaşık 60 saniyede root'a sahip olursunuz. Sonra bu sayfada aşağı doğru ilerleyin, birkaç dakika sonra iş alan bir runner'ınız olur.

SSS

GitHub tarafından barındırılan yerine neden kendi runner'ımı çalıştırayım?

Üç gerçek neden: kendi bağımlılıklarınız ve araç zinciriniz gömülü (her çalıştırmada yeniden kurmak yok), dahili bir kayıt ya da veritabanı gibi özel kaynaklara erişim ve makine üzerinde kontrol — boyutu, önbellekleri, ağı. GitHub tarafından barındırılan dakikalar ve temiz bir ortam size uyuyorsa, onda kalın. Özellikle o üçünden birine ihtiyacınız olduğunda kendiniz barındırın.

Kendi kendine barındırılan bir runner kullanmak güvenli mi?

Özel bir depoda, evet. Genel bir depoda, hayır — asla. Bir iş akışı, onu tetikleyen kişinin rastgele kodunu çalıştırır ve genel bir depoda bir yabancının çekme isteği kendi kodunu runner'ınızda çalıştırabilir. GitHub'ın kendi belgeleri de aynısını söyler. Kendi kendine barındırılan runner'ları özel depolarla sınırlı tutun ya da kutunuzu internete verdiğinizi kabul edin.

Bir runner ne kadar CPU ve RAM'e ihtiyaç duyar?

Tamamen derlemenize bağlı. Tipik bir derle-ve-test işi 2 çekirdek ve 4-8 GB ile rahattır — burada Small ya da Medium. Ağır derlemeler (büyük yerel derlemeler, büyük Docker imajları, bellek-aç test paketleri) daha fazlasını ister ve bir tahmine değil, gerçek işinize göre boyutlandırmalısınız. Bir gerçek çalıştırmayı izleyin, bileceksiniz.

Bir runner birden çok depoyu yönetebilir mi?

Bir runner bir kuruluşa kaydedilebilir ve birkaç depo tarafından, varsayılan olarak bir seferde bir iş olacak şekilde alınabilir. Daha fazla paralellik için daha fazla runner çalıştırın — her biri kendi systemd servisidir. Sadece hepsini özel depolarda tutun.

Size bir kimlik vermem gerekiyor mu?

Hayır. Kaydolmak için e-posta, ödemek için USDC veya USDT. Belge yok, yaklaşık bir dakikada root.

← Blog'a dönPlanları ve fiyatları gör →

Yorumlar

Henüz yorum yok. İlk olun.

Bir yorum bırakın

Yorumlar görünmeden önce denetlenir.