العودة إلى المدونة
فبراير 2, 2026الأدلة

كيفية إعداد خادم Git خاص على VPS

دليل كامل لإعداد خادم Git الخاص بك على VPS. تعلم كيفية استضافة مستودعات Git مع التحكم الكامل والخصوصية باستخدام GitLab أو Gitea أو المستودعات العارية.

كيفية إعداد خادم Git خاص على VPS

استضافة خادم Git الخاص بك يمنحك سيطرة كاملة على مستودعات الكود الخاصة بك، مما يضمن الخصوصية وتجنب الاعتماد على خدمات الطرف الثالث. سواء كنت بحاجة إلى مستودع عاري بسيط أو منصة استضافة Git كاملة الميزات، يغطي هذا الدليل خيارات متعددة لإعداد خادم Git خاص على خادم VPS الخاص بك.

لماذا تستضيف خادم Git الخاص بك؟

  • الخصوصية الكاملة: كودك يبقى على خادمك
  • لا قفل البائع: التحكم الكامل في مستودعاتك
  • التخصيص: التكوين بالضبط كما تريد
  • فعال من حيث التكلفة: خادم واحد لمستودعات غير محدودة
  • الامتثال: تلبية متطلبات إقامة البيانات
  • التعلم: فهم داخليات خادم 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
nano /etc/systemd/system/gitea.service
# تكوين وبدء Gitea
systemctl enable gitea
systemctl start gitea

الخيار 3: مستودع Git العاري (بسيط)

لاستضافة Git الأساسية بدون واجهة ويب:

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

# الاستنساخ من العميل:
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)
  • نسخ احتياطي منتظم للمستودعات
  • الحفاظ على تحديث برنامج خادم Git
  • تكوين جدار الحماية لتقييد الوصول
  • استخدم SSL/TLS للواجهات الويب
  • تنفيذ ضوابط الوصول والأذونات
  • مراقبة السجلات للأنشطة المشبوهة

استراتيجية النسخ الاحتياطي

النسخ الاحتياطي المنتظم ضروري:

bash
#!/bin/bash
# سكريبت النسخ الاحتياطي لمستودع Git
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