بلاگ/GitLab خودمیزبان برای تیم‌های کوچک: نصب یک‌کلیکی روی سرور ابری آریانت
به‌روز شده

GitLab خودمیزبان برای تیم‌های کوچک: نصب یک‌کلیکی روی سرور ابری آریانت

1405/08/130 بازدید
GitLab خودمیزبان برای تیم‌های کوچک: نصب یک‌کلیکی روی سرور ابری آریانت

GitLab خودمیزبان برای تیم‌های کوچک: نصب یک‌کلیکی روی سرور ابری آریانت

یک تیم برنامه‌نویسی کوچک معمولا دیر یا زود به جایی می‌رسد که GitLab.com دیگر جواب نمی‌دهد: محدودیت تعداد کاربر، هزینهٔ سرانه، یا فقط این حس که کد و تاریخچهٔ تجاری تیم روی سرور یک شرکت دیگر باشد. راه‌حل این‌جا GitLab خودمیزبان است؛ همان GitLab CE اما روی سروری که خودتان کنترلش را دارید.

سرور ابری آریانت با GitLab خودمیزبان نصب‌شده

GitLab خودمیزبان چیست و چه فرقی با GitLab.com دارد

GitLab.com نسخهٔ ابری و عمومی GitLab است؛ ثبت‌نام می‌کنید و روی سرورهای خودِ GitLab کار می‌کنید. GitLab خودمیزبان یعنی همان نرم‌افزار — همان ریپازیتوری‌ها، merge request‌ها، issue tracker و CI/CD — اما نصب‌شده روی سروری که متعلق به شماست.

برای تیم‌های کوچک این تفاوت چند جا خودش را نشان می‌دهد: هیچ محدودیتی روی تعداد کاربر یا دقیقهٔ CI وجود ندارد، داده‌ها جای مشخصی دارند، و هزینه به ازای سرور حساب می‌شود نه به ازای نفر. در عوض، نگهداری سرور (آپدیت، مانیتورینگ، فضای دیسک) هم با خودتان است.

چرا نصب یک‌کلیکی و نه نصب دستی

نصب دستی GitLab روی یک سرور خالی چند مرحله دارد: انتخاب نسخه، تنظیم Nginx یا پراکسی، گواهی SSL، تنظیم ایمیل داخلی، و بعد هر بار آپدیت دوباره همین مسیر. ایمیجی که روی سرور ابری آریانت برای GitLab CE آماده شده همین کارها را از قبل انجام داده: یک Ubuntu 24.04 با GitLab نصب‌شده، تنظیم‌شده و با رمز مخصوص همان سرور ساخته‌شده در اولین بوت.

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

حداقل پلن سرور برای GitLab خودمیزبان

GitLab نسبت به بقیهٔ اپلیکیشن‌های یک‌کلیکی آریانت به منابع بیشتری نیاز دارد، چون همزمان چند سرویس (دیتابیس، Redis، worker‌های پس‌زمینه، و اگر runner روی همان سرور باشد، خود CI) را اجرا می‌کند. حداقل پلن رسمی ۲ هسته پردازشی، ۴ گیگابایت رم و ۴۰ گیگابایت فضا است.

برای این‌که این عدد را در بافتار بقیهٔ اپ‌ها ببینید:

اپلیکیشنحداقل پلن
وردپرس۱ vCPU، ۱ گیگابایت رم، ۲۰ گیگابایت فضا
n8n / WireGuard۱ vCPU، ۲ یا ۱ گیگابایت رم، ۲۰ گیگابایت فضا
Docker CE۱ vCPU، ۱ گیگابایت رم، ۲۰ گیگابایت فضا
Coolify۲ vCPU، ۴ گیگابایت رم، ۴۰ گیگابایت فضا
GitLab CE۲ vCPU، ۴ گیگابایت رم، ۴۰ گیگابایت فضا

برای یک تیم دو تا پنج‌نفره همین پلن حداقلی معمولا کافی است. اگر تعداد ریپازیتوری یا pipeline‌های CI زیاد شد، مصرف رم را با free -h چک کنید؛ وقتی سوآپ دائم در حال استفاده است یعنی وقت ارتقای پلن رسیده.

مراحل نصب یک‌کلیکی روی سرور ابری آریانت

سرور را در دیتاسنتر آلمان (فرانکفورت) آریانت سفارش می‌دهید، در مرحلهٔ انتخاب اپلیکیشن GitLab CE را می‌زنید، و پلن حداقل یا بالاتر را انتخاب می‌کنید. از این‌جا سه نکته مهم است:

  • اگر هنگام سفارش رمز روت تعیین کرده باشید، رمز ورود به GitLab همان رمز است.
  • اگر به‌جای رمز از کلید SSH استفاده کرده‌اید، رمز اختصاصی GitLab در فایل /root/APP-INFO.txt روی خود سرور نوشته شده.
  • تغییر رمز روت از پنل بعدا رمز GitLab را عوض نمی‌کند — آن رمز همان‌جا در فایل باقی می‌ماند.

بین ۱۵ تا ۲۵ دقیقه بعد از فعال شدن سرور، GitLab آماده است. ورود با نام کاربری root انجام می‌شود، و git از طریق SSH روی همان پورت ۲۲ سرور کار می‌کند — یعنی برای push و pull هیچ تنظیم اضافه‌ای لازم نیست. برای سخت‌تر کردن همین دسترسی SSH (غیرفعال کردن ورود با رمز، اضافه کردن fail2ban) می‌توانید بعدا طبق این راهنمای امن‌سازی SSH عمل کنید.

پنل سرور ابری آریانت با اطلاعات ورود GitLab خودمیزبان

اتصال دامنه و HTTPS

از همان لحظهٔ آماده شدن، GitLab روی یک آدرس موقت که در پنل نشان داده می‌شود با HTTPS کار می‌کند؛ برای تست اولیه کافی است. برای دامنهٔ دائمی تیم، دو کار باقی می‌ماند:

  1. یک رکورد A برای دامنه به آی‌پی سرور بزنید.
  2. روی سرور دستور nexoran-app-domain <دامنه> را اجرا کنید.

گواهی Let's Encrypt بعد از این دستور صادر می‌شود و در صورت شکست هر ۱۵ دقیقه دوباره تلاش می‌کند — معمولا فقط چند دقیقه طول می‌کشد تا دامنهٔ شخصی‌تان روی GitLab بالا بیاید.

نکاتی که قبل از استفادهٔ روزمره باید بدانید

چند نکتهٔ عملی که معمولا بعدا به مشکل تبدیل می‌شود اگر از اول چک نشود:

  • سرورهای ابری آریانت در آلمان بک‌آپ یا اسنپ‌شات خودکار ندارند؛ برای GitLab این یعنی باید خودتان یک روتین بک‌آپ (مثلا gitlab-backup create به‌صورت زمان‌بندی‌شده و انتقال فایل خروجی به جای دیگر) تنظیم کنید.
  • پورت خروجی ۲۵ روی این سرورها بسته است؛ اگر GitLab برای نوتیفیکیشن ایمیل نیاز به SMTP دارد، از پورت ۴۶۵ یا ۵۸۷ استفاده کنید.
  • نسخهٔ GitLab را به‌روز نگه دارید؛ یک باگ بحرانی اجرای کد از راه دور (CVE-2026-97229) نشان داد نصب خودمیزبان یعنی وصله کردن هم با خود شماست.
  • اگر بعدا خواستید CI runner جداگانه اضافه کنید، راه‌اندازی GitLab Runner خودمیزبان را ببینید؛ یا اگر سرویس دیگری (مثلا یک اپ Docker CE) کنار GitLab لازم دارید، فهرست کامل اپ‌های یک‌کلیکی در مارکت‌پلیس آریانت را ببینید.
  • پلن سرور را هر وقت لازم شد می‌توانید از همان صفحهٔ سرور ابری بالا ببرید، بدون نیاز به کوچ کردن GitLab به سرور دیگر.

جمع‌بندی

برای یک تیم کوچک که می‌خواهد کد و CI/CD را زیر کنترل خودش نگه دارد، GitLab خودمیزبان روی یک سرور ابری ارزان‌تر و باز‌تر از نسخهٔ سرانه‌ای است، به شرط این‌که از همان اول پلن درست را بردارید و بک‌آپ را خودتان مدیریت کنید. نصب یک‌کلیکی همان بخش سخت ماجرا — راه‌اندازی اولیه — را حذف می‌کند.

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

سؤالات متداول

آیا GitLab خودمیزبان برای تیم دو تا سه‌نفره به‌صرفه است؟ بله، چون هزینه به ازای سرور است نه به ازای کاربر؛ با پلن حداقل (۲ vCPU، ۴ گیگابایت رم) همین تیم بدون محدودیت کاربر یا دقیقهٔ CI کار می‌کند.

نصب GitLab روی سرور ابری آریانت چقدر طول می‌کشد؟ بین ۱۵ تا ۲۵ دقیقه بعد از فعال شدن سرور. قبل از آن سرویس هنوز در حال تکمیل راه‌اندازی است.

رمز ورود به GitLab از کجا می‌آید؟ اگر هنگام سفارش رمز روت تعیین کرده باشید، همان رمز است؛ در غیر این صورت رمز در فایل /root/APP-INFO.txt روی سرور نوشته شده. تغییر رمز روت در پنل بعدا این رمز را تغییر نمی‌دهد.

می‌شود دامنهٔ شخصی را روی GitLab وصل کرد؟ بله، با یک رکورد A به آی‌پی سرور و اجرای دستور nexoran-app-domain <دامنه> روی خود سرور؛ گواهی SSL به‌صورت خودکار صادر می‌شود.