Pengalaman menggunakan self hosted github runner.
Asiknya masih bisa berkarya di dunia banyaknya teknologi ini.
Created: 2026 Apr 15
Updated: 2026 Apr 15
Masih menggunakan bahasa indonesia
Ditahun 2026 pria berusia 32 tahun ini masih saja kesulitan untuk menggunakan bahasa inggris sebagai secondary bahasa yang digunakan secara publik. tapi saya harap di akhir tahun 2026 ini saya bisa menemukan tempat untuk mempraktekkan atau mengimplementasikan bahasa inggris saya secara publik.
Penyebab dimulainya menggunakan self hosted github runner
Untuk anda yang belum memahami apa itu github runner dan github action. dari pemahaman singkat saya, github runner merupakan tool yang menjalan proses dan github action merupakan script yang digunakan untuk trigger dan mendefinisikan apa yang akan dilakukan. biasanya orang orang menggunakannya untuk CI/CD, tapi ada orang yang menggunakannya untuk hal lainnya. detailnya mungkin bisa anda pelajari sendiri disini ya, [ https://docs.github.com/en/actions ]. Pada dasarnya github menyediakan publik hosted runner secara free tentu saja dengan adanya batasan batasannya.
Singkat cerita penggunaan kita mencapai batasannya, sehingga script otomatis kita tidak berjalan dan kita sangat membutuhkan automation ini urgent. karena github merupakan provider besar, pasti tidak bisa kita ajak diskusi, kita juga tidak ada keinginan untuk upgrade ke versi berbayar dan mereka menyediakan fitur self hosted runner. sebenarnya ada opsi lain jika tidak menggunakan self hosted runner yaitu ansible, tapi trigger & scriptnya kita perlu buat baru. karena kita sudah memiliki script github action di file workflow, agar meminimalisir development, solusi membuat self hosted runner yang kita ambil untuk solving urgent problem ini.
Percobaan pertama instalasi self hosted github runner
Untuk membuat self hosted github runner sangat mudah tapi minimalnya kita membutuhkan VM/VPS yang terhubung ke internet. untuk konfigurasinya kita hanya perlu masuk ke github repository kita, lalu masuk ke menu Setting > Actions > Runners dan klik button "New self-hosted runner" setelah itu akan muncul pilihan OS yang anda gunakan dan script yang perlu anda jalankan. mungkin tidak perlu saya jelaskan disini lebih jauh ya karena di halaman tersebut cuma perlu eksekusi section "Download" dan "Configure" di dalam VM/VPS kita.
Setelah itu kita hanya perlu menyesuaikan script github action di file workflow di repository bagian "runs-on" sesuai dengan label yang kita setting pada section "Configure" di dalam VM/VPS sebelumnya.
Kelemahan dari self hosted github runner ini menurut saya, setiap repository kita perlu setting satu persatu, kita tidak bisa menggunakannya secara multi repository. dan spesifikasi VM/VPS yang anda gunakan untuk github runner ini mempengaruhi cepat/lambatnya proses ketika menjalankan github action.
Strick user ownership
Tentu kita tidak memiliki budget banyak, sehingga kita tidak bisa membeli dengan mata uang dollar, jumlah dan spesifikasi VM/VPS yang kita gunakan tidak bisa banyak juga. sehingga yang kita lakukan adalah split user dalam 1 virtualisasi yang kita gunakan, dan untuk proses github runner ini kita buatkan user terpisah. split user ini kita gunakan agar untuk memudahkan memanage proses dalam virtualisasi yang kita gunakan. tentu akan lebih ribet tapi kita tau kepemilikan proses proses yang ada dalam virtualisasi kita. Jika anda pernah mendengar malware/DDOS/terhack, cara yang kita lakukan ini merupakan salah satu cara untuk meminimalisir tersebut.
Proses yang diharuskan aktive setiap saat
Karena github runner ini membutuhkan proses yang selalu aktive dan idle jika tidak digunakan. karena kita menggunakan linux opsi yang tersedia sebenarnya ada banyak, mungkin saja bisa menggunakan screen, supervisord dan bahkan PM2 script yang biasa digunakan untuk nodejs bisa menjalankan bash script.
Jika screen, setau saya merupakan service yang sudah bawaan ubuntu & sejenisnya. bisa kita gunakan untuk multi session & bisa kita detach, sehingga bisa kita gunakan sebagai background proses, tapi sayangnya tidak kita gunakan karena tidak ada log proses.
supervisord, dulu saya mengenalnya ketika menggunakan bahasa pemrograman PHP dan sempat saya gunakan untuk backgroun proses service github runner ini. tapi service ini tidak familiar dan baru untuk ekosistem environment yang kita gunakan, jadi tidak kita gunakan untuk ekosistem kita.
PM2, service inilah yang sering kita gunakan untuk ekosistem kita untuk background proses dan untungnya bisa digunakan untuk bash script. sehingga service inilah yang kita pilih untuk github runner ini.
Mungkin cukup sekian cerita yang ingin saya ceritakan yaaa, jika anda juga mengalami hal yang serupa semoga cerita ini bisa bermanfaat untuk anda. Terima kasih telah membaca sampai sini, semoga saya bisa lebih semangat untuk bercerita lagi.
(Beta)
1
Organic Traffic.
(Beta)
0
Link in post.
(Beta)
0
Image in post.

Andhika M. Wijaya
Someone who want to telling story into the word about his experience.