ติดตั้ง Git Server บน VPS ด้วย Gitea

Gitea เป็น lightweight Git service ที่เหมาะสำหรับติดตั้งบน VPS เล็กๆ หรือ low-resource servers ขนาดไฟล์เล็ก (~15MB) ใช้หน่วยความจำน้อย และติดตั้งง่าย เหมาะสำหรับทีมเล็กๆ ที่ต้องการ self-hosted Git repository บทความนี้แนะนำวิธีติดตั้ง Gitea บน VPS

Gitea คืออะไร?

  • Lightweight Git service ขนาดเล็ก
  • ใช้หน่วยความจำน้อย (ใช้ได้กับ VPS 512MB)
  • Single binary – ติดตั้งง่าย
  • Web UI สำหรับจัดการ repositories
  • SSH support สำหรับ Git operations
  • Open source

ข้อกำหนดเบื้องต้น

  • Ubuntu 18.04 LTS ขึ้นไป
  • CPU: 1 core ก็พอ
  • RAM: 512MB ขั้นต่ำ (1GB แนะนำ)
  • Git installed
  • SSH server

ขั้นตอนการติดตั้ง Gitea

# Create git user
sudo useradd -m -d /home/git git

# Download Gitea binary
cd /tmp
wget https://dl.gitea.io/gitea/latest/gitea-linux-amd64

# Move to /usr/local/bin
sudo mv gitea-linux-amd64 /usr/local/bin/gitea
sudo chmod +x /usr/local/bin/gitea

# Verify installation
gitea --version

ตั้งค่า Gitea Service

# Create systemd service file
sudo nano /etc/systemd/system/gitea.service

# Add content:
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target mysql.service
Wants=mysql.service

[Service]
User=git
WorkingDirectory=/home/git/gitea
ExecStart=/usr/local/bin/gitea web
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

# Enable and start service
sudo systemctl enable gitea
sudo systemctl start gitea

# Check status
sudo systemctl status gitea

เข้าถึง Gitea ผ่าน Web Browser

Gitea ทำงานบนพอร์ต 3000 ตามค่าเริ่มต้น เข้าไปที่ http://your-vps-ip:3000 หรือ http://your-domain:3000

# First access จะให้ setup page
# ตั้งค่า:
# - Database type (SQLite is simple for small setup)
# - Admin account
# - Site title
# Click Install Gitea

ตั้งค่า Nginx Reverse Proxy

sudo nano /etc/nginx/sites-available/gitea

server {
    listen 80;
    server_name gitea.yourdomain.com;
    
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# Enable site
sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

สร้าง Repository ใน Gitea

# Login ด้วย admin account
# Click + icon เลือก New Repository
# ใส่ repository name
# Click Create Repository

# Clone from local
git clone https://gitea.yourdomain.com/username/repo.git

# หรือผ่าน SSH
git clone [email protected]:username/repo.git

Best Practices สำหรับ Gitea

  • ใช้ HTTPS (setup Let’s Encrypt)
  • Backup repositories regularly
  • Monitor disk space
  • Update Gitea เป็นรุ่นล่าสุด
  • ตั้งค่า SSH keys สำหรับ secure access
  • ตั้งค่า strong passwords

สรุป

Gitea เป็นทางเลือกที่ดีสำหรับผู้ที่ต้องการ self-hosted Git service ที่เบา รวดเร็ว และง่ายต่อการติดตั้ง ข้อมูลทั้งหมดของคุณจะอยู่บน VPS ของตัวเองอย่างเต็มที่ เหมาะสำหรับโปรเจกต์ส่วนตัว ทีมเล็กๆ หรือ organization ที่ต้องการใช้เบาๆ