تخطي إلى المحتوى الرئيسي

VPS: تثبيت GitLab على لينكس

تم إنشاء هذا الدليل باستخدام المنتجات التالية:

(قد تختلف التفاصيل مع المنتجات من مزودين مختلفين ولكن المفاهيم الرئيسية تظل كما هي)

مقدمة

GitLab هو منصة DevOps شاملة تتيح للفرق التعاون على الكود، وأتمتة سير العمل، وإدارة دورة حياة تطوير البرمجيات بالكامل بكفاءة. في هذا الدليل، سيتم شرح كيفية تثبيت GitLab على سيرفر لينكس.

التحضير

المتطلبات التالية موصى بها من قبل فريق GitLab الرسمي ومن الأفضل اتباع هذه المتطلبات لتجنب المشاكل لاحقًا.

الأجهزة

المكوناتالحد الأدنىالموصى به
CPU2x 2 GHz4x 2.6+ GHz
RAM4 GB8 GB
التخزين10 GB50+ GB
عرض النطاق100 mbit/s (رفع وتنزيل)100 mbit/s (رفع وتنزيل)

البرمجيات

النظام الأساسيالخيارات
نظام التشغيلأوبونتو (20.04، 22.04، 24.04)، ديبيان (10، 11، 12)، أوبن سوزي (15.5)
قاعدة البياناتPostgreSQL 14.9+
سيرفر الويبNGINX (مرفق مع GitLab)، Puma 6.4.2+
أخرىRedis 7.x+، Sidekiq 7.3.2+، Prometheus 2.54.1+
معلومات

للحصول على أدق وأحدث المعلومات حول المواصفات، يرجى الرجوع إلى وثائق متطلبات الأجهزة الرسمية من GitLab.

يجب إنشاء اتصال عبر عميل SSH لتثبيت GitLab على سيرفر لينكس الخاص بك. يرجى مراجعة دليلنا الوصول الأولي (SSH) لمعرفة المزيد.

بمجرد إنشاء الاتصال، يمكنك البدء بتثبيت الحزم اللازمة لتثبيت GitLab.

الخطوة 1: تثبيت التبعيات

أولاً، عليك تثبيت بعض التبعيات لتشغيل مثبت GitLab. استخدم الأوامر التالية لتثبيت التبعيات المطلوبة على سيرفر لينكس الخاص بك.

قم بتحديث قائمة الحزم إلى أحدث إصدار وثبت حزمة OpenSSH Server مع المتطلبات اللازمة باستخدام الأمر التالي. هذا هو كيف سيتم استضافة لوحة الويب الخاصة بـ GitLab.

sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

يمكنك أيضًا تثبيت Postfix (سيرفر SMTP) إذا كنت ترغب في إرسال إشعارات البريد الإلكتروني عند استخدام GitLab. هذا اختياري.

إذا أردت استخدام إشعارات البريد الإلكتروني، قم بتنزيل Postfix عبر الأمر التالي.

sudo apt-get install -y postfix
معلومات

أثناء تثبيت Postfix، قد تظهر شاشة إعداد. في هذه الحالة، اختر 'Internet Site' واضغط Enter. استخدم DNS الخارجي لسيرفر لينكس الخاص بك كـ 'mail name' واضغط Enter. إذا ظهرت شاشات إضافية، استمر بالضغط على Enter لقبول الإعدادات الافتراضية.

إذا أردت استخدام حل آخر لإرسال البريد الإلكتروني، تخطى هذه الخطوة وقم بإعداد سيرفر SMTP خارجي بعد تثبيت GitLab على سيرفر لينكس الخاص بك باتباع دليل رسمي من فريق GitLab.

الخطوة 2: تثبيت GitLab

بعد تنزيل وتثبيت جميع التبعيات المطلوبة، أنت الآن جاهز لتثبيت GitLab.

في هذا الدليل، سنثبت GitLab مباشرة من مستودعات الحزم الرسمية.

السكريبت التالي سيضيف مستودعات GitLab إلى مدير الحزم apt:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

بعد الانتهاء، يمكن تثبيت حزمة gitlab-ee:

sudo apt-get install -y gitlab-ee

بعد اكتمال هذه العملية، يجب أن يكون GitLab جاهزًا على سيرفر لينكس الخاص بك. تابع القسم التالي حيث ستقوم بضبط بعض الإعدادات الأساسية لضمان عمل السيرفر بشكل صحيح.

الخطوة 3: تكوين GitLab

للتأكد من أن كل شيء يعمل، يجب عليك إجراء بعض التعديلات على ملف التكوين. ابدأ بفتح ملف تكوين GitLab باستخدام محرر النصوص المفضل لديك. كمثال، سنستخدم المحرر المدمج nano.

sudo nano /etc/gitlab/gitlab.rb

بعدها، ابحث عن السطر external_url وأدخل نطاقك أو عنوان IP الخاص بسيرفر لينكس إذا لم يكن لديك نطاق لاستخدامه مع GitLab.

## GitLab URL
##! URL التي سيكون GitLab متاحًا عليها.
##! لمزيد من التفاصيل حول تكوين external_url راجع:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! ملاحظة: أثناء التثبيت/الترقيات، سيتم استخدام قيمة المتغير البيئي
##! EXTERNAL_URL لملء/استبدال هذه القيمة.
##! على مثيلات AWS EC2، نحاول أيضًا جلب اسم المضيف/عنوان IP العام
##! من AWS. لمزيد من التفاصيل، راجع:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`نطاقك / عنوان IPv4 لسيرفر لينكس الخاص بك`'

بالإضافة لذلك، نوصي بإدخال بريدك الإلكتروني في السطر letsencrypt['contact_emails']. هذا سيمكن Let's Encrypt من إرسال إشعارات والتواصل معك بخصوص شهادات SSL المجانية والتلقائية.

ملاحظة

يجب استخدام نطاق إذا أردت الحصول على شهادة SSL مجانية من Let's Encrypt. لا يمكنك طلب شهادة مباشرة على عنوان IP.

################################################################################
# تكامل Let's Encrypt
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`بريدك الإلكتروني هنا`] # يجب أن تكون مصفوفة من عناوين البريد الإلكتروني لإضافتها كجهات اتصال
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# راجع https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically لمزيد من المعلومات حول هذه الإعدادات
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # يجب أن يكون رقمًا أو تعبير كرون، إذا تم تحديده.
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
نصيحة

يمكنك استخدام CTRL+W للبحث عن letsencrypt['contact_emails'] والضغط Enter لتسهيل العثور على السطر دون البحث يدويًا في الملف بأكمله.

عند الانتهاء، اضغط CTRL+X ثم Y ثم Enter لتأكيد التغييرات.

أخيرًا، شغّل الأمر التالي لإعادة تكوين GitLab باستخدام الإعدادات الجديدة.

sudo gitlab-ctl reconfigure

قد تستغرق هذه العملية بعض الوقت لأنها ستقوم بتهيئة GitLab باستخدام معلومات التكوين المحدثة، مع عمليات تلقائية. كما سيتم إصدار شهادات SSL إذا تم استخدام نطاق.

الخطوة 4: الوصول إلى واجهة الويب

بعد التهيئة، يجب أن يكون السيرفر متاحًا الآن عبر متصفح الويب. انتقل إلى موقعك بإدخال اسم النطاق أو عنوان IP كما يلي.

https://[نطاقك] OR http://[عنوان IP الخاص بك]

عند الدخول لأول مرة إلى واجهة الويب، ستظهر لك صفحة تسجيل الدخول.

للحصول على صلاحيات المدير في أول تسجيل دخول، قم بتسجيل الدخول كمستخدم root باستخدام اسم المستخدم root.

بالنسبة لكلمة المرور، يجب الوصول إلى ملف على سيرفر لينكس حيث يتم تخزينها. افتح الملف باستخدام الأمر التالي وابحث عن حقل Password.

sudo nano /etc/gitlab/initial_root_password
# تحذير: هذه القيمة صالحة فقط في الحالات التالية

# 1. إذا تم توفيرها يدويًا (إما عبر متغير البيئة `GITLAB_ROOT_PASSWORD` أو عبر إعداد `gitlab_rails['initial_root_password']` في `gitlab.rb`، وتم توفيرها قبل تهيئة قاعدة البيانات لأول مرة)

# 2. لم يتم تغيير كلمة المرور يدويًا، سواء عبر واجهة المستخدم أو عبر سطر الأوامر.

#

# إذا لم تعمل كلمة المرور المعروضة هنا، يجب إعادة تعيين كلمة مرور المدير باتباع https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: `[كلمة المرور الخاصة بك هنا]`

# ملاحظة: سيتم حذف هذا الملف تلقائيًا في أول تشغيل لإعادة التهيئة بعد 24 ساعة.

أدخل اسم المستخدم وكلمة المرور في صفحة تسجيل الدخول للدخول إلى لوحة المعلومات الخاصة بـ GitLab لأول مرة. يجب أن تكون قادرًا الآن على الوصول إلى لوحة GitLab على سيرفر لينكس الخاص بك.

ننصح بشدة بإنشاء مستخدم جديد و/أو تغيير كلمة مرور مستخدم root. يمكن فعل ذلك عبر الدخول إلى Admin في الزاوية السفلية اليسرى واختيار Overview->Users. في هذه الصفحة، يمكنك إدارة المستخدمين لحالة GitLab الخاصة بك.

اختياري: إعداد جدار ناري باستخدام ufw

يمكنك تخطي هذا إذا لم ترغب في إعداد جدار ناري أو، على سبيل المثال، تستخدم firewalld بالفعل على أوبن سوزي. تأكد من السماح بالوصول إلى المنافذ 80/443 و22.

تثبيت ufw

إذا كنت قد ثبتت ufw مسبقًا، يمكنك تخطي هذه الخطوة بأمان.

sudo apt-get install -y ufw

فتح المنافذ المطلوبة

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

تفعيل جدار الحماية

تحذير

بشكل افتراضي، سيقوم هذا بحظر الوصول إلى جميع المنافذ ما عدا المسموح بها. تأكد من إعداد القائمة البيضاء بشكل صحيح قبل تشغيل هذا الأمر.

لتفعيل جدار الحماية، استخدم الأمر التالي.

sudo ufw enable

الخاتمة

تهانينا، لقد قمت بتثبيت GitLab بنجاح! إذا كان لديك أي أسئلة أو مشاكل إضافية، يرجى التواصل مع فريق الدعم لدينا، المتوفر لمساعدتك يوميًا!

إذا أردت إجراء إعدادات إضافية، نوصي بقراءة الوثائق الرسمية لـ GitLab للخطوات التالية.