Οι GitHub-hosted runners είναι βολικοί μέχρι που ο λογαριασμός ή ο χρόνος αναμονής αρχίζει να πονά. Πέρα από τη δωρεάν βαθμίδα πληρώνετε ανά λεπτό, κάνετε cold-start σε κάθε job, και ξανακατεβάζετε εξαρτήσεις σε κάθε εκτέλεση. Ένας self-hosted runner στο δικό σας VPS αντιστρέφει και τα τρία: σταθερό μηνιαίο κόστος, μια ζεστή μηχανή με τα caches σας ήδη στον δίσκο, και ένα build environment που ελέγχετε πλήρως — συγκεκριμένες εκδόσεις εργαλείων, περισσότερη RAM, Docker layer cache που πραγματικά επιμένει.
Ένας runner χρειάζεται μόνο να φτάσει το GitHub εξερχόμενα, οπότε λειτουργεί στα φθηνότερα πακέτα μας, πληρώνει με crypto, και δεν χρειάζεται KYC.
Τι χρειάζεται ένας runner
- CPU και RAM για τα builds σας. Το Small ($8/μήνα — 4 vCPU, 4 GB RAM, 35 GB NVMe) είναι η άνετη προεπιλογή για τα περισσότερα CI: builds Node/Go/Rust, σουίτες tests, builds Docker image. Βαρύ compilation ή παράλληλα jobs; Ανεβείτε σε Medium ή πακέτο Pro.
- Δίσκος NVMe για caches. Το όλο νόημα του self-hosting είναι η επιμονή — caches εξαρτήσεων, Docker layers, build artifacts μένουν στον δίσκο μεταξύ εκτελέσεων. Το NVMe κρατά τις επαναφορές γρήγορες.
- Δεν απαιτείται αποκλειστικό IP. Ο runner καλεί προς τα έξω το GitHub μέσω HTTPS· τίποτα δεν χρειάζεται να τον φτάσει εισερχόμενα. Ένα πακέτο NAT (από $3/μήνα) είναι αρκετό. Πάρτε αποκλειστικό IP μόνο αν κάνετε και self-host κάτι που εξυπηρετεί κίνηση.
Στήστε έναν runner (Ubuntu 24.04)
Δημιουργήστε τον runner στο repo σας (ή org): Settings → Actions → Runners → New self-hosted runner → Linux. Το GitHub δείχνει μια εντολή download και ένα token καταχώρησης μίας χρήσης. Στο VPS:
# as a non-root user (the runner refuses to run as root)
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
# register with the URL + token from the GitHub UI
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
Κρατήστε τον να τρέχει ως υπηρεσία
Μην τρέχετε το ./run.sh σε ένα terminal — εγκαταστήστε το ως systemd service ώστε να επιβιώνει επανεκκινήσεων:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
Ο runner εμφανίζεται τώρα ως Idle στο GitHub UI και αναλαμβάνει οποιοδήποτε job τον στοχεύει.
Χρησιμοποιήστε τον από ένα workflow
Στρέψτε ένα job στον runner σας με το runs-on:
jobs:
build:
runs-on: self-hosted # or a custom label you set at registration
steps:
- uses: actions/checkout@v4
- run: make build && make test
Docker-based jobs
Εγκαταστήστε το Docker μία φορά και τα workflows σας μπορούν να χτίζουν images ή να τρέχουν service containers, με το layer cache να επιμένει μεταξύ εκτελέσεων:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # let the runner use Docker without sudo
Για αναλώσιμη απομόνωση ανά job, τρέξτε τον ίδιο τον runner μέσα σε container και ξαναδημιουργήστε τον σε κάθε εκτέλεση — ένα κοινό μοτίβο για μη έμπιστα ή matrix builds.
Γιατί EQVPS για CI
- Σταθερό κόστος, απεριόριστα λεπτά. Χωρίς μέτρηση ανά λεπτό — ένα πολυάσχολο pipeline κοστίζει το ίδιο με ένα αδρανές.
- Ζεστά caches. Οι εξαρτήσεις και τα Docker layers μένουν σε NVMe μεταξύ εκτελέσεων· τα builds γίνονται ταχύτερα, όχι αργότερα.
- Root σε ~60 δευτερόλεπτα, καθαρές images. Ubuntu, Debian και άλλα μέσω cloud-init· εγκαταστήστε ακριβώς το toolchain που χρειάζεστε.
- Χωρίς KYC, πληρωμή με crypto. Email για εγγραφή, USDC/USDT για πληρωμή. Στήστε επιπλέον runners για crunches κυκλοφορίας και ακυρώστε τους μετά — ο αχρησιμοποίητος πληρωμένος χρόνος επιστρέφεται στο υπόλοιπό σας.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.