Panas musim panas — semuanya meleleh, bahkan harga kami.−25%−25% pada setiap paket tahunan, hingga 31 AgustusLihat paket
EQVPS
Mulai

Menjalankan Runner GitHub Actions Swa-Hosting di VPS

27 Jul 2026 · 4 mnt baca · EQVPS Team

Runner yang di-host GitHub adalah bawaan yang baik. Anda berhenti membutuhkannya begitu build menginginkan sesuatu yang tidak mereka miliki — registry paket privat Anda, versi toolchain tertentu yang lelah Anda pasang ulang tiap eksekusi, basis data di jaringan Anda sendiri, atau sekadar lebih banyak kendali atas mesin. Saat itulah runner swa-hosting di VPS membenarkan keberadaannya.

Panduan ini membuat satu berjalan dengan benar: terpasang, terdaftar, hidup di bawah systemd, dan — bagian yang orang salah paham — aman. Mari mulai dengan yang terakhir itu, karena itulah bagian yang menggigit.

Satu aturan keamanan

Alur kerja GitHub Actions menjalankan kode sembarang — apa pun yang ada di berkas alur kerja, dan apa pun yang kode itu tarik. Pada repo Anda sendiri itu kode Anda, dan tidak apa-apa. Pada repo publik, pull request dari orang asing bisa menjalankan kode mereka di runner Anda. Itu bukan bug; itu cara kerja CI. Dokumentasi GitHub sendiri mengatakan terang-terangan: jangan pakai runner swa-hosting dengan repositori publik.

Jadi aturannya sederhana dan tidak bisa ditawar: runner swa-hosting untuk repo privat. Jika repo Anda publik, pakai runner yang di-host GitHub dan lanjutkan. Semua di bawah mengasumsikan repo privat.

Apa yang dibutuhkan runner dari mesin

Itu tergantung build-nya, dan Anda harus menentukan ukuran ke milik Anda alih-alih angka dari sebuah halaman:

Disk juga penting: cache build, lapisan Docker, dan repo yang diklon menumpuk. Awasi dan pangkas.

1. Siapkan mesin

Buat pengguna non-root untuk runner — installer GitHub menolak berjalan sebagai root bagaimanapun, dan Anda mau begitu:

sudo adduser --disabled-password --gecos "" runner
sudo usermod -aG sudo runner   # hanya jika build Anda benar-benar butuh sudo

Pasang apa pun yang dibutuhkan build Anda — toolchain bahasa, Docker, alat build. Misalnya, jika pekerjaan Anda mem-build kontainer:

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

2. Unduh dan daftarkan runner

Di repo (atau org) Anda di GitHub, pergi ke Settings → Actions → Runners → New self-hosted runner. GitHub memberi Anda perintah unduhan persis dan token pendaftaran (berumur-pendek — ambil yang baru). Sebagai pengguna runner:

sudo -iu runner
mkdir actions-runner && cd actions-runner
# pakai URL persis yang GitHub tunjukkan untuk OS/arch Anda:
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 menanyakan nama runner, label, dan folder kerja — bawaannya baik untuk mulai. Label adalah bagaimana alur kerja Anda menargetkan runner ini (runs-on: self-hosted).

3. Jalankan sebagai layanan systemd

Runner disertai pembantu yang memasang layanan systemd untuk Anda — pakai, agar runner bertahan dari reboot dan restart saat gagal. Tetap dari instalasi pengguna runner, tapi perintah layanan butuh root:

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

Itu mendaftarkan actions.runner.* sebagai unit systemd yang berjalan sebagai pengguna runner, mulai saat boot. Log pergi ke journald:

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

Kembali di halaman Runners GitHub, runner Anda kini menampilkan Idle — titik hijau. Arahkan alur kerja padanya:

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

Push, dan pekerjaan berjalan di mesin Anda.

4. Jaga tetap bersih

Runner swa-hosting menggunakan ulang sistem berkasnya antar pekerjaan — itu kemenangan kecepatan (cache hangat) dan senjata-makan-tuan (state sisa). Dua kebiasaan menjaganya sehat:

Jika Anda butuh lingkungan yang benar-benar bersih per pekerjaan, jalankan tiap pekerjaan di dalam langkah kontainer — runner tetap, kekacauan pekerjaan tidak.

Kapan swa-hosting, jujurnya

Swa-hosting saat Anda butuh toolchain Anda sendiri terpasang, akses ke sumber daya jaringan privat, atau kendali atas mesin. Tetap di runner yang di-host GitHub saat lingkungan bersih sekali-pakai dan menit mereka cocok untuk Anda — itu benar-benar lebih sederhana, dan lebih sederhana bernilai sesuatu. Dan jangan pernah, pada repo publik, swa-hosting. Yang itu bukan preferensi.

Jika runner repo-privat adalah yang Anda butuhkan: pilih paketSmall ($8) untuk build lebih ringan, Medium ($12) saat mereka lebih berat — bayar dengan USDC atau USDT (tanpa KYC, tanpa dokumen), dan Anda akan punya root dalam sekitar 60 detik. Lalu kerjakan halaman ini ke bawah dan Anda akan punya runner yang mengambil pekerjaan beberapa menit kemudian.

Pertanyaan umum

Mengapa menjalankan runner sendiri alih-alih yang di-host GitHub?

Tiga alasan nyata: dependensi dan toolchain Anda sendiri sudah terpasang (tanpa memasang ulang tiap eksekusi), akses ke sumber daya privat seperti registry atau basis data internal, dan kendali atas mesin — ukurannya, cache-nya, jaringannya. Jika menit yang di-host GitHub dan lingkungan bersih cocok untuk Anda, tetap di sana. Swa-hosting saat Anda secara khusus butuh salah satu dari ketiga itu.

Apakah aman memakai runner swa-hosting?

Pada repo privat, ya. Pada repo publik, tidak — jangan pernah. Alur kerja menjalankan kode sembarang dari siapa pun yang memicunya, dan pada repo publik pull request orang asing bisa menjalankan kode mereka di runner Anda. Dokumen GitHub sendiri mengatakan hal yang sama. Jaga runner swa-hosting untuk repo privat, atau terima bahwa Anda menyerahkan mesin Anda ke internet.

Berapa CPU dan RAM yang dibutuhkan runner?

Sepenuhnya tergantung build Anda. Pekerjaan kompilasi-dan-uji tipikal nyaman dengan 2 inti dan 4-8 GB — Small atau Medium di sini. Build berat (kompilasi native besar, citra Docker besar, suite test haus-memori) mau lebih, dan Anda harus menentukan ukuran ke pekerjaan sebenarnya, bukan tebakan. Awasi satu eksekusi nyata dan Anda akan tahu.

Bisakah satu runner menangani beberapa repo?

Runner bisa didaftarkan ke sebuah organisasi dan diambil oleh beberapa repo, satu pekerjaan pada satu waktu secara bawaan. Untuk lebih banyak paralelisme, jalankan lebih banyak runner — masing-masing layanan systemd-nya sendiri. Cukup jaga semuanya di repo privat.

Apakah saya perlu memberi Anda identitas?

Tidak. Email untuk mendaftar, USDC atau USDT untuk membayar. Tanpa dokumen, root dalam sekitar satu menit.

← Kembali ke blogLihat paket dan harga →

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.