runner المستضاف من GitHub مريح حتى تبدأ الفاتورة أو وقت الانتظار في الإيلام. فوق الحصة المجانية تدفع بالدقيقة، وكل مهمة تبدأ «باردة» وتعيد تنزيل الاعتماديات في كل تشغيل. runner ذاتي الاستضافة على VPS خاص بك يقلب النقاط الثلاث: تكلفة شهرية ثابتة، وجهاز «دافئ» بذاكرتك المؤقتة موجودة أصلًا على القرص، وبيئة بناء تتحكم بها بالكامل — إصدارات أدوات محدّدة، ذاكرة RAM أكبر، وذاكرة تخزين مؤقت لطبقات Docker تبقى فعلًا.
الـ runner يحتاج فقط للوصول الصادر إلى GitHub، لذا يعمل على أرخص خططنا، ويُدفع بالعملات المشفّرة، ولا يتطلّب KYC.
ماذا يحتاج الـ runner
- معالج وذاكرة لبناءاتك. Small (8$ شهريًا — 4 vCPU، 4 GB RAM، 35 GB NVMe) هو الافتراضي المريح لمعظم الـ CI: بناءات Node/Go/Rust، مجموعات الاختبار، بناء صور Docker. تجميع ثقيل أو مهام متوازية؟ ارتقِ إلى Medium أو خطة Pro.
- قرص NVMe للتخزين المؤقت. جوهر الاستضافة الذاتية هو الاستمرارية — ذاكرة اعتماديات مؤقتة، وطبقات Docker، ومخرجات بناء تبقى على القرص بين التشغيلات. NVMe يبقي الاستعادة سريعة.
- لا حاجة إلى IP مخصّص. الـ runner يتصل بـ GitHub عبر HTTPS؛ لا يلزم وصول وارد. تكفي خطة NAT (من 3$ شهريًا). خذ IP مخصّصًا فقط إن كنت تستضيف أيضًا شيئًا يقدّم حركة مرور.
إعداد runner (Ubuntu 24.04)
أنشئ الـ runner في مستودعك (أو منظمتك): Settings → Actions → Runners → New self-hosted runner → Linux. يعرض GitHub أمر تنزيل ورمز تسجيل يُستخدم مرة واحدة. على الـ VPS:
# كمستخدم غير root (الـ runner يرفض العمل كـ 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
# سجّل بالـ URL + الرمز من واجهة GitHub
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
إبقاؤه يعمل كخدمة
لا تشغّل ./run.sh في الطرفية — ثبّت الـ runner كخدمة systemd ليصمد أمام إعادة التشغيل:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
يظهر الـ runner الآن كـ Idle في واجهة GitHub ويلتقط أي مهمة تستهدفه.
الاستخدام من workflow
وجّه مهمة إلى الـ runner عبر runs-on:
jobs:
build:
runs-on: self-hosted # أو تسمية مخصّصة تضبطها عند التسجيل
steps:
- uses: actions/checkout@v4
- run: make build && make test
مهام قائمة على Docker
ثبّت Docker مرة واحدة، وستتمكّن workflows من بناء الصور أو تشغيل حاويات الخدمة، مع بقاء ذاكرة الطبقات المؤقتة بين التشغيلات:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # اسمح للـ runner باستخدام Docker بدون sudo
لعزل يُستهلك مرة واحدة لكل مهمة، شغّل الـ runner نفسه داخل حاوية وأعد إنشاءه في كل تشغيل — نمط شائع للبناءات غير الموثوقة أو المصفوفية.
لماذا EQVPS للـ CI
- تكلفة ثابتة، دقائق غير محدودة. لا قياس بالدقيقة — خط أنابيب مزدحم يكلّف مثل الخامل.
- ذاكرة تخزين مؤقت «دافئة». الاعتماديات وطبقات Docker تبقى على NVMe بين التشغيلات؛ البناءات تتسارع لا تتباطأ.
- root خلال ~60 ثانية، صور نظيفة. Ubuntu وDebian وغيرها عبر cloud-init؛ ثبّت سلسلة الأدوات التي تحتاجها بالضبط.
- بلا KYC، الدفع بالعملات المشفّرة. بريد للتسجيل، وUSDC/USDT للدفع. شغّل runners إضافية لذروات الإصدار ثم ألغِها لاحقًا — الوقت المدفوع غير المستخدَم يُعاد إلى رصيدك.
التعليقات
لا تعليقات بعد. كن الأول.