اختيار خادم git المفتوح المصدر المحلي - Gitea هو الفائز!
المحاولة لاختيار خادم git مفتوح المصدر الجيد
هل ترغب في نقل مشاريعك بعيدًا عن مزودي سحابة مفتوحة للـ git وتفكير في استضافة خادم git داخلي محليًا؟
اختيار الخوادم
تشغيل خادم git الخاص بك لا ينبغي أن يكون صعبًا جدًا، أليس كذلك؟
إذن الآن اختيار خادم git مجاني من قائمة قصيرة جدًا من الخيارات. Bonobo Gogs مقابل Gitea مقابل Gitlab.
Bonobo مجاني ولكن مخصص لنظام ويندوز، ولا يحتوي على إصدار لنظام لينكس.
Gitlab غني بالميزات ويتطلب موارد كبيرة، إنه تجربة يدوية. إنه منتج تجاري ولكن يحتوي على إصدار مجاني كما.
Gogs خفيف جدًا، لقد جرّبته ويعمل بشكل جيد، لكنه يفتقر إلى سجل الحاويات.
المقارنة تميل إلى مصلحة Gitea من وجهة نظري.
تشغيل Gitea و Postgresql باستخدام Docker
https://docs.gitea.com/next/installation/install-with-docker
cd ~
mkdir gitea
cd gitea
docker-compose.yml:
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
ثم
docker-compose up -d
اذهب إلى http://localhost:3000/
لإيقاف التشغيل
docker-compose down
سيظل المجلدات كما هي
استخدام الموارد
تُظهر الحاويات استخدام 260 ميغابايت من الذاكرة وكمية بسيطة من المعالج.
حجم صور Docker الإجمالي 583 ميغابايت. 422 ميغابايت منها هي صورة postgres:14. صورة postgres:14-alpine تشغل 239 ميغابايت، وقد تعمل أيضًا إذا كانت الموارد محدودة.
ملاحظة: بعد نقل أكثر من 10 مستودعات إلى gitea، فإن بعضها يُستخدم 420 ميغابايت من الذاكرة الآن عند فورك وклон الحاوية الخاصة بـ gitea. يجب أن تظل مراقبًا لها.
مزامنة مستودعين
https://docs.gitea.com/next/usage/repo-mirror
يمكنك إجراء إدخال واسترجاع.
استرجاع
- اختر “مهاجرة جديدة” من قائمة “إنشاء…” في الزاوية العليا اليمنى.
- اختر خدمة المستودع البعيدة.
- أدخل عنوان المستودع.
- إذا كان المستودع يحتاج إلى مصادقة، أدخل معلومات المصادقة الخاصة بك.
- اختر المربع “سيكون هذا المستودع مرآة”.
- اختر “مهاجرة المستودع” لحفظ الإعدادات.
سيتم الآن تكرار المستودع بشكل دوري من المستودع البعيدة. يمكنك إجبار المزامنة عن طريق اختيار “مزامنة الآن” في إعدادات المستودع.
يمكنك إعداد مزامنة استرجاع فقط للمستودعات التي لا توجد بعد على مثيلك. بمجرد إنشاء المستودع، لا يمكن تحويله إلى مرآة استرجاع بعد ذلك.
إعداد HTTPS
هناك المزيد في إعداد SSL: https://docs.gitea.com/next/administration/https-setup
لكننا نحاول هذا في الوقت الحالي (تم أخذه من موقع gitea):
استخدام الخادم المدمج
قبل تمكين HTTPS، تأكد من أن لديك شهادات SSL/TLS صحيحة. يمكنك استخدام شهادات مولدة ذاتيًا للاختبار والتقييم. يرجى تشغيل
gitea cert --host [HOST]
لإنشاء شهادة موقعة ذاتيًا.
إذا كنت تستخدم Apache أو nginx على الخادم، يُنصح بمراجعة دليل الخادم العكسي.
للاستفادة من دعم HTTPS المدمج في Gitea، يجب عليك تغيير ملف app.ini الخاص بك:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
يرجى ملاحظة أن الشهادة يجب أن تكون موقعة من قبل جهة موثوقة (أي غير موقعة ذاتيًا)، في هذه الحالة يجب أن تحتوي ملف cert.pem على سلسلة الشهادات. يجب أن يكون الشهادة الخاصة بالخادم أول دخول في ملف cert.pem، تليها الوسيطين (إذا وُجدوا). لا يلزم تضمين الشهادة الجذرية لأن العميل يجب أن يمتلكها بالفعل لإقامة علاقة الثقة. لمزيد من المعلومات حول قيم الإعداد، يرجى مراجعة ورقة مساعدة الإعداد.
بالنسبة لحقل CERT_FILE أو KEY_FILE، فإن مسار الملف يكون نسبيًا إلى متغير البيئة GITEA_CUSTOM عندما يكون مسارًا نسبيًا. يمكن أن يكون مسارًا مطلقًا أيضًا.
إعداد إعادة التوجيه لـ HTTP يمكن للخادم Gitea الاستماع فقط إلى منفذ واحد؛ لتحويل طلبات HTTP إلى منفذ HTTPS، يجب عليك تمكين خدمة إعادة التوجيه:
[server]
REDIRECT_OTHER_PORT = true
; المنفذ الذي يجب أن تستمع إليه خدمة إعادة التوجيه
PORT_TO_REDIRECT = 3080
إذا كنت تستخدم Docker، تأكد من أن هذا المنفذ مُعد في ملف docker-compose.yml الخاص بك.
استخدام خادم عكسي
في هذه المقالة: Gitea-ssl أقوم بتكوين Apache كخادم عكسي ينهي TLS.
المهام المستقبلية
إعداد ssh: https://docs.gitea.com/next/installation/install-with-docker
اختبار النسخ الاحتياطي والاستعادة.