GitHub-হোস্টেড রানার সুবিধাজনক, যতক্ষণ না বিল বা অপেক্ষার সময় কষ্ট দিতে শুরু করে। ফ্রি টিয়ারের উপরে আপনি প্রতি-মিনিট পরিশোধ করেন, প্রতিটি job 'ঠান্ডা' শুরু হয় এবং প্রতিবার ডিপেন্ডেন্সি আবার ডাউনলোড করে। আপনার নিজের VPS-এ একটি সেল্ফ-হোস্টেড রানার এই তিনটিই উল্টে দেয়: ফ্ল্যাট মাসিক খরচ, আপনার ক্যাশ ইতিমধ্যে ডিস্কে থাকা একটি 'উষ্ণ' মেশিন, এবং একটি বিল্ড এনভায়রনমেন্ট যা আপনি সম্পূর্ণ নিয়ন্ত্রণ করেন — নির্দিষ্ট টুল ভার্সন, বেশি RAM, একটি Docker লেয়ার ক্যাশ যা সত্যিই টিকে থাকে।
একটি রানারের শুধু GitHub-এ আউটবাউন্ড অ্যাক্সেস দরকার, তাই এটি আমাদের সবচেয়ে সস্তা প্ল্যানে চলে, ক্রিপ্টোতে পরিশোধিত হয় এবং KYC লাগে না।
একটি রানারের কী দরকার
- আপনার বিল্ডের জন্য CPU ও RAM। Small ($8/মাস — 4 vCPU, 4 GB RAM, 35 GB NVMe) বেশিরভাগ CI-এর জন্য আরামদায়ক ডিফল্ট: Node/Go/Rust বিল্ড, টেস্ট স্যুট, Docker ইমেজ বিল্ড। ভারী কম্পাইলেশন বা সমান্তরাল jobs? Medium বা একটি Pro প্ল্যানে যান।
- ক্যাশের জন্য NVMe ডিস্ক। সেল্ফ-হোস্টিংয়ের পুরো উদ্দেশ্য স্থায়িত্ব — ডিপেন্ডেন্সি ক্যাশ, Docker লেয়ার, বিল্ড আর্টিফ্যাক্ট রানের মধ্যে ডিস্কে থাকে। NVMe রিস্টোর দ্রুত রাখে।
- ডেডিকেটেড IP লাগে না। রানার HTTPS-এ GitHub-কে কল করে; কোনো ইনবাউন্ড অ্যাক্সেস দরকার নেই। একটি NAT প্ল্যান ($3/মাস থেকে) যথেষ্ট। ডেডিকেটেড IP শুধু তখনই নিন যদি আপনি ট্রাফিক সার্ভ করে এমন কিছুও হোস্ট করেন।
একটি রানার সেট করুন (Ubuntu 24.04)
আপনার রিপোজিটরিতে (বা সংস্থায়) রানার তৈরি করুন: Settings → Actions → Runners → New self-hosted runner → Linux। GitHub একটি ডাউনলোড কমান্ড ও একবারের রেজিস্ট্রেশন টোকেন দেখায়। VPS-এ:
# একটি নন-root ব্যবহারকারী হিসেবে (রানার 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
# GitHub UI থেকে URL + টোকেন দিয়ে রেজিস্টার করুন
./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
রানার এখন GitHub UI-তে Idle হিসেবে দেখা যায় এবং তার দিকে লক্ষ্য করা যেকোনো job তুলে নেয়।
একটি workflow থেকে ব্যবহার করুন
runs-on দিয়ে একটি job আপনার রানারে পাঠান:
jobs:
build:
runs-on: self-hosted # অথবা রেজিস্ট্রেশনে সেট করা একটি কাস্টম লেবেল
steps:
- uses: actions/checkout@v4
- run: make build && make test
Docker-ভিত্তিক jobs
Docker একবার ইনস্টল করুন, এবং আপনার workflows ইমেজ বিল্ড করতে বা সার্ভিস কন্টেইনার চালাতে পারবে, লেয়ার ক্যাশ রানের মধ্যে টিকে থাকে:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # রানারকে sudo ছাড়া Docker ব্যবহার করতে দিন
প্রতি-job ডিসপোজেবল আইসোলেশনের জন্য, রানারকে নিজে একটি কন্টেইনারে চালান এবং প্রতি রানে পুনরায় তৈরি করুন — অবিশ্বস্ত বা ম্যাট্রিক্স বিল্ডের জন্য একটি সাধারণ প্যাটার্ন।
CI-এর জন্য কেন EQVPS
- ফ্ল্যাট খরচ, সীমাহীন মিনিট। কোনো প্রতি-মিনিট মিটারিং নেই — একটি ব্যস্ত পাইপলাইনের খরচ একটি নিষ্ক্রিয়ের সমান।
- 'উষ্ণ' ক্যাশ। ডিপেন্ডেন্সি ও Docker লেয়ার রানের মধ্যে NVMe-তে থাকে; বিল্ড ধীর নয়, দ্রুত হয়।
- ~60 সেকেন্ডে root, পরিষ্কার ইমেজ। cloud-init-এর মাধ্যমে Ubuntu, Debian ও আরও; ঠিক যে টুলচেইন দরকার তা ইনস্টল করুন।
- KYC-বিহীন, ক্রিপ্টোতে পরিশোধ। রেজিস্টারের জন্য ইমেল, পরিশোধের জন্য USDC/USDT। রিলিজ চাপের জন্য অতিরিক্ত রানার চালু করুন এবং পরে বাতিল করুন — অব্যবহৃত পরিশোধিত সময় আপনার ব্যালেন্সে ফেরত আসে।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।