Skip to content
VDS · التطبيقات والبوتات

Git الخاص بك: Forgejo أو Gitea

كيف تعدّ خادم مستودعات شخصيًا بواجهة ويب ووصول SSH وتشغيلات بناء — وما الذي تنسخه حتى لا تفقد شفرتك.

آخر تحديث 23 أغسطس 2026

تحتاج إلى Git خاص بك عندما يجب ألا يخرج الكود إلى منصة شخص آخر، أو عندما تريد عدم وجود حدود على المستودعات الخاصة ودقائق البناء. Forgejo وGitea مشروعان وثيقا الصلة (نشأ Forgejo من Gitea)؛ كلاهما يُثبَّت في حاوية واحدة ويعمل على جهاز متواضع.

ماذا تختار وكيف تحدد الموارد

لا يوجد تقريبًا أي فرق في العمل اليومي: الواجهة، والمسائل، وطلبات السحب، والنسخ المتطابقة، وActions للبناء. يُطوَّر Forgejo بواسطة مجتمع، وGitea بواسطة شركة. اختر Forgejo إذا كانت استقلالية المشروع تهمك.

لشخصين أو ثلاثة، يكفي VDS-1. بمجرد إضافة runner للبناء، اختر VDS-3 أو أعلى: البناء يستهلك المعالج والقرص، وسرعة القرص محدودة بالمستوى.

التثبيت عبر Compose

services:
  forgejo:
    image: codeberg.org/forgejo/forgejo:11
    container_name: forgejo
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
    ports:
      - "3000:3000"
      - "2222:22"
docker compose up -d
docker compose logs -f forgejo

افتح http://<machine-address>:3000 وأكمل الإعداد الأولي. أول مستخدم يُنشأ يصبح المدير.

لا تحتاج إلى إبقاء المنفذ 3000 مفتوحًا للخارج. أغلقه وضع خادم ويب مع شهادة أمام الخدمة — بهذه الطريقة تحصل على HTTPS ولا تُظهر لوحة الإعداد للغرباء. حتى يكتمل الإعداد، يمكن لأي شخص يفتح العنوان أن ينشئ المدير أولًا.

الوصول عبر SSH

المنفذ 22 داخل الحاوية مُوجَّه إلى 2222، لأن 22 مشغول بـ SSH الخاص بالنظام. في إعدادات المستودع، سيبدو العنوان هكذا:

git clone ssh://git@example.com:2222/user/repo.git

إذا أردت الصيغة المعتادة git@example.com:user/repo.git بدون منفذ، فاترك 2222 للحاوية وأعدّ التوجيه على المضيف عبر SSH الخاص بالنظام، أو انقل SSH الإداري إلى منفذ آخر (انظر حماية الوصول).

البناء

تُشغَّل Actions بواسطة runner منفصل — حاوية forgejo-runner، التي تُسجِّل برمز مميز من إعدادات المدير. امنحها الوصول إلى مقبس Docker عن قصد فقط: فهو يعادل صلاحيات الجذر على الجهاز. للبناء، من الأفضل تقييد runner بالذاكرة والمعالج — انظر حدود الموارد.

ما الذي يجب نسخه احتياطيًا

تُخزَّن كل الحالة في وحدة التخزين ./data: المستودعات، وقاعدة البيانات، والمرفقات، والإعدادات. تُنشأ النسخة الاحتياطية هكذا:

docker compose stop forgejo
restic -r <repository> backup ./data
docker compose start forgejo

تحتاج إلى إيقاف الخدمة إذا كانت تستخدم SQLite — وإلا فقد تكون لقطة قاعدة البيانات غير متسقة. مع PostgreSQL، يكفي pg_dump دون إيقاف. لمزيد من التفاصيل، انظر ما الذي يجب نسخه احتياطيًا بالضبط وRestic.

الأخطاء الشائعة

  • نسيان حجم المستودع. بناء خوادم الألعاب والوسائط يستهلك مساحة القرص بسرعة: 40 GB من المستوى المبتدئ تنفد دون أن تلاحظ.
  • عدم إعداد البريد الإلكتروني. بدونه، لا تعمل الدعوات وإعادة تعيين كلمة المرور. من الأسهل ربط SMTP خارجي بدلًا من إعداد خادم بريد خاص بك.
  • التحديث دون نسخة احتياطية. تغيير الإصدار الرئيسي يغيّر مخطط قاعدة البيانات. أولًا نسخة احتياطية، ثم docker compose pull — انظر تحديث الحاويات.