آموزش نصب و پیکربندی گیت لب روی اوبونتو

گیت لب (GitLab) یک ابزار قدرتمند و متن‌باز برای مدیریت کد منبع است که به شما اجازه می‌دهد پروژه‌های نرم‌افزاری خود را در یک محیط کنترل‌شده و تیمی مدیریت کنید. در واقع، GitLab چیزی فراتر از یک سیستم کنترل نسخه است؛ این پلتفرم مجموعه‌ای از ابزارهای DevOps را در اختیارتان قرار می‌دهد که شامل مدیریت ریپازیتوری‌ها، CI/CD، ردیابی باگ‌ها، مدیریت کاربران و حتی میزبانی کد در سرور شخصی‌تان است. در این مقاله به صورت گام‌به‌گام یاد می‌گیریم چطور گیت لب را روی اوبونتو 20.04 نصب و پیکربندی کنیم. پس اگر قصد دارید روی سرور شخصی یا هاست GitLab خود، یک محیط خصوصی برای توسعه تیم‌تان ایجاد کنید، تا انتهای این راهنما با ما همراه باشید.

گیت لب به شما آزادی می‌دهد تا همه‌ی داده‌های پروژه‌تان را روی سرور خودتان نگه دارید. برخلاف سرویس‌های عمومی مانند GitHub، در GitLab کنترل کامل بر دسترسی‌ها، امنیت و زیرساخت دارید. با میزبانی گیت لب روی سرور خود یا حتی یک هاست GitLab، می‌توانید:

برای شروع نصب، چند پیش‌نیاز مهم وجود دارد که باید قبل از اجرای مراحل بعدی فراهم کنید:

  1. یک سرور اوبونتو 20.04 با دسترسی sudo (غیر از کاربر root).
  2. فایروال ufw فعال برای کنترل ترافیک ورودی.
  3. دامنه اختصاصی که به آی‌پی سرور شما اشاره کند (در این آموزش از دامنه‌ی فرضی inoserver.com استفاده شده است).
  4. حداقل منابع سخت‌افزاری پیشنهادی توسط GitLab:
    • پردازنده‌ی 4 هسته‌ای
    • 4 گیگابایت RAM

⚠️ هرچند می‌توان گیت لب را روی سیستم‌های ضعیف‌تر هم نصب کرد، اما توصیه می‌شود از swap برای جبران کمبود رم استفاده نکنید، چون کارایی سرور به شدت افت می‌کند.

اگر هنوز سروری تهیه نکرده‌اید، می‌توانید از یک سرور ابری یا هاست GitLab استفاده کنید تا همه تنظیمات پایه مثل SSH و DNS به‌صورت خودکار انجام شوند.

قبل از نصب گیت لب، لازم است چند پکیج ضروری را روی اوبونتو نصب کنید تا فرایند نصب و پیکربندی بدون خطا پیش برود. ابتدا لیست پکیج‌ها را به کمک دستور زیر آپدیت کنید:

sudo apt update

سپس سرتیفیکیت‌های موردنیاز را به کمک دستور زیر نصب نمایید:

sudo apt install ca-certificates curl openssh-server postfix tzdata perl

در هنگام نصب Postfix، نوع نصب را روی گزینه‌ی Internet Site قرار دهید. سپس از شما خواسته می‌شود نام دامنه‌ی سرور را وارد کنید (مثلاً gitlab.inoserver.com). این تنظیم برای ارسال ایمیل‌های اطلاع‌رسانی گیت لب استفاده می‌شود.

پس از آماده شدن وابستگی‌ها، وقت نصب خود گیت لب است. در این آموزش از نسخه‌ی Community Edition (CE) استفاده می‌کنیم که کاملاً رایگان و متن‌باز است. برای نصب ابتدا به کمک دستور زیر به دایرکتوری /tmp بروید:

cd /tmp

حالا اسکریپت نصب رسمی GitLab را با اجرای دستور زیر دانلود کنید:

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

اگر مایل هستید قبل از اجرا، محتوای اسکریپت را بررسی کنید دستور زیر را اجرا کنید:

less /tmp/script.deb.sh

بعد از بررسی و اطمینان از صحت فایل، مخازن GitLab را به کمک دستور زیر اضافه کنید:

sudo bash /tmp/script.deb.sh

حالا می‌توانید با استفاده از دستور apt گیت لب را نصب کنید:

sudo apt-get install gitlab-ce

توجه داشته باشید که بسته‌ی GitLab حجیم است و ممکن است نصب آن چند دقیقه طول بکشد. در طول نصب، همه‌ی سرویس‌های لازم به‌صورت خودکار اضافه می‌شوند.

گیت لب یک وب‌اپلیکیشن است، بنابراین باید مطمئن شوید که فایروال اجازه‌ی ترافیک روی پورت‌های HTTP (80) و HTTPS (443) را می‌دهد. برای بررسی وضعیت فعلی فایروال دستور زیر را اجرا کنید:

sudo ufw status

اگر فقط SSH فعال است، دستورات زیر را برای باز کردن پورت‌های لازم وارد کنید:

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

سپس مجدداً وضعیت را با اجرای دستور زیر بررسی کنید:

sudo ufw status

اگر در خروجی خطوطی مشابه زیر دیدید، یعنی تنظیمات شما درست است:

OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere

اکنون زمان آن است که گیت لب را برای دامنه‌ی خود پیکربندی کنیم. فایل تنظیمات اصلی گیت لب در مسیر /etc/gitlab/gitlab.rb قرار دارد. فایل را با اجرای دستور زیر باز کنید:

sudo nano /etc/gitlab/gitlab.rb

عبارت زیر را پیدا کرده و مقدار external_url را با دامنه‌ی خود جایگزین کنید. مطمئن شوید که بجای http از https استفاده شود تا کاربران به طور خودکار به سایتی که توسط گواهی Let’s Encrypt محافظت می‌شود هدایت شوند.

در قدم بعدی، تنظیمات letsencrypt[‘contact_emails’] را پیدا کنید. اگر از ادیتور nano استفاده می کنید، برای فعال کردن پنجره جستجو، می‌توانید کلیدهای CTRL+W را فشار دهید. دستور letsencrypt[‘contact_emails’] داخل پنجره ی باز شده تایپ کنید، سپس اینتر را بزنید.

این تنظیم را غیرفعال کرده و ایمیل‌های خود را در آن بنویسید تا در صورت بروز هر گونه مشکلی مطلع شوید:

letsencrypt['contact_emails'] = ['sammy@example.com']

فایل را با فشردن همزمان کلید های Ctrl و X، سپس Y و Enter ذخیره کرده و ببندید. حالا گیت لب را با اجرای دستور زیر با پیکربندی جدید راه‌اندازی کنید:

sudo gitlab-ctl reconfigure

این دستور تمام سرویس‌ها را با تنظیمات جدید اجرا کرده و گواهی SSL را نیز برای دامنه شما فعال می‌کند.

پس از نصب موفقیت‌آمیز، مرورگر را باز کرده و آدرس دامنه را به شکل زیر وارد کنید:

https://your_domain

در اولین بار ورود، صفحه‌ی لاگین GitLab برایتان باز می‌شود. برای وارد شدن باید از یوزرنیم root استفاده کنید. رمز عبور اولیه در فایل زیر ذخیره شده است:

 sudo nano /etc/gitlab/initial_root_password

در این فایل مقدارPassword: را کپی کنید و در صفحه‌ی ورود وارد نمایید. سپس به راحتی وارد داشبورد اصلی GitLab می‌شوید.

بعد از اولین ورود، بهتر است رمز عبور خود را بلافاصله تغییر دهید. برای این کار از منوی بالا روی آیکون کاربر کلیک کرده و گزینه‌ی Edit Profile را انتخاب کنید.

در منوی سمت چپ روی Password کلیک کنید، رمز جدید خود را وارد کنید و دکمه‌ی Save Password را بزنید.

در همین بخش می‌توانید ایمیل و نام کاربری خود را نیز تغییر دهید تا پروفایل‌تان شخصی‌تر شود.

برای اینکه بتوانید از ترمینال یا ابزارهای Git به ریپازیتوری‌های خود دسترسی پیدا کنید، لازم است کلید SSH خود را به حساب‌تان اضافه نمایید. اگر قبلاً کلید ساخته‌اید، با دستور زیر می توانید کلید عمومی را مشاهده کنید:

cat ~/.ssh/id_rsa.pub

اگر خروجی دستور فوق خطای زیر را نمایش داد، یعنی کلید SSH هنوز ساخته نشده است:

cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

در این صورت به کمک دستور زیر کلید جدیدی بسازید:

ssh-keygen

سپس دوباره کلید را با اجرای دستور زیر ببینید:

cat ~/.ssh/id_rsa.pub

اکنون متن نمایش داده‌شده را کپی کرده و در بخش SSH Keys داخل پنل کاربری GitLab قرار دهید. بعد از این کار، می‌توانید بدون وارد کردن رمز عبور، پروژه‌ها را کلون یا پوش کنید.

به‌صورت پیش‌فرض، گیت لب به کاربران اجازه می‌دهد تا حساب جدید ایجاد کنند. اگر قصد دارید فقط اعضای تیم خودتان دسترسی داشته باشند، بهتر است این قابلیت را غیرفعال کنید. برای این کار در گیت لب به مسیر زیر بروید:

Admin → Settings → Sign-up Restrictions

سپس تیک گزینه‌ی Sign-up enabled را بردارید و روی Save changes کلیک کنید. در صورت نیاز می‌توانید محدودیت ایجاد پروژه برای کاربران جدید را هم به صفر برسانید تا فقط مدیران بتوانند پروژه بسازند.

GitLab به‌صورت پیش‌فرض گواهی‌های Let’s Encrypt را هر چهار روز تمدید می‌کند. اگر می‌خواهید این بازه را تغییر دهید، کافی است فایل پیکربندی زیر را ویرایش کنید:

sudo nano /etc/gitlab/gitlab.rb

سپس بخش زیر را تنظیم کنید:

letsencrypt['contact_emails'] = ['sammy@digitalocean']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

همچنین می‌توانید تمدید خودکار را با تغییر letsencrypt[‘auto_renew’] به false غیرفعال کنید.

letsencrypt['auto_renew'] = false

با اجرای این مراحل، شما موفق به نصب یک نسخه‌ی کامل از گیت لب روی سرور یا هاست اوبونتو خود شده‌اید.
اکنون می‌توانید پروژه‌ها را ایمپورت کرده، تیم توسعه را اضافه کنید و فرآیندهای CI/CD را روی سرور خودتان اجرا نمایید.

گیت لب یک ابزار فوق‌العاده برای سازمان‌ها و تیم‌های توسعه است که می‌خواهند کنترل کامل بر داده‌ها و کدهای خود داشته باشند. اگر هنوز از سرور شخصی استفاده نمی‌کنید، پیشنهاد می‌شود یک هاست GitLab تهیه کنید تا همواره از پشتیبانی، امنیت و عملکرد بالا برخوردار باشید.

خروج از نسخه موبایل