EQVPS

วิธีตั้งค่า runner GitHub Actions แบบ self-hosted บน VPS

ลงทะเบียน runner GitHub Actions แบบ self-hosted บน VPS และติดตั้งเป็นเซอร์วิส: ดาวน์โหลด runner ในฐานะผู้ใช้ที่ไม่ใช่ root, ลงทะเบียนด้วยโทเคนของ repo, รัน svc.sh เพื่อให้มันรอดจากการรีบูต คำสั่งคัดลอก-วาง

runner แบบ self-hosted ให้ CI ต้นทุนคงที่พร้อมแคชอุ่น ๆ — ไม่มีการคิดเงินต่อนาที ทูลเชนของคุณ เครื่องของคุณ นี่คือคู่มือตั้งค่าแบบกระชับที่สุด สำหรับเหตุผลว่าทำไม self-hosting ชนะนาทีที่ GitHub โฮสต์ และรายละเอียด job Docker ดู คู่มือฉบับเต็ม และ กรณีใช้งาน VPS สำหรับ GitHub Actions

1. สร้างผู้ใช้ที่ไม่ใช่ root (runner ปฏิเสธ root)

adduser --disabled-password --gecos "" runner
su - runner

2. ดาวน์โหลด runner

ใน GitHub: Settings → Actions → Runners → New self-hosted runner → Linux ซึ่งให้คำสั่งดาวน์โหลดที่แน่นอนและโทเคนแบบใช้ครั้งเดียว จากนั้น:

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

3. ลงทะเบียนกับ repo ของคุณ

./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN

4. ติดตั้งเป็นเซอร์วิส (รอดจากการรีบูต)

อย่ารัน ./run.sh ในเทอร์มินัล — ติดตั้งมัน:

sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status

ตอนนี้ runner แสดงเป็น Idle ในอินเทอร์เฟซ GitHub และรับ job ที่พุ่งเป้ามาที่มัน

5. ใช้มันจาก workflow

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: make build && make test

Job Docker (ไม่บังคับ)

ติดตั้ง Docker ครั้งเดียว แล้ว workflow จะสร้างอิมเมจได้โดยแคชเลเยอร์คงอยู่ระหว่างการรัน:

sudo apt install -y docker.io
sudo usermod -aG docker runner

ดู ติดตั้ง Docker บน VPS การกำหนดขนาด: Small ($8/เดือน) สบายสำหรับ CI ส่วนใหญ่; ขยับขึ้นสำหรับการคอมไพล์หนัก root ในราวหนึ่งนาที ไม่ต้อง KYC จ่ายด้วยคริปโต

คำถามที่พบบ่อย

จะลงทะเบียน runner GitHub Actions แบบ self-hosted อย่างไร?

ใน repo ของคุณ (หรือ org): Settings → Actions → Runners → New self-hosted runner → Linux. GitHub จะแสดงคำสั่งดาวน์โหลดและโทเคนลงทะเบียนแบบใช้ครั้งเดียว ดาวน์โหลด runner ในฐานะผู้ใช้ที่ไม่ใช่ root, รัน ./config.sh ด้วย URL และโทเคนนั้น จากนั้นติดตั้งเป็นเซอร์วิสด้วย svc.sh ขั้นตอนอยู่ด้านล่าง

ทำไม runner ถึงรันเป็น root ไม่ได้?

runner ปฏิเสธการรันเป็น root โดยการออกแบบ สร้างผู้ใช้ที่ไม่ใช่ root โดยเฉพาะ (adduser runner) และตั้งค่าที่นั่น นั่นยังจำกัดสิ่งที่ workflow ที่เป็นอันตรายจะแตะต้องได้บนเครื่องของคุณ

จะทำให้ runner ทำงานต่อหลังรีบูตได้อย่างไร?

ใช้ตัวช่วย svc.sh ที่มาด้วย: sudo ./svc.sh install runner && sudo ./svc.sh start มันติดตั้ง systemd unit เพื่อให้ runner เริ่มตอนบูตและรีสตาร์ทเมื่อล้มเหลว และแสดงเป็น Idle ในอินเทอร์เฟซ GitHub

ฉันต้องมี IP เฉพาะสำหรับ runner ไหม?

ไม่ runner โทรออกไปยัง GitHub ผ่าน HTTPS; ไม่มีอะไรต้องเข้าถึงมันแบบขาเข้า แพ็กเกจ NAT (เริ่ม $3/เดือน) ใช้ได้ ใช้ IP เฉพาะก็ต่อเมื่อคุณ self-host บางอย่างที่ให้บริการทราฟฟิกด้วย

คุณขอบัตรประชาชนหรือบัตรเครดิตไหม?

ไม่ อีเมลเพื่อสมัคร จ่ายด้วย USDC หรือ USDT — ไม่มีเอกสาร ไม่มีบัตร root ในราวหนึ่งนาที

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง