Development

Woodpecker CI 2026: คู่มือ Open-Source CI/CD Self-Hosted สำหรับ SME ไทย

ลดค่า GitHub Actions รายเดือนด้วย Woodpecker CI — CI/CD แบบ Self-Hosted ที่ Fork จาก Drone CI ใช้ทรัพยากรน้อย ตั้งค่าง่าย เหมาะกับทีม Dev SME ไทยที่ต้องการ Pipeline เร็วและประหยัด

AF
ADS FIT Team
·8 นาที
Share:

# Woodpecker CI 2026: คู่มือ Open-Source CI/CD Self-Hosted สำหรับ SME ไทย

ทีม DevOps ส่วนใหญ่ของ SME ไทยเริ่มต้นกับ GitHub Actions หรือ GitLab CI เพราะใช้งานง่ายและฟรีในระดับเริ่มต้น แต่เมื่อทีมเริ่มขยาย Pipeline มากขึ้น ค่าใช้จ่ายต่อเดือนของ CI/CD as a Service สามารถพุ่งจากศูนย์เป็นหลักหมื่นได้ในเวลาไม่กี่เดือน — โดยเฉพาะหากต้องใช้ Runner ขนาดใหญ่สำหรับ Build Image, Test Browser, หรือ Deploy หลายสภาพแวดล้อม

Woodpecker CI คือ CI/CD Engine แบบ Open-Source ที่ Fork จาก Drone CI v0.8 พัฒนาโดย Community ใต้สัญญาอนุญาต Apache 2.0 จุดเด่นคือเบามาก, ตั้งค่าง่ายผ่านไฟล์ `.woodpecker.yml`, รัน Step ทุกขั้นใน Container แยก, และทำงานได้ดีบน VPS ราคาถูกหรือ Kubernetes Cluster ขนาดเล็ก

บทความนี้จะอธิบายตั้งแต่พื้นฐาน Woodpecker, การติดตั้ง, เปรียบเทียบกับ Stack อื่น, และแนวทาง Best Practice ที่ทีม Dev SME ไทยสามารถนำไปใช้ได้ทันที

Woodpecker CI คืออะไร และเหมาะกับใคร

Woodpecker CI เป็นระบบ Continuous Integration / Continuous Delivery แบบ Self-Hosted ที่ออกแบบมาเพื่อความเรียบง่ายและประสิทธิภาพ Architecture ประกอบด้วย Server (UI + API + DB), Agent (รัน Job), และ CLI สำหรับ debug ในเครื่อง

จุดเด่นที่ทำให้แตกต่างจาก CI/CD ตัวอื่น:

| คุณสมบัติ | Woodpecker CI | GitHub Actions | GitLab CI | Jenkins |

|-----------|---------------|----------------|-----------|---------|

| License | Apache 2.0 (ฟรี) | Proprietary | MIT | MIT |

| Self-Hosted | ใช่ | ใช่ (Runner) | ใช่ | ใช่ |

| Resource ขั้นต่ำ | 256MB RAM | 1-2GB | 1GB | 2-4GB |

| Step Isolation | Container | Container/Host | Container/Host | Plugin/Process |

| Config Format | YAML | YAML | YAML | Groovy/YAML |

| Docker-native | ใช่ | บางส่วน | ใช่ | Plugin |

| Plugin Ecosystem | กลาง (ใช้ Image ได้ทุกตัว) | ใหญ่ | กลาง | ใหญ่มาก |

| Multi-Forge | GitHub, GitLab, Gitea, Bitbucket | GitHub only | GitLab only | All (Plugin) |

เหมาะกับทีมที่:

  • ใช้ Self-Hosted Git เช่น Gitea, Forgejo, GitLab ในองค์กร
  • ต้องการลด Cost ของ CI/CD as a Service
  • มี Server ว่าง ๆ หรือ Homelab อยากใช้ให้คุ้ม
  • ทีมขนาด 2-30 คน ไม่ต้องการ Jenkins ที่หนัก
  • ต้องการ Pipeline ที่ debug ในเครื่องได้ผ่าน CLI
  • Architecture และ Components หลัก

    ก่อนติดตั้งจริง ควรเข้าใจองค์ประกอบหลักของระบบ:

  • **Server** — เว็บ UI, REST API, Webhook Receiver, Database (SQLite, PostgreSQL, MySQL) เก็บ Config และ Build History
  • **Agent** — รับ Job จาก Server, ดึง Source Code, รัน Step ในแต่ละ Container ตาม `.woodpecker.yml`
  • **CLI** — เครื่องมือสำหรับ Trigger Build จาก Local, Validate YAML, Debug Pipeline
  • **Forge Integration** — เชื่อม OAuth กับ Git Provider (Gitea, GitHub, GitLab, Bitbucket) ฟัง Webhook
  • **Storage Backend** — Local Disk หรือ S3-compatible (MinIO) สำหรับ Cache, Artifacts, Logs
  • ติดตั้ง Woodpecker CI ด้วย Docker Compose

    วิธีที่เร็วที่สุดในการเริ่มคือใช้ Docker Compose นี่คือขั้นตอนหลัก:

  • **Step 1: เตรียม VPS** — ใช้ Ubuntu 22.04 LTS ขั้นต่ำ 2 vCPU, 4GB RAM, 40GB SSD ติดตั้ง Docker และ Docker Compose
  • **Step 2: เชื่อม Forge** — ลงทะเบียน OAuth App ใน Gitea/GitHub/GitLab รับ Client ID และ Secret
  • **Step 3: เขียน docker-compose.yml** — กำหนด Service `woodpecker-server` (port 8000) และ `woodpecker-agent` (จำนวนตามต้องการ) พร้อม Environment Variables
  • **Step 4: ตั้งค่า Secret** — ใช้ `WOODPECKER_AGENT_SECRET` เป็น Random String 32+ chars เชื่อม Server กับ Agent
  • **Step 5: Reverse Proxy + HTTPS** — ใช้ Caddy หรือ Traefik ทำ Auto SSL ผ่าน Let's Encrypt
  • **Step 6: Login ผ่าน OAuth** — เข้า UI ที่ https://ci.yourdomain.com → Login → Activate Repository ที่ต้องการรัน Pipeline
  • เขียน Pipeline แรกด้วย .woodpecker.yml

    ไฟล์ Configuration ของ Woodpecker เรียบง่ายมาก ตัวอย่าง Pipeline สำหรับโปรเจกต์ Next.js:

    โครงสร้าง Pipeline ทั่วไปประกอบด้วย:

  • **clone** (อัตโนมัติ) — Woodpecker จะ Clone repo ให้ก่อนรัน Step แรกเสมอ
  • **steps** — รายการขั้นตอน เช่น install, lint, test, build, deploy
  • **services** — Background Container เช่น PostgreSQL, Redis สำหรับ Integration Test
  • **when** — เงื่อนไขรัน Step (event push/pull_request, branch, path filter)
  • **secrets** — ตัวแปรลับที่ตั้งใน UI ใช้ใน Step โดยไม่เผยใน Log
  • แต่ละ Step รันใน Docker Container แยกกัน แชร์ workspace ผ่าน Volume `/woodpecker` ทำให้ส่งต่อไฟล์ระหว่าง Step ได้ (เช่น node_modules, build artifacts)

    Best Practices สำหรับ Production

    ทีมที่ใช้ Woodpecker CI ในระดับ Production ควรทำตามแนวทางเหล่านี้:

  • **Pin Image Version** — อย่าใช้ `:latest` ใน Step ใด ๆ ใช้ `node:20.18-alpine` เพื่อให้ Build Reproducible
  • **ใช้ Cache Plugin** — `plugins/cache` ช่วยเก็บ node_modules / pip cache ระหว่าง Build ลดเวลา 50-70%
  • **แยก Agent ตาม Workload** — Build heavy workload (Docker Image, Browser Test) บน Agent แยก ไม่ปะปนกับ Lint/Unit Test
  • **เปิด Branch Protection** — ใน Forge ตั้งให้ Pipeline ต้อง Pass ก่อน Merge PR
  • **Backup Database ทุกวัน** — `woodpecker.db` (SQLite) หรือ pg_dump (PostgreSQL) เก็บ Build History ที่อาจต้องใช้ Audit
  • **Resource Limit ของ Step** — ใช้ `cpu` และ `memory` limit ใน Step เพื่อไม่ให้ OOM ทำลาย Build อื่น
  • **Webhook Retry Logic** — ตั้งค่าใน Forge ให้ Retry หาก Server Down ชั่วคราว
  • เปรียบเทียบ Cost: GitHub Actions vs Self-Hosted Woodpecker

    ทีม Dev 5 คน ที่รัน Pipeline เฉลี่ย 200 builds/เดือน, แต่ละ build 10 นาที (รวม 2,000 นาที):

    | รายการ | GitHub Actions (Linux 4-core) | Woodpecker on VPS |

    |--------|------------------------------|-------------------|

    | ฟรี Quota | 2,000 นาที/เดือน | ไม่มี (ใช้ทรัพยากรเอง) |

    | ค่าเกินโควตา | $0.016/นาที | $0 |

    | Build Heavy (Docker Image) | $0.064/นาที (4x multiplier) | $0 |

    | ค่า VPS รายเดือน (4 vCPU, 8GB) | - | ~$24-48 (DigitalOcean/Vultr) |

    | ค่า Storage Artifact | $0.25/GB | Disk รวมใน VPS |

    | รวม (200 builds/เดือน) | $50-150/เดือน | $24-48/เดือน + admin time |

    ข้อแลกเปลี่ยน: ต้องดูแล VPS เอง (Patch, Backup, Monitor) แต่ประหยัดค่าใช้จ่ายในระยะยาวและ Pipeline Performance คาดเดาได้

    ข้อควรระวังก่อนตัดสินใจ

  • **Plugin Ecosystem เล็กกว่า GitHub Actions** — บาง Action ที่ใช้ใน GHA อาจไม่มีใน Woodpecker ต้องเขียน Container เอง
  • **Maintenance Overhead** — ต้องมีคนใน team ดูแล Server, Patch CVE, Update Version
  • **HA Setup ซับซ้อน** — สำหรับ Production ระดับสูง ต้องวางแผน Load Balancer, Database Replica
  • **Network Latency** — Agent ที่อยู่ห่างจาก Forge อาจช้าตอน Clone Repo ใหญ่
  • **Documentation** — เอกสารทางการเป็นภาษาอังกฤษ และ Community ยังไม่ใหญ่เท่า GitHub Actions
  • สรุปและขั้นตอนต่อไป

    Woodpecker CI เป็นทางเลือกที่ดีมากสำหรับทีม Dev SME ไทยที่ต้องการ:

  • ลด Cost ของ CI/CD as a Service ลง 50-80%
  • Pipeline Performance ที่คาดเดาได้ ไม่มี Cold Start
  • Self-Hosted Git Workflow แบบครบวงจร (Gitea + Woodpecker)
  • Build Reproducibility ผ่าน Docker Container
  • Key Takeaways:

  • Woodpecker เบา, ตั้งค่าง่าย, ใช้ทรัพยากรน้อยกว่า Jenkins มาก
  • เหมาะกับทีม 2-30 คน ที่มี Server หรือ Homelab อยู่แล้ว
  • Cost ลดลงชัดเจนเมื่อ Build Volume สูง (200+ builds/เดือน)
  • ต้องมี DevOps อย่างน้อย 1 คนคอยดูแล
  • ทีม ADS FIT มีประสบการณ์การวาง Self-Hosted DevOps Stack ครบ Loop (Gitea + Woodpecker + Harbor + Argo CD) ให้กับ SME และ Enterprise ไทย หากต้องการคำปรึกษาเรื่อง Migration จาก GitHub Actions มาเป็น Self-Hosted หรือออกแบบ Pipeline ที่เหมาะสมกับธุรกิจ — [ติดต่อทีมเราเพื่อปรึกษาฟรี](/contact) หรือ [อ่านบทความ Open-Source DevOps อื่น ๆ บน Blog ของเรา](/blog)

    Tags

    #Woodpecker CI#CI/CD#DevOps#Self-Hosted#Open-Source#SME Thailand

    สนใจโซลูชันนี้?

    ปรึกษาทีม ADS FIT ฟรี เราพร้อมออกแบบระบบที่ฟิตกับธุรกิจของคุณ

    ติดต่อเรา →

    บทความที่เกี่ยวข้อง