ข้ามไปยังเนื้อหาหลัก
ลด 50% ทุกแพลน เวลาจำกัด เริ่มต้นที่ $2.48/mo
14 min left
เครื่องมือนักพัฒนาและ DevOps

Gitea vs Forgejo vs OneDev: การเลือกแพลตฟอร์ม Git แบบ Self-Hosted

B โดย Bill 14 นาทีในการอ่าน
Gitea vs Forgejo vs OneDev: choosing between a lightweight self-hosted git server and an all-in-one dev platform.

ในการเปรียบเทียบ gitea vs forgejo vs onedev คุณกำลังพิจารณาเครื่องมือสามตัวที่ตอบคำถามที่ต่างกันสองข้อ Gitea และ Forgejo เป็นเซิร์ฟเวอร์ git ที่เพิ่มการจัดการโปรเจกต์เข้าไป ส่วน OneDev เป็นแพลตฟอร์มจัดการโปรเจกต์และ CI ที่บังเอิญโฮสต์ git ได้ดีมาก ดังนั้นการตัดสินใจไม่ใช่ "ตัวไหนในสามตัวนี้ดีที่สุด" แต่เป็น "ฉันต้องการเซิร์ฟเวอร์ git ขนาดเล็ก หรือแพลตฟอร์มแบบครบวงจร และฉันสามารถแบกรับต้นทุน RAM ที่แพลตฟอร์มแบบครบวงจรต้องใช้ได้หรือไม่"

ส่วนสุดท้ายนี้คือจุดที่เป็นความตึงเครียด OneDev ทำงานได้มากกว่าตั้งแต่แกะกล่อง และผลการทดสอบของ nodatools.com วัดได้ว่ามันใช้หน่วยความจำขณะไม่ได้ใช้งานสูงกว่าการติดตั้ง Forgejo แบบเปล่า ๆ ราวสามเท่า ซึ่งบน VPS ขนาดเล็กอาจทำให้ค่าใช้จ่ายรายเดือนเพิ่มขึ้นเป็นสองเท่า การแลกเปลี่ยนนี้คือหัวใจสำคัญทั้งหมด (และไม่ใช่ GitLab ไม่ได้อยู่ในการเปรียบเทียบนี้ หากคุณต้องการขนาดการใช้ทรัพยากรแบบ GitLab คุณคงไม่ได้อ่านเรื่องราวเกี่ยวกับเครื่องมือทั้งสามนี้)

ฉันได้ใช้งานทั้งสามตัวมาแล้ว ด้านล่างนี้คือสิ่งที่สำคัญจริงๆ เมื่อคุณเลือกใช้ตัวใดตัวหนึ่งสำหรับทีม ได้แก่ ความแตกต่างด้านการกำกับดูแลและไลเซนส์ที่แยก Gitea ออกจาก Forgejo ฟีเจอร์ที่ทำให้ OneDev มีเหตุผลที่จะมีอยู่ ตัวเลข RAM ที่ทดสอบแล้ว และคำแนะนำแบบตรงไปตรงมา "เลือกตัวนี้ถ้า..." สำหรับแต่ละตัว

TL;DR (สรุปย่อ)

  • ต้องการเซิร์ฟเวอร์ git แบบเบาพร้อม CI สไตล์ Actions หรือไม่? Gitea หรือ Forgejo เลือก Gitea หากความเข้ากันได้กับ GitHub Actions ที่ใกล้เคียงกว่าเป็นเรื่องสำคัญ เลือก Forgejo หากไวยากรณ์ workflow ที่คล้าย GitHub พร้อมการปรับแต่งเล็กน้อยเป็นสิ่งที่ยอมรับได้
  • ใส่ใจเรื่องการกำกับดูแลแบบไม่แสวงหากำไรหรือไลเซนส์แบบ copyleft หรือไม่ Forgejo คือ fork ที่มีการกำกับดูแลโดยชุมชน และเป็นตัวเลือกเริ่มต้นของฉันสำหรับทีมส่วนใหญ่
  • ต้องการสัญญาอนุญาต MIT ชุมชน forge ที่ใหญ่ที่สุด หรือระดับ Enterprise แบบเสียเงินพร้อม SLA/SSO หรือไม่? Gitea
  • ต้องการระบบจัดการโปรเจกต์ในตัว CI ที่มาพร้อมกัน และระบบวิเคราะห์โค้ดอัจฉริยะในการติดตั้งเดียว และมี RAM เหลือเฟือหรือไม่? OneDev เพียงแค่ต้องรู้ว่ามันต้องการอย่างน้อยราว 4 GB ในขณะที่ Forgejo พอใจกับ 1 GB

สรุปแบบรวดเร็ว: สำหรับทีมส่วนใหญ่ Forgejo เป็นตัวเลือกเริ่มต้นที่เหมาะสมสำหรับการใช้ทรัพยากรน้อย แกนหลักเหมือนกับ Gitea การกำกับดูแลที่สะอาดกว่า และ Forgejo Actions ที่มีไวยากรณ์ workflow คล้าย GitHub เลือกใช้ OneDev เฉพาะเมื่อคุณต้องการประสบการณ์ PM รวมกับ CI ในกล่องเดียวจริงๆ และไม่ได้กำลังย้าย GitHub Actions workflow จำนวนมากที่มีอยู่แล้ว

สองคำถามที่เครื่องมือทั้งสามนี้ตอบได้

Diagram contrasting Gitea and Forgejo as a lightweight git platform with a separate CI runner against OneDev as an all-in-one platform bundling git hosting, built-in CI, project management, and code intelligence.

OneDev รัน CI build daemon ของมันภายในโพรเซส OneDev เอง ดังนั้นจึงไม่มี runner แยกต่างหากให้ติดตั้ง ส่วน Gitea และ Forgejo ทำตรงกันข้าม เซิร์ฟเวอร์ git เป็นสิ่งหนึ่ง และคุณต้องติดตั้ง CI runner เป็นโพรเซสแยกต่างหากข้างๆ มัน ข้อเท็จจริงด้านสถาปัตยกรรมเพียงข้อเดียวนี้บอกได้ว่าแต่ละเครื่องมือมองตัวเองอย่างไร

Gitea และ Forgejo ให้ความสำคัญกับ git เป็นอันดับแรก repository, pull request และการรีวิวโค้ดคือแกนหลัก ส่วนปัญหาและ kanban เป็นส่วนเสริมที่มีประโยชน์ ส่วน CI คือสิ่งที่คุณเพิ่มเข้าไปเอง ทั้งหมดนี้ถูกสร้างขึ้นเพื่อโฮสต์ git และไม่เข้ามาขวางทาง นี่คือเหตุผลที่มันมีขนาดเล็ก รวดเร็ว และรันได้ในราคาถูก

OneDev ถูกสร้างขึ้นในทิศทางตรงกันข้าม มันเป็นแพลตฟอร์มจัดการโปรเจกต์และ CI/CD ที่การโฮสต์ git เป็นองค์ประกอบชั้นหนึ่ง แต่ไม่ใช่หลักการจัดระเบียบ กระดาน kanban เป็นระบบอัตโนมัติ CI ถูกฝังไว้ในตัว code intelligence ถูกสร้างมาในตัว และมันคาดหวังที่จะเป็นสถานที่ที่ทีมของคุณอาศัยอยู่ ไม่ใช่แค่ที่เก็บโค้ดของคุณ นั่นคือผลิตภัณฑ์ที่แตกต่างกันอย่างแท้จริง ซึ่งเป็นเหตุผลที่การเปรียบเทียบกับ Gitea ในเรื่อง "ใครโฮสต์ git ได้ดีกว่า" นั้นพลาดประเด็นไป ทั้งสองโฮสต์ git ได้ดีพอๆ กัน OneDev แค่ต้องการทำมากกว่านั้น และมันเรียกเก็บค่าตอบแทนจากคุณเป็นทรัพยากรสำหรับสิทธิพิเศษนี้

ทุกอย่างที่ตามมาล้วนสอดคล้องกับการแบ่งแยกนี้ ตัวเลือกระหว่าง Gitea กับ Forgejo เป็นการตัดสินใจย่อยภายในสาขา "forge แบบเบา" ส่วนคำถามว่า "OneDev คุ้มค่าหรือไม่" เป็นสาขาที่แยกออกไปโดยสิ้นเชิง

Gitea vs Forgejo: การตัดสินใจระหว่างฝาแฝดเกือบเหมือนกัน

Comparison of Gitea and Forgejo governance: Gitea is MIT-licensed, company-backed, with an Enterprise tier and larger ecosystem, while Forgejo is GPL-3.0, non-profit governed, with public security disclosures and an all-free build.

ทั้งสองใช้ RAM ราว 180-350 MB เท่ากัน ใช้โค้ดเบสเดียวกันจนถึงจุดที่แยกกัน (fork) และทำหน้าที่โฮสต์ git หลักในแบบเดียวกัน สำหรับ repository, pull request, การรีวิวโค้ด ปัญหา และ CI แบบ Actions คุณจะแทบไม่พบความแตกต่างที่มีนัยสำคัญในการใช้งานประจำวัน เว้นแต่คุณกำลังย้าย GitHub Actions workflow ที่มีอยู่ ดังนั้นขอพูดให้ชัดตั้งแต่ต้นว่า นี่ไม่ใช่การประชันฟีเจอร์ ช่องว่างระหว่าง onedev กับ gitea นั้นกว้าง ส่วนช่องว่างระหว่าง gitea กับ forgejo คือเรื่องว่าใครเป็นผู้ควบคุมโปรเจกต์และเผยแพร่ภายใต้ไลเซนส์ใด

นี่คือภูมิหลังที่คุณจำเป็นต้องรู้จริงๆ ในเดือน October 2022 โดเมนและเครื่องหมายการค้าของ Gitea กลายเป็นศูนย์กลางของข้อพิพาทด้านการกำกับดูแล และ Forgejo ถูกสร้างขึ้นเพื่อตอบสนองต่อเหตุการณ์นั้น ปัจจุบัน Forgejo อยู่ภายใต้ Codeberg e.V. ซึ่งเป็นองค์กรไม่แสวงหากำไรในเยอรมนี และเผยแพร่ภายใต้ GPL-3.0 ส่วน Gitea ยังคงใช้ไลเซนส์ MIT และมีรุ่น self-hosted แบบโอเพนซอร์สฟรี ในขณะที่ CommitGo จำหน่าย Gitea Enterprise ควบคู่ไปด้วย Forgejo อธิบายการจัดการดังกล่าว เป็น Open Core; Gitea/CommitGo โต้แย้งป้ายกำกับนี้และระบุว่าโปรเจกต์ Gitea แบบโอเพนซอร์สเองไม่มีโค้ดที่เป็นกรรมสิทธิ์รวมอยู่ สำหรับผู้อ่าน ความแตกต่างในทางปฏิบัตินั้นเรียบง่ายกว่าประเด็นเชิงนโยบาย นั่นคือ Forgejo มุ่งเน้นการกำกับดูแลแบบไม่แสวงหากำไร, copyleft และเสรีทั้งหมด ส่วน Gitea เสนอแกนหลักแบบ MIT ที่ผ่อนปรน บวกกับเส้นทาง Enterprise ที่ได้รับการสนับสนุนจากผู้ให้บริการ

จากนั้นสามสิ่งจึงตามมา และแต่ละสิ่งล้วนมีผลต่อการตัดสินใจ

  • ไลเซนส์ GPL-3.0 copyleft (Forgejo) หมายความว่าหากคุณแก้ไข Forgejo และเผยแพร่เวอร์ชันที่แก้ไขแล้ว คุณต้องแชร์การเปลี่ยนแปลงของคุณภายใต้ GPL ส่วน MIT (Gitea) ไม่ได้กำหนดเช่นนั้น สำหรับทีมส่วนใหญ่ที่รัน instance โดยไม่แก้ไขภายในองค์กร เรื่องนี้ไม่เคยเป็นปัญหา แต่หากคุณกำลังสร้างต่อยอดจาก forge แล้วนำไปเผยแพร่ เรื่องนี้สำคัญ
  • การเปิดเผยช่องโหว่ด้านความปลอดภัย Forgejo แจ้งคำเตือนด้านความปลอดภัยแก่ทุกคนผ่านช่องทางสาธารณะ ส่วน Gitea สงวนการแจ้งเตือนความปลอดภัยล่วงหน้าไว้สำหรับลูกค้า Enterprise ที่จ่ายเงิน ซึ่งหมายความว่าผู้ดูแลระบบแบบ self-hosted ในระดับฟรีอาจเผชิญกับช่องโหว่ที่ทราบแล้วนานกว่าลูกค้าที่จ่ายเงิน หากคุณใช้เวอร์ชันฟรี ความไม่เท่าเทียมนี้เป็นสิ่งที่ควรรู้ไว้
  • มีระดับแบบเสียเงินอยู่ในฝั่งหนึ่ง Gitea มี Enterprise Edition เชิงพาณิชย์ ($9.50-$19/ผู้ใช้/เดือน) ที่เพิ่ม SSO, audit log, การสนับสนุนแบบเร่งด่วน และ SLA ส่วน Forgejo ไม่มีระดับแบบเสียเงิน ทุกฟีเจอร์อยู่ในบิลด์ GPL แบบฟรี

หากคุณใช้ Gitea อยู่ในปัจจุบัน และเรื่องนี้ทำให้คุณโน้มเอียงไปทาง Forgejo ข่าวดีคือมีเส้นทางการย้ายข้อมูลที่รองรับอยู่ (พร้อมจุดหักเหเวอร์ชันที่ Gitea 1.22 ซึ่งควรทำความเข้าใจก่อนเริ่มต้น) ฉันได้เขียนเรื่องนี้แยกไว้แล้ว ดูที่ ขั้นตอนการย้ายข้อมูลแบบเต็มรูปแบบ สำหรับรายละเอียดแยกตามเวอร์ชัน หากคุณกำลังจะย้ายออกจาก GitHub และยังไม่ได้เลือก forge นั่นเป็นการตัดสินใจอีกเรื่องหนึ่งที่มีข้อแลกเปลี่ยนของตัวเองและควรพิจารณาแยกต่างหาก

สรุปประเด็นสำคัญ: สำหรับการโฮสต์ git หลัก Gitea และ Forgejo มีความเท่าเทียมกัน เลือก Forgejo หากคุณต้องการความเป็นเจ้าของแบบไม่แสวงหากำไร สัญญาอนุญาตแบบ copyleft และการเปิดเผยช่องโหว่ด้านความปลอดภัยต่อสาธารณะ เลือก Gitea หากคุณต้องการสัญญาอนุญาต MIT ชุมชนที่ใหญ่กว่า หรือระดับ Enterprise เชิงพาณิชย์

จุดที่ OneDev แตกต่างอย่างแท้จริง

ลองรัน OneDev (16.0.1 ณ เวลาที่เขียนบทความนี้) ใช้งานไปสักวัน สิ่งแรกที่คุณจะสังเกตเห็นคือคุณไม่เคยต้องติดตั้ง CI runner เลย เพราะ build daemon อยู่ภายในเซิร์ฟเวอร์ OneDev เอง ทำให้ CI พร้อมทำงานทันทีที่แพลตฟอร์มเริ่มทำงาน คุณสามารถสร้าง pipeline ผ่าน GUI ได้โดยไม่ต้องเขียน YAML แม้แต่บรรทัดเดียว ดีบักงานผ่าน web terminal และทดสอบ build กับการเปลี่ยนแปลงในเครื่องที่ยังไม่ได้ commit ก่อนที่จะ push ด้วยซ้ำ นี่คือการลดความยุ่งยากในการดำเนินงานอย่างแท้จริง เมื่อเทียบกับขั้นตอน "ติดตั้งเซิร์ฟเวอร์ แล้วติดตั้งและลงทะเบียน runner แยกต่างหาก" ที่ Gitea และ Forgejo ต้องการ

ข้อควรระวังที่สำคัญมากสำหรับทีมที่มีอยู่แล้วคือ OneDev ใช้รูปแบบ YAML เฉพาะของตัวเอง มัน ไม่ใช่ เข้ากันได้กับ GitHub Actions ทุก workflow ที่คุณเขียนไว้สำหรับ GitHub, Gitea หรือ Forgejo จะต้องเขียนใหม่เพื่อให้รันบน OneDev ได้ หากคุณมีไฟล์ .github/workflows จำนวนมากที่พึ่งพาอยู่ นั่นคือค่าใช้จ่ายในการย้ายข้อมูลที่แท้จริง ไม่ใช่แค่เชิงอรรถ Gitea และ Forgejo ต่างก็สืบทอดระบบนิเวศ GitHub Actions มา แต่ไม่ได้สืบทอดในแบบเดียวกัน Gitea Actions ถูกออกแบบมาให้ใช้แทน GitHub Actions ได้เลย ดังนั้น workflow ส่วนใหญ่จึงย้ายมาได้โดยไม่ต้องแก้ไข ส่วน runner ของ Forgejo เข้ากันได้ในทางปฏิบัติ แต่มีช่องว่างที่บันทึกไว้ เช่น permissions subkey ที่หายไป continue-on-error ที่ถูกละเลย และไวยากรณ์ OIDC ที่แตกต่างกัน ให้ตรวจสอบสิ่งเหล่านี้ก่อนที่จะสรุปว่าย้ายได้สมบูรณ์

สิ่งที่สองที่ OneDev ทำได้แต่ forge ขนาดเล็กกว่าทำไม่ได้เลยคือ ระบบวิเคราะห์โค้ดอัจฉริยะ (code intelligence) ใน web UI การค้นหาสัญลักษณ์ (symbol search) การกระโดดไปยังจุดที่ประกาศ (go-to-definition) และการค้นหาจุดที่ถูกอ้างอิง (find-references) ทำงานได้กับหลายภาษา (รายการอย่างเป็นทางการรวมถึง Java, JavaScript, C, C++, C#, Go, PHP และ Python) โดยไม่ต้อง clone repo มาไว้ในเครื่อง Gitea และ Forgejo ไม่มีสิ่งที่เทียบเท่าในตัว ดังนั้นคุณต้องพึ่งเครื่องมือภายนอก หากทีมของคุณทำ code review บนเบราว์เซอร์เป็นประจำ นี่คือข้อดีที่แท้จริง

เติมเต็มด้วยระบบ kanban ที่ทำงานอัตโนมัติเต็มรูปแบบ (การเคลื่อนย้ายงานตามกฎ สถานะและฟิลด์ที่กำหนดเอง กฎการเปลี่ยนสถานะ) ระบบ service desk ที่แปลงอีเมลขาเข้าให้กลายเป็น issue โดยผู้ส่งไม่จำเป็นต้องมีบัญชี และ issue แบบลับภายในโปรเจกต์สาธารณะ แล้วคุณก็จะเห็นภาพรวม นั่นคือ OneDev กำลังพยายามเป็นทั้ง issue tracker ระบบ CI ตัวเรียกดูโค้ด และบอร์ดโปรเจกต์ของคุณในเวลาเดียวกัน

มีข้อชี้แจงหนึ่งเรื่อง package registry ที่ควรกล่าวไว้ OneDev มี registry ในตัว ส่วนนี้ชัดเจนอยู่แล้ว บทแนะนำการใช้งานแพ็กเกจ ระบุ Docker, npm, NuGet, Maven, PyPI และ RubyGems ในขณะที่เนื้อหาผลิตภัณฑ์ปัจจุบันยังกล่าวถึง Helm ด้วย Gitea และ Forgejo ยังคงครอบคลุมรูปแบบแพ็กเกจที่หลากหลายกว่ามาก รวมถึง Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant และอื่น ๆ อีกมากมาย หากทีมของคุณพึ่งพารูปแบบแพ็กเกจนอกเหนือจากชุดที่ OneDev รองรับซึ่งแคบกว่า Gitea หรือ Forgejo คือทางเลือกที่ปลอดภัยกว่า

สรุปประเด็นสำคัญ: OneDev มอบ CI ในตัว ระบบวิเคราะห์โค้ดอัจฉริยะ (code intelligence) และชุดเครื่องมือ PM ครบวงจรในการติดตั้งเดียว สิ่งที่คุณต้องแลกคือการเขียน GitHub Actions workflow ใหม่ทั้งหมด การยอมรับระบบนิเวศที่เล็กกว่า และ (ตามที่หัวข้อถัดไปจะกล่าวถึง) การป้อน RAM ให้มันมากขึ้นอย่างมาก

ต้นทุนด้านทรัพยากร: แต่ละตัวต้องใช้อะไรบ้างจริง ๆ

Idle RAM comparison showing Forgejo at about 180 MB and Gitea at about 200 MB as lightweight forges, versus OneDev at about 600 MB idle as an all-in-one platform, with VPS sizing guidance of 1 GB for a lean manual install and 4 GB or more for OneDev.

ตัวเลขที่ตัดสินการเปรียบเทียบทั้งหมดนี้สำหรับหลายทีมมาจากผลการทดสอบของ nodatools.com: OneDev ใช้ RAM ขณะไม่ได้ใช้งานประมาณ 600 MB ในขณะที่ Forgejo ใช้เพียงประมาณ 180 MB นั่นมากกว่า 3 เท่า และยิ่งเพิ่มขึ้นเมื่อมีภาระงาน นี่คือตัวเลขที่พวกเขาทดสอบได้จาก nodatools.com's measured comparison, รันบน VPS เครื่องใหม่:

เครื่องมือเวอร์ชันปัจจุบันRAM ขณะไม่มีโหลด (ทดสอบแล้ว)RAM ที่ใช้งานจริงขณะมีโหลด (ทดสอบแล้ว)ขั้นต่ำอย่างเป็นทางการ
Forgejov15.0.3 LTS~180 MB~320 MB512 MB
Gitea1.26.4~200 MB~350 MB512 MB
OneDev16.0.1~600 MB~950 MB2 GB

เหตุใดจึงมีช่องว่างนี้? OneDev เขียนขึ้นด้วย Java เป็นหลัก ดังนั้น JVM จึงมีภาระหน่วยความจำส่วนเกิน (heap overhead) ที่ Gitea และ Forgejo ซึ่งเขียนด้วย Go ไม่มีเลย นอกจากนี้ OneDev ยังทำดัชนีโค้ดสำหรับฟีเจอร์วิเคราะห์อัจฉริยะของมัน และการทำดัชนีครั้งแรกนั้นก็กินหน่วยความจำมาก เมื่อผมติดตั้งมันครั้งแรก จุดพุ่งขึ้นตอนบูตเครื่องคือส่วนที่น่ากลัวที่สุด แต่มันไม่ใช่สถานะการทำงานปกติที่คงที่

เคล็ดลับ: อย่าตกใจกับหน่วยความจำตอนเริ่มทำงานของ OneDev หน่วยความจำอาจพุ่งสูงขึ้นทันทีหลังบูตเครื่องในช่วงที่ JVM กำลังวอร์มอัปและกำลังสร้างดัชนีโค้ดเริ่มต้น จากนั้นจะค่อย ๆ ลดลงกลับสู่ระดับตอนไม่ได้ใช้งานเมื่อระบบเริ่มคงที่ อย่างไรก็ตาม ควรวางแผนโดยใช้ตัวเลขการทำงานจริง ไม่ใช่ตัวเลขตอนไม่ได้ใช้งาน เมื่อ CI กำลังรันงานอยู่จริง ควรจัดสรรงบประมาณไว้ที่ 1–2 GB อย่างสม่ำเสมอ ข้อกำหนดขั้นต่ำอย่างเป็นทางการที่ 2 GB มีเหตุผลรองรับ

เมื่อแปลงเป็นการกำหนดขนาด สิ่งนี้สอดคล้องกับระดับ VPS ได้อย่างชัดเจนดังนี้

  • Forgejo หรือ Gitea การติดตั้งพื้นฐาน ไม่มี CI runner บนเครื่อง: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo หรือ Gitea พร้อม CI runner บนเซิร์ฟเวอร์เดียวกัน: เพิ่มเป็น 4 GB RAM / 2 vCPU เพื่อให้ runner มีพื้นที่เพียงพอ
  • OneDev การติดตั้งพื้นฐาน: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.

ดังนั้นส่วนต่างของต้นทุนจึงไม่ใช่เรื่องเล็กน้อย เซิร์ฟเวอร์ git แบบเรียบง่ายที่ทำงานได้สบายบนเครื่องขนาด 1 GB เทียบกับ OneDev instance ที่ต้องการถึง 4 GB นั้นแทบจะเท่ากับค่าใช้จ่าย VPS รายเดือนที่เพิ่มขึ้นเป็นสองเท่า สำหรับนักพัฒนาคนเดียวหรือทีมเล็ก นั่นคือความแตกต่างระหว่างการรันแบบ "แทบไม่มีค่าใช้จ่าย" กับรายการค่าใช้จ่ายที่คุณจะสังเกตเห็น สำหรับทีมขนาดใหญ่ที่จะพึ่งพา CI และ PM ที่มาพร้อมกันทุกวัน มันก็อาจคุ้มค่าอย่างแน่นอน แต่นี่คือการแลกเปลี่ยนที่แท้จริง ค่าใช้จ่ายส่วนเกินของ OneDev มาจาก JVM และต้นทุนนั้นคือสิ่งที่ซื้อความสามารถที่ JVM รองรับ

Gitea, Forgejo, และ OneDev ล้วนเป็นการติดตั้งด้วยคลิกเดียวใน มาร์เก็ตเพลสของ Cloudzy, ดังนั้นเมื่อคุณกำหนดขนาดแล้ว การตั้งค่า forge ก็ใช้เวลาเพียงไม่กี่นาที แทนที่จะเป็นทั้งบ่ายกับการวุ่นวายกับ Docker หากคุณรัน CI runner หรือระบบทำดัชนีโค้ดของ OneDev พื้นที่สำรองส่วนเพิ่มจะอยู่บน Linux VPS พร้อมสิทธิ์ root เพื่อให้คุณปรับแต่ง JVM heap และการทำงานพร้อมกันของ runner ได้ด้วยตนเอง

ข้อสังเกตเฉพาะของ Cloudzy หนึ่งข้อ การ์ดแอปใน Marketplace ในปัจจุบันเริ่มต้น Gitea, Forgejo และ OneDev ที่ 2 GB RAM คำแนะนำ 1 GB ด้านบนใช้กับการติดตั้งด้วยตนเองแบบกระชับที่ไม่มี CI runner ในเครื่อง หากคุณติดตั้งผ่าน Cloudzy Marketplace ให้ทำตามค่าขั้นต่ำของการ์ดแอป เพื่อให้ระบบปฏิบัติการ ฐานข้อมูล การอัปเดตแพ็กเกจ และบริการเบื้องหลังมีพื้นที่หายใจ

คุณควรเลือกอันไหน

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

เลือก Forgejo หากคุณต้องการ forge แบบเบาที่อยู่ภายใต้การกำกับดูแลของชุมชน พร้อม CI สไตล์ Actions และยอมรับความแตกต่างเล็กน้อยของ workflow เมื่อเทียบกับ GitHub Actions ได้ นี่คือคำแนะนำเริ่มต้นของผมสำหรับทีมส่วนใหญ่ คุณจะได้รับการโฮสต์ git หลักแบบเดียวกับ Gitea ความเป็นเจ้าของแบบไม่แสวงหากำไรที่ชัดเจนกว่า การเปิดเผยช่องโหว่ด้านความปลอดภัยต่อสาธารณะ สัญญาอนุญาตแบบ copyleft และการใช้ RAM น้อยที่สุดในบรรดาทั้งสามตัว หากคุณไม่มีเหตุผลเฉพาะที่จะเลือกตัวอื่น ให้เลือกตัวนี้

เลือก Gitea หาก คุณต้องการสัญญาอนุญาต MIT โดยเฉพาะ (ผ่อนปรนกว่า GPL-3.0 ของ Forgejo) ชุมชนและระบบนิเวศของ forge ที่ใหญ่ที่สุด หรือระดับ Enterprise เชิงพาณิชย์พร้อม SSO, audit log และ SLA ในแง่การโฮสต์ git แบบดิบ มันเสมอกันกับ Forgejo ดังนั้นคุณกำลังเลือกจากความชอบด้านสัญญาอนุญาตและความเป็นเจ้าของ บวกกับตัวเลือกการสนับสนุนแบบเสียเงินหากองค์กรของคุณต้องการผู้ให้บริการที่ติดต่อได้

เลือก OneDev หาก คุณต้องการระบบจัดการโปรเจกต์ในตัว CI ที่มาพร้อมกัน และระบบวิเคราะห์โค้ดอัจฉริยะในการติดตั้งเดียว คุณกำลังเริ่มต้นใหม่ (ไม่มี GitHub Actions workflow เดิมที่ต้องย้าย) และคุณมีงบประมาณ RAM สำหรับเครื่องขนาด 4 GB ขึ้นไป การตัดสินใจระหว่าง forgejo กับ onedev นั้นสรุปได้ว่า คุณกำลังซื้อเซิร์ฟเวอร์ git หรือแพลตฟอร์มกันแน่ ถ้าคำตอบคือ "แพลตฟอร์ม และผมไม่อยากติดตั้ง CI เพิ่มเอง" OneDev ก็คุ้มค่ากับภาระที่มันใช้

ปัจจัยการตัดสินใจหนึ่งข้อที่มักถูกมองข้าม ไม่มีเส้นทางการย้ายข้อมูลระหว่างตระกูล Gitea/Forgejo กับ OneDev โมเดลข้อมูล รูปแบบ CI และ schema ต่างกันทั้งหมด หากคุณเริ่มต้นด้วย Forgejo แล้วภายหลังตัดสินใจว่าต้องการ OneDev (หรือในทางกลับกัน) คุณกำลังเผชิญกับการย้ายผ่าน API ทีละ repo ซึ่งจะสูญเสียประวัติ CI และข้อมูลการจัดการโปรเจกต์ ดังนั้นหากแนวทางแบบครบวงจรของ OneDev ดึงดูดใจคุณอยู่แล้ว การเริ่มต้นที่นั่นเลยจะคุ้มค่ากว่าการย้ายไปทีหลังมาก ระหว่าง Gitea กับ Forgejo การย้ายข้อมูลมีอยู่จริง (นั่นคือ เส้นทางการย้ายข้อมูล ที่กล่าวถึงข้างต้น) แต่การข้ามเส้นแบ่งจาก forge แบบเบาไปสู่ OneDev เป็นการเดินทางแบบทางเดียวที่มีการสูญเสียข้อมูล ควรนำสิ่งนี้มาพิจารณาในการตัดสินใจตั้งแต่ตอนนี้ ไม่ใช่ในอีกสิบแปดเดือนข้างหน้า

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

Gitea ยังคงเป็นโอเพนซอร์สอยู่หรือไม่

ได้ แกนหลักของ Gitea อยู่ภายใต้สัญญาอนุญาต MIT และสามารถโฮสต์เองได้ฟรีโดยไม่จำกัดจำนวนผู้ใช้และ repository ข้อควรระวังในทางปฏิบัติคือเรื่องการกำกับดูแล ไม่ใช่เรื่องความพร้อมของซอร์สโค้ด Gitea อยู่ภายใต้การควบคุมของบริษัท และมีข้อเสนอ Enterprise ที่ได้รับการสนับสนุนจากผู้ให้บริการผ่าน CommitGo ในขณะที่ Forgejo คือ fork ที่อยู่ภายใต้การกำกับดูแลของชุมชนและใช้สัญญาอนุญาต GPL ภายใต้ Codeberg e.V. Forgejo อธิบายข้อตกลงเชิงพาณิชย์ของ Gitea ว่าเป็น Open Core; Gitea/CommitGo โต้แย้งฉลากดังกล่าว และระบุว่าโปรเจกต์โอเพนซอร์สเองไม่มีโค้ดที่เป็นกรรมสิทธิ์รวมอยู่ ดังนั้น Gitea จึงยังคงเป็นโอเพนซอร์ส แต่ไม่ได้อยู่ภายใต้การกำกับดูแลของชุมชนในแบบเดียวกับ Forgejo

Forgejo ดีกว่า Gitea หรือไม่

สำหรับการโฮสต์ git หลัก ทั้งสองแทบจะเหมือนกัน Forgejo แยกตัวออกมา (fork) จาก Gitea และใช้พื้นฐานเดียวกัน Forgejo แตกต่างในเรื่องการกำกับดูแล (Codeberg e.V. แบบไม่แสวงหากำไร) ไลเซนส์ (GPL-3.0 แบบ copyleft เทียบกับ MIT ของ Gitea) และการเปิดเผยช่องโหว่ด้านความปลอดภัย (เปิดเผยต่อสาธารณะทุกคน เทียบกับนโยบายที่ให้ลูกค้า Enterprise ก่อนของ Gitea) คำว่า "ดีกว่า" ขึ้นอยู่กับว่าสิ่งเหล่านี้สำคัญกับคุณหรือไม่ หากพิจารณาเฉพาะฟีเจอร์ ถือว่าเสมอกัน

OneDev ต้องใช้ RAM เท่าไร

ขั้นต่ำอย่างเป็นทางการของ OneDev คือ 2 GB RAM ในการทดสอบของ nodatools.com มันใช้ RAM ราว 600 MB ขณะไม่มีโหลด และพุ่งขึ้นไปราว 950 MB เมื่อมีโหลด ตอนบูตอาจใช้สูงกว่านี้ในขณะที่ JVM กำลังวอร์มอัพและการทำดัชนีเสร็จสิ้น แต่เมื่อ CI กำลังทำงานอยู่ คุณควรตั้งงบไว้ที่ 1-2 GB อย่างสม่ำเสมอ เพื่อเปรียบเทียบ การทดสอบเดียวกันนั้นพบว่า Forgejo และ Gitea ใช้ RAM ราว 180-200 MB ขณะไม่มีโหลด

ฉันสามารถย้ายจาก Gitea ไปยัง OneDev หรือจาก OneDev ไปยัง Forgejo ได้หรือไม่

ไม่มีเส้นทางการย้ายข้อมูลโดยตรงระหว่างตระกูล Gitea/Forgejo กับ OneDev ทั้งสองใช้โมเดลข้อมูล รูปแบบ CI และ schema ที่ต่างกัน ดังนั้นการย้ายจึงต้องใช้การย้ายข้อมูลผ่าน API ทีละ repo ซึ่งจะสูญเสียประวัติ CI และการจัดการโปรเจกต์ ส่วนการย้ายข้อมูลระหว่าง Gitea และ Forgejo นั้นมีอยู่จริง (ดูที่ คู่มือการย้ายข้อมูลจาก Gitea ไปยัง Forgejo ของเรา) เพราะทั้งสองมีสายพันธุ์เดียวกัน

OneDev รองรับ GitHub Actions หรือไม่

ไม่ OneDev ใช้ภาษาถิ่น YAML ของตนเองร่วมกับตัวแก้ไข pipeline แบบ GUI ดังนั้น workflow ที่เขียนไว้สำหรับ GitHub, Gitea หรือ Forgejo จึงต้องเขียนใหม่เพื่อให้รันบนมันได้ Gitea Actions ถูกออกแบบมาให้ใช้แทนได้เลย ดังนั้น workflow ที่มีอยู่ส่วนใหญ่จึงรันได้โดยไม่ต้องแก้ไข ส่วน runner ของ Forgejo เข้ากันได้ในทางปฏิบัติ แต่ไม่ได้ออกแบบมาให้เหมือนกับ GitHub Actions ทุกประการ ให้ตรวจสอบเอกสารทางการของ Forgejo สำหรับความเข้ากันไม่ได้ที่บันทึกไว้ก่อนที่จะสรุปว่าย้ายได้สมบูรณ์

Share

บทความเพิ่มเติมจากบล็อก

อ่านต่อ

Diagram of the Gitea to Forgejo migration version cliff showing the supported direct path ending at Gitea 1.22
เครื่องมือนักพัฒนาและ DevOps

วิธีย้ายจาก Gitea ไปยัง Forgejo โดยไม่ทำให้ repository ของคุณเสียหาย

การอัปเกรดตรงจาก Gitea ไปยัง Forgejo หยุดที่ Gitea 1.22 สำหรับ Gitea 1.23+ ให้เปรียบเทียบการดาวน์เกรด SQL เครื่องมือย้ายข้อมูล การนำเข้าผ่าน API การสำรองข้อมูล และสิ่งที่จะเสียหาย

Chike 18 นาทีในการอ่าน
ESLint output showing AI-specific lint violations in a TypeScript file
เครื่องมือนักพัฒนาและ DevOps

วิธีตั้งค่า Linter สำหรับโค้ดที่สร้างโดย AI

คอนฟิก Ruff, ESLint v10 และ golangci-lint ที่ใช้งานได้จริงและปรับจูนมาสำหรับโค้ดที่สร้างโดย AI พร้อมด่าน pre-commit ที่เอเจนต์ข้ามไม่ได้

Sherwin 14 นาทีในการอ่าน
Coolify vs Dokploy: self-hosted PaaS on a VPS, compared on Docker Compose, security, licensing, and resource use.
เครื่องมือนักพัฒนาและ DevOps

Coolify vs Dokploy: การเปรียบเทียบอย่างละเอียดสำหรับ PaaS แบบ Self-Hosted บน VPS

เปรียบเทียบ Coolify vs Dokploy อย่างละเอียด: CVE เดือนมกราคม 2026 การเปลี่ยนลิขสิทธิ์ ความจริงเรื่อง zero-downtime สถานะ Docker Swarm การใช้ RAM และวิธีเลือก

Sajjad 15 นาทีในการอ่าน

พร้อมติดตั้งหรือยัง? เริ่มต้น $2.48/เดือน

คลาวด์อิสระ ตั้งแต่ปี 2008 AMD EPYC, NVMe, 40 Gbps คืนเงินภายใน 14 วัน