1 เม.ย. เวลา 03:49 • การศึกษา

Gitea คืออะไร

โดย
ในยุคที่การพัฒนาซอฟต์แวร์ต้องใช้ Git เป็นหัวใจหลัก หลายคนอาจจะคุ้นเคยกับ GitHub หรือ GitLab แต่ถ้าคุณเริ่มรู้สึกว่า "อยากคุมข้อมูลเอง" หรือ "ไม่อยากจ่ายรายเดือนแพงๆ" การมี Git Server เป็นของตัวเอง คือคำตอบครับ!
และ พระเอกของงานนี้คือ Gitea ครับ! มาพร้อมปรัชญา "Git with a cup of tea" ที่เน้นความชิลเหมือนนั่งจิบชาแต่ทรงพลังสุดๆ เขียนด้วยภาษา Go ทำให้รันได้ทุกที่ตั้งแต่ Raspberry Pi ตัวจิ๋วไปจนถึงเซิร์ฟเวอร์ยักษ์ใหญ่ ที่สำคัญคือมันกินทรัพยากรน้อยมาก RAM แค่ 512 MB ก็วิ่งฉิวแล้วครับ!
  • ​Gitea คืออะไร?
Gitea (อ่านว่า จี-เทีย) คือระบบจัดการ Git แบบ Open Source ที่เกิดมาเพื่อ "แก้ปัญหาความยุ่งยาก" (Painless) ในการติดตั้งครับ
⚪ จุดเด่น
รันได้ทุกแพลตฟอร์ม (Windows, macOS, Linux) และ ทุกสถาปัตยกรรม (x86, ARM, PowerPC)
⚪ ประวัติ
แยกตัวออกมาจาก Gogs ในปี 2016 เพื่อสร้างชุมชนที่เปิดกว้าง และ พัฒนาได้ไวกว่าเดิม จนตอนนี้กลายเป็นขวัญใจสาย Self-hosted ทั่วโลกไปแล้วครับ!
1
  • ​Gitea ทำงานยังไง?
1) โครงสร้างแบบแบ่งเลเยอร์ (Layered Architecture)
Gitea แบ่งหน้าที่กันชัดเจนเพื่อความเร็วและ เสถียรภาพ
⚪ Web Layer
คอยจัดการ HTTP Requests, การแสดงผลหน้าเว็บ และ API (อยู่ที่โฟลเดอร์ routers/)
⚪ Service Layer
หัวใจหลักที่รวมตรรกะทางธุรกิจ เช่น การสร้าง Pull Request หรือ จัดการ Issues (อยู่ที่โฟลเดอร์ services/)
⚪ Model Layer
ดูแลโครงสร้างข้อมูล และ การคุยกับฐานข้อมูล (อยู่ที่โฟลเดอร์ models/)
⚪ Data Layer
ส่วนเก็บข้อมูลถาวร ทั้งตัว Git Repositories และ ไฟล์ต่างๆ
⚪ Infrastructure
ฟังก์ชันพื้นฐานอย่างการ Log หรือ การตั้งค่าต่างๆ (อยู่ที่โฟลเดอร์ modules/)
2
2) ระบบฐานข้อมูลที่ยืดหยุ่น
Gitea รองรับฐานข้อมูลหลากหลายตามความเหมาะสมของคุณ
⚪ SQLite
เหมาะกับสายลุยคนเดียว หรือ โปรเจกต์เล็กๆ ไฟล์เดียวจบ ติดตั้งง่ายที่สุด
⚪ PostgreSQL
แนะนำสำหรับองค์กรที่ต้องการความเสถียร และ ประสิทธิภาพระดับสูง
2
⚪ MySQL / MariaDB
ทางเลือกมาตรฐานสำหรับองค์กรทั่วไปที่คุ้นเคยกันดี
3) Gitea Actions (CI/CD)
ตั้งแต่เวอร์ชัน 1.19 เป็นต้นมา Gitea มีระบบ CI/CD ในตัวที่คุยกับ GitHub Actions ได้รู้เรื่อง! โดยมีระบบ Action Runner แยกส่วนออกมาทำงาน ทำให้คุณทำระบบทดสอบ และ Deploy อัตโนมัติได้ในบ้านตัวเองเลยครับ
  • ​7 ประโยชน์เน้นๆ ของ Gitea ที่คุณต้องรู้
1) ติดตั้งง่ายที่สุดในสามโลก
แค่ดาวน์โหลด Binary ไฟล์เดียวแล้วสั่งรัน หรือ จะใช้ Docker ก็แค่คำสั่งเดียวจบ มีหน้าเว็บช่วยตั้งค่า Step-by-Step สบายสุดๆ
2) ประหยัดทรัพยากรขั้นสุด
RAM 512 MB ก็รันได้ (GitLab ต้องใช้ 4-8 GB!) เหมาะมากสำหรับรันบน VPS ราคาประหยัด หรือ เครื่องเก่าๆ ในบ้าน
3) ฟีเจอร์แน่นเท่ารุ่นพี่
มีครบทั้งระบบ Issue, Pull Request, Kanban Board, Wiki และ แม้แต่ Package Registry (npm, Docker, PyPI ฯลฯ)
4) รองรับภาษาไทย
ไม่ต้องกลัวงง เพราะมีชุมชนช่วยแปลเป็นภาษาไทยให้เรียบร้อยแล้ว
3
5) รันได้ทุกที่ (Cross-Platform)
จะ Windows, Mac หรือ Raspberry Pi ก็รันได้ไม่มีปัญหา
6) ความปลอดภัยสูง
รองรับ 2FA, SSH Keys และ มีระบบจัดการความลับ (Secrets) สำหรับ CI/CD
7) ชุมชนแข็งแกร่ง
อัปเดตสม่ำเสมอมีคนช่วยซัพพอร์ตเพียบ!
  • ​อยากเริ่มใช้งานควรมีพื้นฐานอะไรบ้าง?
🧑‍🦱 สายเริ่มต้น
แม่นคำสั่ง Git พื้นฐาน (Commit, Push, Pull) และ การใช้ Terminal เบื้องต้นก็พอครับ
🧑‍💻 สายแอดมิน
ควรศึกษาเรื่อง Docker, การจัดการ Service ใน Linux (systemd) และ การตั้งค่า Nginx/Caddy เพื่อทำ Reverse Proxy
🧑‍🔧 สาย DevOps
ศึกษาเรื่อง CI/CD Workflows และ การเขียนสคริปต์ Git Hooks เพื่อทำระบบอัตโนมัติ
  • ​ตัวอย่างการติดตั้ง Gitea ด้วย Docker Compose
สร้างไฟล์ docker-compose.yml แล้วแปะโค้ดนี้ลงไป
```yaml
version: '3'
services:
db:
image: postgres:15
restart: always
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: gitea
POSTGRES_DB: gitea
volumes:
- ./postgres:/var/lib/postgresql/data
gitea:
image: gitea/gitea:latest
restart: always
ports:
- "3000:3000"
- "2222:22"
volumes:
- ./gitea:/data
depends_on:
- db
```
4
สั่ง docker-compose up -d แล้วเข้า http://localhost:3000 จบงาน!
  • ​ปัจจุบัน Gitea ไปถึงไหนแล้ว?
⚪ Tea CLI โตเต็มวัย
ตอนนี้เครื่องมือ Tea จัดการได้ทุกอย่างตั้งแต่ Label ยัน Release จนกลายเป็นหัวใจของสาย DevOps ไปแล้ว
⚪ Gitea Cloud มาแล้ว!
สำหรับคนรัก Gitea แต่ขี้เกียจคุมเซิร์ฟเวอร์เอง ตอนนี้เขามีบริการคลาวด์อย่างเป็นทางการให้ใช้แล้วนะ
1
⚪ Gitea Actions สุดเสถียร
ระบบ CI/CD ในตัวตอนนี้เก่งมาก เขียน Workflow แบบเดียวกับ GitHub Actions ได้เลย ทำให้คุณทำระบบ Test และ Deploy อัตโนมัติได้ในบ้านตัวเอง
✏️ Shoper Gamer
  • ​Git คืออะไร 👇
  • ​Go (Golang) คืออะไร 👇
Credit :
👇
  • ​https://github.com/go-gitea/gitea
  • ​https://about.gitea.com/
  • ​https://docs.gitea.cn/en-us/1.19/
  • ​https://news.ycombinator.com/item?id=37521680
โฆษณา