กุมภาพันธ์ 2, 2026คู่มือ
วิธีตั้งค่าเซิร์ฟเวอร์ Git ส่วนตัวบน VPS
คู่มือฉบับสมบูรณ์สำหรับการตั้งค่าเซิร์ฟเวอร์ Git ส่วนตัวของคุณเองบน VPS เรียนรู้วิธีโฮสต์ Git repositories ด้วยการควบคุมและความเป็นส่วนตัวอย่างสมบูรณ์โดยใช้ GitLab, Gitea หรือ bare repositories

การโฮสต์เซิร์ฟเวอร์ Git ของคุณเองให้การควบคุม repositories โค้ดของคุณอย่างสมบูรณ์ เพื่อให้แน่ใจว่ามีความเป็นส่วนตัวและหลีกเลี่ยงการพึ่งพาบริการบุคคลที่สาม ไม่ว่าคุณจะต้องการ bare repository แบบง่ายหรือแพลตฟอร์ม Git hosting แบบเต็มรูปแบบ คู่มือนี้ครอบคลุมตัวเลือกหลายอย่างสำหรับการตั้งค่าเซิร์ฟเวอร์ Git ส่วนตัวบน VPS ของคุณ
ทำไมต้องโฮสต์เซิร์ฟเวอร์ Git ของคุณเอง?
- ความเป็นส่วนตัวสมบูรณ์: โค้ดของคุณอยู่บนเซิร์ฟเวอร์ของคุณ
- ไม่มีการล็อกผู้ขาย: การควบคุมเต็มรูปแบบเหนือ repositories ของคุณ
- การปรับแต่ง: กำหนดค่าตามที่คุณต้องการ
- คุ้มค่า: เซิร์ฟเวอร์หนึ่งเครื่องสำหรับ repositories ไม่จำกัด
- การปฏิบัติตามกฎระเบียบ: ตอบสนองข้อกำหนดการพำนักของข้อมูล
- การเรียนรู้: เข้าใจภายในของเซิร์ฟเวอร์ Git
ตัวเลือก 1: GitLab (เต็มรูปแบบ)
GitLab ให้แพลตฟอร์ม DevOps ที่สมบูรณ์:
bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install gitlab-ce
gitlab-ctl reconfigure
# เข้าถึง GitLab ที่ http://your-server-ip
# ชื่อผู้ใช้เริ่มต้น: root
# ตั้งรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรกตัวเลือก 2: Gitea (น้ำหนักเบา)
Gitea เป็นบริการ Git ที่โฮสต์เองแบบน้ำหนักเบา:
bash
wget -O gitea https://dl.gitea.io/gitea/1.21.0/gitea-1.21.0-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/
# สร้าง systemd service
nano /etc/systemd/system/gitea.service
# กำหนดค่าและเริ่ม Gitea
systemctl enable gitea
systemctl start giteaตัวเลือก 3: Bare Git Repository (ง่าย)
สำหรับ Git hosting พื้นฐานโดยไม่มีเว็บอินเทอร์เฟซ:
bash
mkdir -p /srv/git/myproject.git
cd /srv/git/myproject.git
git --bare init
# ตั้งค่าสิทธิ์ที่เหมาะสม
chown -R git:git /srv/git
chmod -R 755 /srv/git
# Clone จากไคลเอนต์:
git clone git@your-server:/srv/git/myproject.gitการกำหนดค่าการเข้าถึง SSH
ตั้งค่า SSH สำหรับการเข้าถึง Git ที่ปลอดภัย:
bash
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys
# เพิ่มคีย์สาธารณะของนักพัฒนา
chmod 600 .ssh/authorized_keys
# ทดสอบการเชื่อมต่อ:
ssh git@your-serverแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด
- ใช้คีย์ SSH แทนรหัสผ่าน
- เปิดใช้งานการยืนยันตัวตนสองปัจจัย (GitLab/Gitea)
- การสำรองข้อมูล repositories เป็นประจำ
- เก็บซอฟต์แวร์เซิร์ฟเวอร์ Git ให้อัปเดต
- กำหนดค่าไฟร์วอลล์เพื่อจำกัดการเข้าถึง
- ใช้ SSL/TLS สำหรับเว็บอินเทอร์เฟซ
- ใช้การควบคุมการเข้าถึงและสิทธิ์
- ตรวจสอบบันทึกสำหรับกิจกรรมที่น่าสงสัย
กลยุทธ์การสำรองข้อมูล
การสำรองข้อมูลเป็นประจำมีความสำคัญ:
bash
#!/bin/bash
# สคริปต์สำรองข้อมูล Git repository
BACKUP_DIR="/backup/git"
REPO_DIR="/srv/git"
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/git-backup-$DATE.tar.gz $REPO_DIR
# เก็บ 30 วันล่าสุด
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete