گیت لب (GitLab) یک ابزار قدرتمند و متنباز برای مدیریت کد منبع است که به شما اجازه میدهد پروژههای نرمافزاری خود را در یک محیط کنترلشده و تیمی مدیریت کنید. در واقع، GitLab چیزی فراتر از یک سیستم کنترل نسخه است؛ این پلتفرم مجموعهای از ابزارهای DevOps را در اختیارتان قرار میدهد که شامل مدیریت ریپازیتوریها، CI/CD، ردیابی باگها، مدیریت کاربران و حتی میزبانی کد در سرور شخصیتان است. در این مقاله به صورت گامبهگام یاد میگیریم چطور گیت لب را روی اوبونتو 20.04 نصب و پیکربندی کنیم. پس اگر قصد دارید روی سرور شخصی یا هاست GitLab خود، یک محیط خصوصی برای توسعه تیمتان ایجاد کنید، تا انتهای این راهنما با ما همراه باشید.
چرا گیت لب را روی سرور شخصی نصب کنیم؟
گیت لب به شما آزادی میدهد تا همهی دادههای پروژهتان را روی سرور خودتان نگه دارید. برخلاف سرویسهای عمومی مانند GitHub، در GitLab کنترل کامل بر دسترسیها، امنیت و زیرساخت دارید. با میزبانی گیت لب روی سرور خود یا حتی یک هاست GitLab، میتوانید:
- پروژههای سازمان را در محیطی امن مدیریت کنید؛
- کاربران و سطوح دسترسی را بهصورت دلخواه تعریف کنید؛
- از CI/CD داخلی برای استقرار خودکار استفاده کنید؛
- بهصورت کامل از دادههای خود پشتیبانگیری کنید.
پیشنیازهای نصب گیت لب روی اوبونتو 20.04
برای شروع نصب، چند پیشنیاز مهم وجود دارد که باید قبل از اجرای مراحل بعدی فراهم کنید:
- یک سرور اوبونتو 20.04 با دسترسی sudo (غیر از کاربر root).
- فایروال ufw فعال برای کنترل ترافیک ورودی.
- دامنه اختصاصی که به آیپی سرور شما اشاره کند (در این آموزش از دامنهی فرضی
inoserver.com
استفاده شده است). - حداقل منابع سختافزاری پیشنهادی توسط 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
). این تنظیم برای ارسال ایمیلهای اطلاعرسانی گیت لب استفاده میشود.
گام دوم: نصب GitLab CE روی اوبونتو
پس از آماده شدن وابستگیها، وقت نصب خود گیت لب است. در این آموزش از نسخهی 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 حجیم است و ممکن است نصب آن چند دقیقه طول بکشد. در طول نصب، همهی سرویسهای لازم بهصورت خودکار اضافه میشوند.
گام سوم: تنظیم فایروال (Firewall)
گیت لب یک وباپلیکیشن است، بنابراین باید مطمئن شوید که فایروال اجازهی ترافیک روی پورتهای 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
گام چهارم: ویرایش فایل پیکربندی GitLab
اکنون زمان آن است که گیت لب را برای دامنهی خود پیکربندی کنیم. فایل تنظیمات اصلی گیت لب در مسیر /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 را نیز برای دامنه شما فعال میکند.
گام پنجم: ورود به GitLab از طریق مرورگر
پس از نصب موفقیتآمیز، مرورگر را باز کرده و آدرس دامنه را به شکل زیر وارد کنید:
https://your_domain
در اولین بار ورود، صفحهی لاگین GitLab برایتان باز میشود. برای وارد شدن باید از یوزرنیم root
استفاده کنید. رمز عبور اولیه در فایل زیر ذخیره شده است:
sudo nano /etc/gitlab/initial_root_password
در این فایل مقدارPassword:
را کپی کنید و در صفحهی ورود وارد نمایید. سپس به راحتی وارد داشبورد اصلی GitLab میشوید.
گام ششم: تغییر رمز عبور و اطلاعات کاربری
بعد از اولین ورود، بهتر است رمز عبور خود را بلافاصله تغییر دهید. برای این کار از منوی بالا روی آیکون کاربر کلیک کرده و گزینهی Edit Profile را انتخاب کنید.
در منوی سمت چپ روی Password کلیک کنید، رمز جدید خود را وارد کنید و دکمهی Save Password را بزنید.
در همین بخش میتوانید ایمیل و نام کاربری خود را نیز تغییر دهید تا پروفایلتان شخصیتر شود.
گام هفتم: افزودن کلید SSH
برای اینکه بتوانید از ترمینال یا ابزارهای 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 کلیک کنید. در صورت نیاز میتوانید محدودیت ایجاد پروژه برای کاربران جدید را هم به صفر برسانید تا فقط مدیران بتوانند پروژه بسازند.
تمدید خودکار گواهی SSL (Let’s Encrypt)
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 تهیه کنید تا همواره از پشتیبانی، امنیت و عملکرد بالا برخوردار باشید.