โลโก้ Woodpecker CI
DevOps และ CI/CDApache License 2.0 (โอเพนซอร์ส)

Woodpecker CI คืออะไร และวิธีติดตั้งบน Cloud Server

Woodpecker CI คือระบบทดสอบและบิลด์อัตโนมัติที่แยกสายมาจาก Drone และอยู่ภายใต้ใบอนุญาตโอเพนซอร์สเต็มรูปแบบ เหมาะกับทีมที่ต้องการระบบ CI ของตัวเองโดยไม่มีเงื่อนไขเชิงพาณิชย์

หมวดหมู่
DevOps และ CI/CD
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
Apache License 2.0 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Woodpecker CI คืออะไร

Woodpecker เกิดจากชุมชนที่ต้องการระบบ CI แบบเดียวกับ Drone แต่อยู่ภายใต้ใบอนุญาตที่เปิดชัดเจนโดยไม่มีเงื่อนไขเชิงพาณิชย์ จึงยังคงแนวคิดหลักคือทุกขั้นตอนรันในคอนเทนเนอร์และตั้งค่าจากไฟล์ในที่เก็บโค้ด

ระบบใช้ทรัพยากรน้อยมากเมื่อเทียบกับระบบ CI ขนาดใหญ่ ทีมเล็กจึงรันเซิร์ฟเวอร์และ Runner บน Cloud Server เครื่องเดียวได้สบาย แล้วค่อยแยกเครื่องเมื่องานบิลด์เยอะขึ้น

จุดที่ทำให้เหมาะกับองค์กรไทยหลายแห่งคือการเข้าคู่กับ Gitea ได้อย่างลงตัว ทำให้ได้ระบบเก็บโค้ดและระบบบิลด์ที่ติดตั้งเองครบโดยใช้ทรัพยากรรวมกันไม่มาก

แผนผังการวางระบบ Woodpecker CI บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 8000, 9000 ตัว Woodpecker CI และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Woodpecker CI ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Woodpecker CI

โอเพนซอร์สเต็มรูปแบบ

ไม่มีเงื่อนไขเชิงพาณิชย์ ใช้ในองค์กรได้โดยไม่ต้องประเมินใบอนุญาต

ทุกขั้นตอนรันในคอนเทนเนอร์

สภาพแวดล้อมสะอาดและได้ผลเหมือนกันทุกครั้ง

ใช้ทรัพยากรน้อย

รันบนเครื่องสเปกเล็กได้ เหมาะกับทีมที่คุมงบ

เชื่อมกับ Gitea และ GitLab ได้

ทำงานร่วมกับระบบ Git ที่ติดตั้งเองได้ดี

เพิ่ม Runner ได้ตามงาน

ขยายกำลังบิลด์ด้วยการเพิ่มเครื่องรันงาน

ใช้ Woodpecker CI ทำอะไรได้บ้าง

  • ทีมเล็กที่ต้องการระบบ CI ของตัวเองโดยใช้ทรัพยากรน้อย
  • องค์กรที่ใช้ Gitea และต้องการระบบบิลด์ที่เข้าคู่กัน
  • หน่วยงานที่มีข้อกำหนดให้ใช้ซอฟต์แวร์โอเพนซอร์สที่ชัดเจน
  • โครงการที่ต้องการให้ไปป์ไลน์อยู่ในโค้ดและรีวิวได้

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Woodpecker CI 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 300 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นเซิร์ฟเวอร์และ Runner บนเครื่องเดียว2 vCPU4 GBNVMe 60 GB
แนะนำหลายโครงการที่บิลด์ทุกวัน4 vCPU8 GBNVMe 150 GB
ใช้งานหนักแยกเครื่อง Runner หลายตัว8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 300 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Woodpecker CI บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Docker และ Docker Compose
  • ระบบ Git ที่รองรับ เช่น Gitea, GitLab หรือ Forgejo
  • โดเมนและใบรับรอง SSL

ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว

  1. 1

    สร้าง OAuth Application ในระบบ Git

    ใน Gitea ไปที่ตั้งค่าผู้ใช้แล้วสร้างแอปพลิเคชัน โดยกำหนด Redirect URI เป็นที่อยู่ของ Woodpecker ตามด้วยเส้นทาง authorize

  2. 2

    สร้างไฟล์ docker-compose.yml

    services:
      server:
        image: woodpeckerci/woodpecker-server:latest
        environment:
          WOODPECKER_HOST: https://ci.example.com
          WOODPECKER_GITEA: true
          WOODPECKER_GITEA_URL: https://git.example.com
          WOODPECKER_GITEA_CLIENT: CHANGE_ME
          WOODPECKER_GITEA_SECRET: CHANGE_ME
          WOODPECKER_AGENT_SECRET: PasteALongRandomStringHere
          WOODPECKER_ADMIN: admin-username
        volumes:
          - ./woodpecker-data:/var/lib/woodpecker
        ports:
          - "127.0.0.1:8000:8000"
        restart: unless-stopped
    
      agent:
        image: woodpeckerci/woodpecker-agent:latest
        depends_on: [server]
        environment:
          WOODPECKER_SERVER: server:9000
          WOODPECKER_AGENT_SECRET: PasteALongRandomStringHere
          WOODPECKER_MAX_WORKFLOWS: 2
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        restart: unless-stopped
  3. 3

    สั่งรัน

    docker compose up -d
  4. 4

    ตั้ง Nginx และ HTTPS

    sudo certbot --nginx -d ci.example.com
  5. 5

    เปิดใช้งานที่เก็บโค้ดและเขียนไปป์ไลน์

    steps:
      test:
        image: node:22
        commands:
          - npm ci
          - npm test
    
      build:
        image: node:22
        commands:
          - npm run build
        when:
          branch: main
  6. 6

    เก็บค่าลับและตั้งการแจ้งเตือน

    เก็บโทเคนและรหัสผ่านไว้ในส่วน Secret ของโครงการ และตั้งการแจ้งเตือนเข้าอีเมลหรือแชทเมื่อบิลด์ไม่ผ่าน

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Reverse Proxy
8000TCPพอร์ตภายในของเซิร์ฟเวอร์
9000TCPการสื่อสารระหว่างเซิร์ฟเวอร์กับ Agent

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ตั้งค่าลับที่ยาวและสุ่มสำหรับการสื่อสารกับ Agent
  • กำหนดผู้ดูแลระบบให้ชัดเจนและจำกัดผู้ใช้ผ่านระบบ Git
  • แยกเครื่อง Agent ออกจากบริการสำคัญอื่นเพราะเข้าถึง Docker ได้
  • เก็บค่าลับในระบบ Secret ไม่เขียนลงไฟล์ไปป์ไลน์

ทำไมควรรัน Woodpecker CI บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

รันคู่กับ Gitea บน Cloud Server เครื่องเดียวได้สำหรับทีมเล็ก ช่วยคุมค่าใช้จ่าย

เพิ่มเครื่อง Agent ในวง Private Network ได้เมื่องานบิลด์เยอะขึ้น

โค้ดและผลการบิลด์อยู่ในไทยทั้งหมด ไม่ต้องพึ่งบริการภายนอก

คำถามที่พบบ่อยเกี่ยวกับ Woodpecker CI

Woodpecker ต่างจาก Drone อย่างไร

แยกสายมาจากฐานโค้ดเดียวกันและใช้แนวคิดเดียวกัน ต่างที่ Woodpecker เป็นโอเพนซอร์สเต็มรูปแบบโดยไม่มีเงื่อนไขเชิงพาณิชย์ ทำให้องค์กรที่ต้องตรวจใบอนุญาตเลือกใช้ได้ง่ายกว่า

เหมาะกับทีมขนาดไหน

เหมาะมากกับทีมเล็กถึงกลางที่ต้องการระบบ CI ของตัวเองโดยไม่ต้องดูแลระบบใหญ่ ถ้าองค์กรใหญ่และต้องการความสามารถครบทั้ง CI, Registry และการจัดการโครงการ GitLab จะครบกว่าในระบบเดียว

ย้ายไปป์ไลน์จาก Drone มาได้ไหม

ย้ายได้ไม่ยากเพราะรูปแบบไฟล์ใกล้เคียงกันมาก แต่มีรายละเอียดบางจุดที่ต่างกันตามเวอร์ชัน ควรทดสอบไปป์ไลน์บนโครงการเดียวก่อนย้ายทั้งหมด

ให้เราติดตั้ง Woodpecker CI ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด