GitHub-хостнатите runners са удобни, докато сметката или времето за чакане не започнат да болят. Отвъд безплатното ниво плащаш на минута, cold-start-ваш всяка задача, и предварително сваляш зависимости всяко пускане. Self-hosted runner на собствен VPS обръща и трите: плоска месечна цена, топла машина с кешовете ти вече на диск, и build среда, която напълно контролираш — конкретни версии на инструменти, повече RAM, Docker layer cache, който реално persist-ва.
Runner се нуждае само да достигне GitHub изходящо, така че работи на най-евтините ни планове, плаща в crypto, и не се нуждае от KYC.
Какво се нуждае runner
- CPU и RAM за build-овете ти. Small ($8/месец — 4 vCPU, 4 GB RAM, 35 GB NVMe) е комфортният по подразбиране за повечето CI: Node/Go/Rust build-ове, тестови пакети, Docker image build-ове. Тежка компилация или паралелни задачи? Качи до Medium или Pro план.
- NVMe диск за кешове. Целият смисъл на хостването е persistence — кешове на зависимости, Docker layers, build артефакти остават на диск между пускания. NVMe държи restore-овете бързи.
- Не се изисква dedicated IP. Runner-ът се набира навън към GitHub през HTTPS; нищо не трябва да го достига входящо. NAT план (от $3/месец) е достатъчен. Вземи dedicated IP само ако хостваш и нещо, което обслужва трафик.
Настрой runner (Ubuntu 24.04)
Създай runner-а в repo-то си (или org): Settings → Actions → Runners → New self-hosted runner → Linux. GitHub показва команда за сваляне и еднократен регистрационен 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 в терминал — инсталирай го като systemd услуга, за да преживее рестарти:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
Runner-ът вече се появява като Idle в GitHub UI и поема всяка задача, която го таргетира.
Използвай го от workflow
Насочи задача към 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-базирани задачи
Инсталирай Docker веднъж и workflow-ите ти могат да build-ват образи или да пускат service контейнери, с layer cache, persist-ващ между пускания:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # let the runner use Docker without sudo
За еднократна изолация на задача, пусни самия runner в контейнер и го пресъздавай всяко пускане — чест модел за недоверени или matrix build-ове.
Защо EQVPS за CI
- Плоска цена, неограничени минути. Без per-minute измерване — натоварен pipeline струва същото като idle.
- Топли кешове. Зависимости и Docker layers остават на NVMe между пускания; build-овете стават по-бързи, не по-бавни.
- Root за ~60 секунди, чисти образи. Ubuntu, Debian и още през cloud-init; инсталирай точно toolchain-а, от който се нуждаеш.
- Без KYC, плащане в crypto. Имейл за регистрация, USDC/USDT за плащане. Вдигни допълнителни runners за release crunch-ове и ги откажи после — неизползваното платено време се възстановява на баланса ти.
Коментари
Още няма коментари. Бъди първият.