- Gitea เป็นโปรแกรมทางเลือกที่มีน้ำหนักเบาแทน GitLab และ GitHub ซึ่งใช้ทรัพยากรระบบน้อยมาก
- การติดตั้งนี้ใช้ไฟล์ไบนารีที่สามารถเรียกใช้งานได้ ซึ่งได้รับการจัดการในฐานะบริการผ่าน SystemD
- การใช้ Reverse Proxy ร่วมกับ Nginx เป็นสิ่งจำเป็นเพื่อให้สามารถเข้าถึงข้อมูลได้อย่างปลอดภัยผ่าน HTTPS
- ฟังก์ชันนี้ช่วยให้สามารถย้ายคลังเก็บข้อมูลที่มีอยู่จากแพลตฟอร์มอื่นได้โดยยังคงรักษาปัญหาและแท็กต่างๆ ไว้ได้

หากคุณเบื่อกับการพึ่งพาข้อกำหนด ค่าใช้จ่าย หรือความพร้อมใช้งานของบริษัทใหญ่ๆ อย่าง GitHub หรือ GitLab การสร้างโครงสร้างพื้นฐานของคุณเองคือทางออกที่ดีกว่า การมีเซิร์ฟเวอร์ Git อยู่ที่บ้านหรือในสำนักงานของคุณเองจะทำให้คุณได้ควบคุมทุกอย่างได้อย่างสมบูรณ์ ควบคุมโค้ดได้อย่างเต็มที่ และสบายใจได้ว่าไม่มีข้อจำกัดจากบุคคลที่สามสำหรับที่เก็บโค้ดส่วนตัวของคุณ
ในบรรดาตัวเลือกที่มีอยู่ทั้งหมด Gitea โดดเด่นเป็นพิเศษ มันเป็นเครื่องมือที่เขียนด้วยภาษา Go ทำให้มีน้ำหนักเบาและเร็วมากเหมาะสำหรับผู้ที่ไม่ต้องการจัดสรร RAM 16 GB ให้กับเซิร์ฟเวอร์ Git ต่างจาก GitLab ซึ่งมีฟีเจอร์มากมายแต่ใช้ทรัพยากรมาก Gitea เปรียบเสมือนเรือเร็ว: มันตรงประเด็น ใช้ทรัพยากรน้อยมาก และมีอินเทอร์เฟซที่คุ้นเคยสำหรับทุกคนที่เคยใช้ GitHub มาก่อน
เปรียบเทียบอย่างรวดเร็ว: Gitea, GitLab และ Forgejo

ก่อนที่จะเริ่มการติดตั้ง เราควรทำความเข้าใจก่อนว่ากำลังจะเจอกับอะไรบ้าง GitLab เป็นตัวเลือกที่ยอดเยี่ยมสำหรับองค์กรขนาดใหญ่ เหมาะสำหรับทีมขนาดใหญ่ที่ต้องการระบบ CI/CD แบบครบวงจร แต่ต้องการฮาร์ดแวร์ที่มีประสิทธิภาพสูง ในทางกลับกัน Gitea เป็นตัวเลือกที่ดีที่สุดสำหรับเซิร์ฟเวอร์ขนาดเล็กหรือโครงการส่วนตัว เนื่องจากใช้หน่วยความจำน้อยมาก สุดท้ายนี้ยังมี Forgejo ซึ่งเป็นเวอร์ชันที่พัฒนาต่อยอดมาจาก Gitea หากคุณเป็นผู้ที่ยึดมั่นในซอฟต์แวร์เสรีและชื่นชอบการกำกับดูแลแบบเปิดโดยปราศจากอิทธิพลขององค์กร นี่คือทางเลือกที่เหมาะสำหรับคุณ
สิ่งที่คุณต้องการก่อนเริ่มต้น

เพื่อให้ทุกอย่างทำงานได้อย่างราบรื่น โปรดตรวจสอบให้แน่ใจว่าคุณมีเซิร์ฟเวอร์ Linux (ไม่ว่าจะเป็น Ubuntu, Debian หรือ Rocky Linux) ที่มีสิทธิ์เข้าถึงระดับ root นอกจากนี้ การติดตั้ง Git บนเครื่องก็เป็นสิ่งสำคัญ และถึงแม้ว่า Gitea จะอนุญาตให้ใช้ SQLite ได้ แต่สำหรับสภาพแวดล้อมการใช้งานจริง ขอแนะนำอย่างยิ่งให้ใช้ PostgreSQL หรือ MariaDBเพื่อรับประกันความเสถียรของข้อมูล
การเตรียมความพร้อมในระบบ

การเรียกใช้ Gitea ในฐานะ root ไม่ใช่เรื่องที่ดีด้วยเหตุผลด้านความปลอดภัย ทางที่ดีควรสร้างผู้ใช้เฉพาะขึ้นมา คุณสามารถทำได้โดยการเรียกใช้คำสั่ง adduser --system --shell /bin/bash --group --home /home/gitea gitea. จำเป็นต้องใช้ /bin/bash เป็นเชลล์ เนื่องจาก Gitea จำเป็นต้องสื่อสารกับ git-shell ผ่าน SSH หากคุณยังไม่ได้ติดตั้ง Git ให้ทำการติดตั้งอย่างง่ายๆ apt install git จะแก้ปัญหาได้อย่างรวดเร็ว
การติดตั้งแบบไบนารีและโครงสร้างโฟลเดอร์

สามารถติดตั้ง Gitea ได้หลายวิธี แต่การติดตั้งแบบไบนารีเป็นวิธีที่ง่ายที่สุด คุณควรค้นหาเวอร์ชันเสถียรล่าสุดบนเว็บไซต์อย่างเป็นทางการและดาวน์โหลดโดยใช้ [method/method] wget en /usr/local/bin/giteaให้ในภายหลัง กำหนดสิทธิ์การเรียกใช้งานด้วยคำสั่ง chmod +xเพื่อให้โปรแกรมทำงานได้อย่างถูกต้อง จำเป็นต้องสร้างไดเร็กทอรีเฉพาะบางส่วน: /etc/gitea สำหรับการกำหนดค่าและ /var/lib/gitea สำหรับข้อมูล บันทึก และไฟล์ที่กำหนดเอง อย่าลืมปรับแต่งด้วย สิทธิ์การเข้าถึงทรัพย์สิน (chown) เพื่อให้ผู้ใช้ gitea สามารถเขียนจดหมายถึงพวกเขาได้
การกำหนดค่าฐานข้อมูล
หากคุณเลือกใช้ PostgreSQL คุณจะต้องติดตั้งแพ็กเกจและสร้างบทบาทเฉพาะที่มีรหัสผ่านที่รัดกุม นอกเหนือจากการสร้างฐานข้อมูลแล้ว giteadb โดยใช้การเข้ารหัส UTF8 หากคุณต้องการใช้ MariaDB กระบวนการก็คล้ายกัน คือ คุณสร้างฐานข้อมูลและผู้ใช้ โดยตรวจสอบให้แน่ใจว่า... เอนจินจัดเก็บข้อมูลคือ InnoDB และเซิร์ฟเวอร์กำลังรับฟังอยู่ที่พอร์ต 3306
ระบบอัตโนมัติด้วย SystemD
เพื่อหลีกเลี่ยงการเริ่มต้น Gitea ด้วยตนเองทุกครั้งที่รีสตาร์ทเซิร์ฟเวอร์ วิธีที่ดีที่สุดคือการสร้างไฟล์ไดรฟ์ใน /etc/systemd/system/gitea.serviceไฟล์นี้บอกระบบว่า Gitea ต้องดำเนินการในรูปแบบของการให้บริการโดยกำหนดผู้ใช้ กลุ่ม และเส้นทางไฟล์ไบนารี เมื่อสร้างเสร็จแล้ว ก็เพียงแค่เรียกใช้งาน systemctl enable --now gitea และเซิร์ฟเวอร์จะเริ่มรับฟังการเชื่อมต่อโดยค่าเริ่มต้นที่พอร์ต 3000
การติดต่อครั้งแรกกับเว็บอินเทอร์เฟซ
เมื่อเข้ามา http://tu-ip:3000จากนั้นคุณจะพบกับวิซาร์ดการตั้งค่า ในขั้นตอนนี้คุณจะต้องเชื่อมต่อฐานข้อมูล (โดยระบุโฮสต์ ชื่อผู้ใช้ และรหัสผ่าน) และกำหนดค่าต่างๆ การตั้งค่าเว็บไซต์ทั่วไปเช่น ชื่ออินสแตนซ์และ URL พื้นฐาน นอกจากนี้ยังถึงเวลาที่จะกำหนดค่าเซิร์ฟเวอร์ SSH และตัดสินใจว่าคุณต้องการให้ทุกคนสามารถลงทะเบียนได้หรือไม่ หรือคุณต้องการ... ปิดใช้งานการบันทึกสาธารณะ เพื่อรักษาความเป็นส่วนตัวของเซิร์ฟเวอร์
ระบบรักษาความปลอดภัยและการเข้าถึงระดับมืออาชีพด้วย Nginx
การเข้าถึง Gitea ผ่านพอร์ต 3000 นั้นไม่มีประสิทธิภาพและไม่ปลอดภัย วิธีแก้ปัญหาที่ดีที่สุดคือการตั้งค่าReverse Proxy ด้วย Nginxซึ่งจะช่วยให้ผู้ใช้สามารถเข้าถึงเว็บไซต์ผ่านโดเมน (เช่น git.yourdomain.com) และรับประกันว่าการรับส่งข้อมูลทั้งหมดจะถูกเข้ารหัสโดยใช้ใบรับรอง SSL ของ Let's Encryptในการตั้งค่า Nginx เพียงแค่เปลี่ยนเส้นทางการรับส่งข้อมูลจากพอร์ต 443 ไปยังพอร์ต 3000 ของ Gitea โดยเพิ่มส่วนหัว X-Forwarded-For เพื่อป้องกันการสูญเสียที่อยู่ IP จริงของไคลเอ็นต์
การจัดการผู้ใช้และการย้ายรหัส
หากคุณปิดใช้งานการบันทึกข้อมูลแบบเปิด คุณสามารถสร้างผู้ดูแลระบบคนแรกได้โดยใช้บรรทัดคำสั่งด้วยคำสั่งต่อไปนี้ gitea admin user createเมื่อเข้าไปข้างในแล้ว คุณสามารถเพิ่มของคุณลงไปได้ คีย์ SSH สาธารณะ ในโปรไฟล์ผู้ใช้ คุณสามารถโคลน repository ได้โดยไม่ต้องป้อนรหัสผ่านทุกครั้ง หากคุณมีโค้ดอยู่บน GitHub อยู่แล้ว Gitea ก็มีฟังก์ชันนี้ให้ใช้งาน เครื่องมือการย้ายข้อมูลแบบบูรณาการ ระบบจะนำเข้าโดยอัตโนมัติไม่เพียงแค่โค้ดเท่านั้น แต่ยังรวมถึงปัญหาและแท็กต่างๆ ด้วย
การบำรุงรักษาและการปรับแต่ง
การดูแลรักษา Gitea นั้นง่ายมาก ในการอัปเดต เพียงดาวน์โหลดไฟล์ไบนารีเวอร์ชันใหม่ แทนที่ไฟล์เก่า แล้วรีสตาร์ทบริการ สำหรับการสำรองข้อมูล ให้ใช้คำสั่ง gitea dump มันคือเพื่อนที่ดีที่สุดของคุณ เพราะมันสร้าง... ไฟล์บีบอัดที่มีทุกอย่างฐานข้อมูล การกำหนดค่า และที่เก็บข้อมูล สำหรับอีเมล คุณสามารถกำหนดค่าเซิร์ฟเวอร์ SMTP ภายนอก (เช่น Gmail) หรือติดตั้ง Postfix บนเซิร์ฟเวอร์เพื่อรับการแจ้งเตือนคำขอพูลและการแจ้งเตือนอื่นๆ
การใช้งาน Gitea ช่วยให้คุณมีแพลตฟอร์มควบคุมเวอร์ชันที่มีประสิทธิภาพ น้ำหนักเบา และเป็นส่วนตัวอย่างสมบูรณ์ โดยไม่ต้องพึ่งพาบริการภายนอก ด้วยการติดตั้งแบบไบนารี ฐานข้อมูลที่ได้รับการปรับแต่ง และพร็อกซีแบบย้อนกลับที่รับประกันความปลอดภัยของการรับส่งข้อมูลผ่าน HTTPS