ابتدا یک سرور ubuntu راه اندازی می کنیم، در زمانی که من این یادداشت را می نویسم، نسخه ی به روز و متداول ورژن 24 است.
با توجه به اینکه گیت لب، نیاز به پورت های 80، 443 و 22 دارد، پورت ssh پیشفرض سرور را از 22 به 2022 تغییر میدهیم.
برای تغییر پورت ssh، باید یه نگاهی به فایل sshd_config که در مسیر /etc/ssh قرار دارد بیندازیم.
cat /etc/ssh/sshd_config
در فایل sshd_config باید خط مربوط به port را که در تصویر فوق با فلش قرمز مشخص شده را از حالت کامنت با حذف # خارج کنیم و سپس پورت مورد نظر را به جای عدد 22 بنویسیم.
اگر فایروال فعال است باید پورت جدید را در فایروال باز کنیم و سپس سرویس ssh را ریستارت کنیم. مثلا اگر پورت جدید 2022 باشد، دستورات به شکل زیر خواهند بود.
sudo ufw allow 2022/tcp sudo systemctl restart ssh
بعد از این عمل، میتونید سرور را هم یکبار ریستارت کنید
sudo reboot
خب حالا دیگه باید با پورت جدید به سرور متصل شوید.
باید برای اینکه نصب را شروع کنیم، ابتدا docker engine را روی سرور نصب کنیم، اگر سرور شما در ایران باشد، با توجه به حال و روز اینترنت احتمالا در دانلود برخی پکیج ها یا توجه یه تحریم ها مشکل داشته باشید. لذا بهتر هست که قبل از ادامه ی کار، یک وی پی ان راه اندازی کنید، یا با تغییر dns به یکی از dns های مخصوص رفع تحریم مانند شکن shecan.ir کار را کمی راحت تر کنید.
تغییر dns را احتمالا باید به کمک netplan انجام دهید.
برای این موضوع در جاهای مختلف راهنما قرار دارد.
در ادامه باید داکر رو نصب کنید
حالا که داکر را راه اندازی کرده اید باید یک فایل داکر کامپوز در یک مسیر مناسب درست کنید برای گیت لب
به جای localhost اسم دامنه یا زیردامنه مورد نظر خود را بگذارید و آی پی آن زیر دامنه را به سرور خود تنظیم کنید.
version: '3.6' services: web: image: 'gitlab/gitlab-ee:latest' restart: always hostname: 'localhost' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://localhost' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '22:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'
با توجه به اینکه اینجا محتوای فایل درست نمایش داده نمی شود، می توانید محتوای دقیق آن را از لینک گیت هاب من بردارید = در گیت هاب navidfaridi را جستجو کنید و از ریپوزیتوری DockerCompose-Samples یک کپی برای خودتون بردارید
همچنین کاربر خود رو به گروه کاربران داکر با دستور زیر اضافه کنید
sudo usermod -aG docker $USER
قبل از اینکه این فایل را با استفاده از داکر کامپوز اجرا کنید، باید پارامتر GITLAB_HOME را در متغیرهای محیطی (environment) تعریف کنید و برای آن یک مسیر تعیین کنید.
برای این منظور یک فایل .env در کنار فایل داکر کامپوز بسازید و محتوای آن را برابر زیر قراردهید
GITLAB_HOME=/srv/gitlab
حالا در محلی که فایل داکر کامپوز را قرار داده اید، با دستور زیر کار نصب را آغاز کنید
sudo docker compose up -d
بعد از راه اندازی گیت لب با استفاده از دستور زیر می توانید رمز کاربر root را بدست بیاورید
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
البته به جای gitlab در دستور فوق باید نام کانتینر یا کد آن را جایگزین کنید تا دستور به درستی کار کند
در آدرسی که برای GITLAB_HOME در نظر گرفته اید، پس از راه اندازی تعدادی فولدر و فایل قرار خواهد گرفت، یک فولدر config خواهد بود که در آن فایلی به نام gitlab.rb وجود دارد، چنانچه مایل باشید که گیت لب با استفاده از Lets Encrypt وضعیت ssl را به روز رسانی کند، کلمه Lets را در آن جستجو کنید و خطوط مربوط به آن را از کامنت خارج کنید، مطابق تصویر زیر