•
12 ส.ค. เวลา 04:34 • การศึกษา

Forgejo คืออะไร

โดย
ในโลกของการพัฒนาซอฟต์แวร์ยุคปัจจุบัน ระบบควบคุมเวอร์ชัน (Version Control System) อย่าง Git ได้กลายเป็นเครื่องมือที่ขาดไม่ได้สำหรับ Developer และสาย DevOps ไปแล้ว และเมื่อพูดถึงการจัดเก็บหรือโฮสต์ซอร์สโค้ด แพลตฟอร์ม Cloud ยอดนิยมอย่าง GitHub หรือ GitLab ย่อมเป็นชื่อแรกๆ ที่ทุกคนเลือกใช้เนื่องจากความสะดวกสบายและฟีเจอร์ที่ครบครัน
อย่างไรก็ตาม เมื่อองค์กรเติบโตขึ้น หรือเมื่อผู้พัฒนาเริ่มให้ความสำคัญกับความมั่นคงปลอดภัยของข้อมูล ความเป็นส่วนตัว (Data Privacy) และต้องการสิทธิ์ในการควบคุมโครงสร้างพื้นฐานอย่าง 100% การพึ่งพาแพลตฟอร์มภายนอกเพียงอย่างเดียวอาจไม่ใช่คำตอบเสมอไป ยิ่งไปกว่านั้น ในช่วงที่ผ่านมา แพลตฟอร์มโฮสต์ Git หลายแห่งเริ่มเปลี่ยนแนวทางไปสู่โมเดลแสวงผลกำไร มีการจำกัดฟีเจอร์ในเวอร์ชันฟรี หรือการเปลี่ยนไปใช้โมเดลแบบ Open Core ที่ต้องจ่ายเงินเพื่อแลกกับฟีเจอร์สำคัญ
ปัญหาเหล่านี้ส่งผลให้สายทำระบบและนักพัฒนาจำนวนมากเริ่มมองหาทางเลือกในการทำ Self-hosted Git Server ที่รันบนเซิร์ฟเวอร์ของตัวเอง กินทรัพยากรน้อย ปลอดภัย และเป็น Open Source ที่แท้จริง และซอฟต์แวร์แห่งยุคที่ตอบโจทย์เรื่องนี้ได้อย่างสมบูรณ์แบบก็คือ Forgejo ครับ
- Forgejo Logo -
  • ★
    ​Forgejo คืออะไร?
ถ้าจะให้อธิบายแบบง่ายที่สุด Forgejo คือซอฟต์แวร์สำหรับโฮสต์ Git แบบ self-hosted ที่มีน้ำหนักเบา ติดตั้งง่าย และดูแลรักษาน้อย พูดให้เห็นภาพชัดขึ้นก็คือมันเป็นเหมือน GitHub เวอร์ชันที่เราสามารถติดตั้งลงบนเซิร์ฟเวอร์ของตัวเองได้เลยครับ
ชื่อ Forgejo (อ่านว่า ฟอร์-เจ-โย หรือ ฟอร์-เจ-โฮ) มาจากคำในภาษาเอสเปรันโตที่แปลว่าโรงตีเหล็ก ซึ่งก็สื่อถึงแนวคิดของซอฟต์แวร์ตัวนี้ได้เป็นอย่างดีเป็นพื้นที่สำหรับ หลอม และ พัฒนาซอฟต์แวร์ร่วมกันนั่นเอง
Forgejo ถูกสร้างขึ้นในเดือนธันวาคม ค.ศ. 2022 โดยเป็นการ fork (แยกสาขา) มาจาก Gitea สาเหตุหลักมาจากการที่ Gitea ถูกโอนไปอยู่ภายใต้บริษัทที่แสวงหาผลกำไรและเริ่มมีโมเดล Open Core ซึ่งทำให้ชุมชนผู้พัฒนาไม่พอใจและตัดสินใจแยกออกมาเป็น Forgejo แทน
ปัจจุบัน Forgejo อยู่ภายใต้การดูแลของ Codeberg e.V. องค์กรไม่แสวงผลกำไรจากประเทศเยอรมนี และเป็นแพลตฟอร์มที่ถูกเลือกใช้โดยองค์กรใหญ่ๆ อย่าง GNU Project, F-Droid และ KDE
  • ★
    ​Forgejo ทำงานอย่างไร?
Forgejo เขียนด้วยภาษา Go และ JavaScript ทำงานบนสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์ผ่านเว็บอินเทอร์เฟซ โดยมีกลไกการทำงานหลักๆ ดังนี้ครับ
1) จัดการ Repository ด้วย Git: Forgejo ใช้ Git เป็นระบบควบคุมเวอร์ชันหลัก รองรับการ clone, push, pull ผ่านทั้ง SSH และ HTTP
2) มีระบบฐานข้อมูลเป็นของตัวเอง: Forgejo ต้องการฐานข้อมูลสำหรับเก็บข้อมูลเมตาและผู้ใช้งาน รองรับทั้ง PostgreSQL, MySQL/MariaDB และ SQLite
3) มีฟีเจอร์ครบครันเหมือน GitHub: Forgejo มีเครื่องมือสำหรับการพัฒนาซอฟต์แวร์แบบครบวงจร ไม่ว่าจะเป็น Issues (การติดตามปัญหา), Pull Requests (การขอรวมโค้ด), Code Review, Wiki, Kanban Board และอื่นๆ
4) รองรับ CI/CD ด้วย Forgejo Actions: Forgejo มีระบบ CI/CD ในตัวที่เรียกว่า Forgejo Actions ซึ่งเข้ากันได้กับ GitHub Actions ทำให้เราสามารถใช้ workflow แบบเดียวกับที่ใช้ใน GitHub ได้เลย
5) รองรับ Federation (การเชื่อมต่อข้ามเซิร์ฟเวอร์): Forgejo กำลังพัฒนาให้รองรับการทำงานแบบกระจายศูนย์ (decentralization) โดยใช้ ActivityPub ซึ่งจะทำให้เซิร์ฟเวอร์ Forgejo ต่างๆ สามารถเชื่อมต่อและสื่อสารกันได้
  • ★
    ​Forgejo มีกี่ประเภท?
Forgejo โดยตัวมันเองคือซอฟต์แวร์ชุดเดียวที่สามารถนำไปใช้งานได้หลายรูปแบบ ซึ่งแบ่งออกได้เป็น
1) Self-hosted (ติดตั้งเอง): เราสามารถดาวน์โหลด Forgejo ไปติดตั้งบนเซิร์ฟเวอร์ของตัวเองได้ ไม่ว่าจะเป็น VPS, เครื่องเซิร์ฟเวอร์ในองค์กร หรือแม้แต่เครื่อง Raspberry Pi ก็ยังได้
2) Public Instance (ใช้งานผ่านผู้ให้บริการ): ถ้าไม่อยากยุ่งยากกับการติดตั้งเอง ก็สามารถสมัครใช้งานผ่านผู้ให้บริการที่ใช้ Forgejo เป็นระบบ backend ได้ เช่น Codeberg ซึ่งเป็น public instance ที่ใหญ่ที่สุดและฟรี
3) Managed Service (บริการแบบมีคนจัดการให้): ปัจจุบันมีผู้ให้บริการหลายรายที่เสนอโฮสต์ Forgejo ให้ โดยคิดค่าบริการรายเดือน
  • ★
    ​ทำไมต้องใช้ Forgejo? (ประโยชน์)
1) ฟรีและ Open Source ตลอดไป: Forgejo เป็นซอฟต์แวร์เสรี 100% ภายใต้ลิขสิทธิ์ GPLv3+ และทางโครงการให้คำมั่นว่าจะไม่เปลี่ยนเป็นโมเดลที่เรียกเก็บเงินแบบ Gitea
2) น้ำหนักเบา ใช้ทรัพยากรน้อย: Forgejo มีขนาดเล็กและใช้ทรัพยากรน้อยกว่า GitHub หรือ GitLab มาก แรมแค่ 2 GB ก็รันได้สบายๆ
3) ติดตั้งและดูแลง่าย: ไม่ต้องมีพื้นฐานด้าน Server มากมายก็สามารถติดตั้งและใช้งานได้
4) ปลอดภัยกว่า: Forgejo ให้ความสำคัญกับความปลอดภัย มีการแจ้งเตือนช่องโหว่ล่วงหน้าสู่สาธารณะ ในขณะที่ Gitea แจ้งเฉพาะลูกค้าที่จ่ายเงินเท่านั้น
5) ชุมชนแข็งแรงและโปร่งใส
การบริหารจัดการแบบองค์กรไม่แสวงผลกำไร ทำให้การตัดสินใจทุกอย่างโปร่งใสและเป็นประชาธิปไตย
  • ★
    ​ควรมีความรู้พื้นฐานอะไรบ้าง?
ก่อนจะเริ่มใช้งาน Forgejo ควรมีพื้นฐานดังนี้ครับ
⚪ ความรู้เรื่อง Git พื้นฐาน
รู้จักคำสั่ง clone, push, pull, commit, branch ฯลฯ
⚪ ความรู้เรื่องระบบปฏิบัติการ Linux: เพราะ Forgejo มักถูกติดตั้งบน Linux (รองรับ macOS ด้วย แต่ไม่รองรับ Windows ตั้งแต่ปี 2024)
⚪ ความรู้เรื่อง Docker/Container (ไม่จำเป็นแต่ช่วยได้มาก): การติดตั้ง Forgejo ด้วย Docker เป็นวิธีที่ง่ายและแพร่หลายที่สุด
⚪ ความรู้เรื่องฐานข้อมูล
ควรเข้าใจวิธีการตั้งค่า PostgreSQL หรือ MySQL อย่างคร่าวๆ
⚪ ความรู้เรื่อง DNS และ Domain
ถ้าอยากให้คนอื่นเข้าถึง Forgejo ของเราได้ผ่านอินเทอร์เน็ต
  • ★
    ​Forgejo VS Gitea ต่างกันอย่างไร?
หลายคนอาจสงสัยว่า Forgejo กับ Gitea ต่างกันยังไง ในเมื่อหน้าตาและฟีเจอร์แทบจะเหมือนกัน? คำตอบอยู่ที่หัวใจของโครงการครับ สามารถเปรียบเทียบความแตกต่างในประเด็นสำคัญได้ดังนี้
🧑‍💼 ด้านการบริหาร
Forgejo อยู่ภายใต้การดูแลขององค์กรไม่แสวงผลกำไร (Codeberg e.V.) ในขณะที่ Gitea บริหารงานโดยบริษัทที่แสวงผลกำไร
🧠 โมเดลธุรกิจ
Forgejo เป็น Open Source ล้วนๆ ส่วน Gitea ใช้โมเดล Open Core (มีฟีเจอร์ที่ต้องจ่ายเงินซื้อ)
📊 การพัฒนา
Forgejo พัฒนาโดยใช้แพลตฟอร์มของตัวเอง (dogfooding) แต่ Gitea ยังพัฒนาอยู่บน GitHub
🔠 แพลตฟอร์มการแปลภาษา
Forgejo ใช้ Weblate ส่วน Gitea ใช้ Crowdin
🛡️ การแจ้งช่องโหว่ด้านความปลอดภัย: Forgejo มีการแจ้งเตือนช่องโหว่สู่สาธารณะล่วงหน้า ส่วน Gitea แจ้งเฉพาะลูกค้าที่จ่ายเงินเท่านั้น
👥 ข้อกำหนดผู้มีส่วนร่วม (Contributor): Forgejo ไม่ต้องโอนลิขสิทธิ์ ในขณะที่ Gitea กำหนดให้ต้องโอนลิขสิทธิ์
  • ★
    ​ตัวอย่างการใช้งาน Forgejo
1) โฮสต์โค้ดส่วนตัว
แทนที่จะเก็บโค้ดไว้บน GitHub หรือ GitLab ที่เป็นของบริษัทอื่น ก็ติดตั้ง Forgejo ไว้บน VPS ของตัวเอง เก็บโค้ดส่วนตัวได้อย่างปลอดภัย
2) ใช้ในองค์กรหรือทีมงาน
Forgejo สามารถใช้เป็น Git Server กลางของทีม มีระบบจัดการ Issues, Pull Requests และ Code Review ช่วยให้ทีมทำงานร่วมกันได้อย่างมีประสิทธิภาพ
3) ใช้เป็น Mirror ของ GitHub
ถ้าไม่อยากพึ่งพา GitHub มากเกินไป ก็สามารถตั้ง Forgejo เป็นตัวสำรอง (mirror) โดยให้ sync โค้ดจาก GitHub มาไว้ใน Forgejo ของเรา
4) ใช้ Codeberg แทน GitHub Codeberg คือ public instance ของ Forgejo ที่ให้บริการฟรี เหมาะสำหรับโปรเจกต์ Open Source ที่ไม่อยากอยู่บน GitHub
5) สร้าง CI/CD Pipeline
ด้วย Forgejo Actions ที่เข้ากันได้กับ GitHub Actions เราสามารถเขียน workflow สำหรับ build, test และ deploy โค้ดได้อัตโนมัติ
✏️ Shoper Gamer
Credit :
👇
  • ●
    ​https://forgejo.org/compare-to-gitea/
  • ●
    ​https://danubedata.ro/blog/self-host-gitea-forgejo-github-alternative-2026
  • ●
    ​https://www.blockdit.com/posts/6a660c611c5a6a7daabcaeb1
  • ●
    ​https://contabo.com/blog/gitea-vs-forgejo/
  • ●
    ​https://codeberg.org/forgejo/forgejo
  • ●
    ​https://dev.to/janderssonse/moving-from-github-to-codebergforgejo-b3
โฆษณา