Спестете 15% от всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код: Skills За начало
Заглавия
Linux Администрация

Как да инсталирате GitLab на Ubuntu: Пълно ръководство стъпка по стъпка

GitLab е една от най-мощните платформи с отворен код за DevOps, налична днес, предлагаща всеобхватен набор от инструменти, включително Git-базирана система за управление на версии, конвейери за непрекъсната интеграция/непрекъсната доставка (CI/CD), проследяване на проблеми и функции за сътрудничество на екипа — всичко под един покрив. Независимо дали управлявате малък екип за разработка или стартирате софтуерни проекти в мащаб на предприятие, самостоятелното хостване на GitLab на Ubuntu ви дава пълен контрол над вашите данни, работни процеси и инфраструктура.

Това ръководство ви преведе през всяка стъпка на инсталирането и конфигурирането на GitLab Community Edition (CE) на Ubuntu сървър, от начална подготовка на системата до активиране на HTTPS и управление на услуги.

Предварителни изисквания

Преди да започнете, уверете се, че имате следното:

  • Сервър, работещ на Ubuntu 20.04 или 22.04 LTS (препоръчва се свежа инсталация)
  • Минимум 4 GB RAM и 2 CPU ядра (GitLab препоръчва поне 4 ядра за производствено използване)
  • Root или sudo достъп до сървъра
  • Регистрирано доменно име, сочещо към IP адреса на вашия сервър (опционално, но силно препоръчано за HTTPS)
  • Портове 80 и 443 отворени във вашия firewall

> Съвет: За най-добра производителност на GitLab, помислете за внедряване на VPS Hosting план с достатъчно RAM и CPU ресурси. AlexHost VPS планите са оптимизирани за Linux работни натоварвания и идват с пълен root достъп, което ги прави идеална среда за самостоятелно хоствани DevOps платформи като GitLab.

Стъпка 1: Актуализиране на системните пакети

Преди инсталирането на какъвто и да е софтуер, е критично да се уверите, че индексът на пакетите на вашата система и инсталираните пакети са напълно актуализирани. Това предотвратява конфликти на зависимостите и гарантира, че работите с най-новите пачове за сигурност.

sudo apt update && sudo apt upgrade -y

Изчакайте процесът на актуализиране да завърши, преди да преминете към следващия стъпка.

Стъпка 2: Инсталиране на необходимите зависимости

GitLab изисква няколко поддържащи пакета, за да функционира правилно, включително инструменти за защитена комуникация, управление на часовите зони и скриптване. Инсталирайте ги със следната команда:

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

Ето какво прави всеки пакет:

ПакетПредназначение
curlИзтегля скриптове и файлове от интернет
openssh-serverАктивира SSH достъп до вашия сървър
ca-certificatesВалидира SSL/TLS сертификати
tzdataПредоставя данни за часови зони
perlНеобходим за вътрешните скриптове на GitLab

Стъпка 3: Добавяне на официалното хранилище на GitLab

GitLab поддържа официално хранилище на пакети, което улеснява инсталацията и бъдещите актуализации. Използвайте следната команда, за да изтеглите и изпълните скрипта за настройка на хранилището:

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

Този скрипт автоматично:

  • Открива вашата версия на Ubuntu
  • Добавя хранилището на пакети GitLab към вашите APT източници
  • Импортира GPG ключа за подписване на хранилището за проверка на пакетите

След завършване на скрипта, вашата система е готова да инсталира GitLab директно от официалния източник.

Стъпка 4: Инсталирайте GitLab Community Edition

Сега инсталирайте GitLab CE, използвайки apt package manager. Трябва да зададете EXTERNAL_URL променливата на окръжението на URL адреса или IP адреса, чрез които потребителите ще имат достъп до вашия GitLab екземпляр.

Ако имате доменно име:

sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ce

Ако използвате IP адрес (например за локален или частен сървър):

sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ce

Заменете gitlab.yourdomain.com или YOUR_SERVER_IP с вашия действителен домен или IP адрес.

> Забележка: Процесът на инсталация може да отнеме няколко минути, тъй като изтегля и конфигурира всички GitLab компоненти, включително PostgreSQL, Redis, NGINX и Sidekiq.

По време на инсталацията GitLab ще:

  • Инсталира всички включени услуги (база данни, кеш, уеб сървър и т.н.)
  • Се конфигурира въз основа на EXTERNAL_URL, който сте предоставили
  • Генерира начални конфигурационни файлове в /etc/gitlab/

Стъпка 5: Стартирайте преконфигурирането на GitLab

След инсталацията стартирайте командата за преконфигуриране, за да завършите настройката, инициализирате базата данни и стартирате всички услуги на GitLab:

sudo gitlab-ctl reconfigure

Тази команда чете конфигурацията от /etc/gitlab/gitlab.rb и прилага всички настройки. Тя също генерира SSL сертификати (ако Let’s Encrypt е конфигуриран), настройва схемата на базата данни и стартира всички необходими фонови услуги.

Трябва да видите дълг изход, завършващ с съобщение, подобно на:

gitlab Reconfigured!

Стъпка 6: Достъп до GitLab в Вашия уеб браузър

След завършване на преконфигурирането отворете вашия уеб браузър и навигирайте до URL адреса, който сте посочили по време на инсталацията:

https://gitlab.yourdomain.com

или

http://YOUR_SERVER_IP

Първо влизане

При първото посещение GitLab ще ви подкани да зададете парола на администратор. След като я зададете, влезте, като използвате следните идентификационни данни:

  • Потребителско име: root
  • Парола: Паролата, която току-що създадохте

> Съвет за сигурност: Променете идентификационните данни на акаунта root веднага след първото си влизане. Създайте личен администраторски акаунт и ограничете акаунта root само за спешна употреба.

Стъпка 7: Конфигуриране на GitLab Email Notifications (Опционално)

Изпращането на email известия е от съществено значение за production GitLab инстанция — позволява функции като верификация на акаунт, актуализации на merge request, CI/CD алерти и нулиране на пароли. Конфигурирайте SMTP настройките в основния GitLab конфигурационен файл:

sudo nano /etc/gitlab/gitlab.rb

Добавете или модифицирайте следния SMTP конфигурационен блок:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

Запазете файла и приложете промените:

sudo gitlab-ctl reconfigure

> Търсите надежна email инфраструктура? AlexHost предлага професионални Email Hosting услуги, които се интегрират безпроблемно със самостоятелни приложения като GitLab, осигурявайки стабилен SMTP relay с висока доставяемост.

Стъпка 8: Активирайте HTTPS с Let’s Encrypt (Препоръчано)

Работата на GitLab над HTTPS е силно препоръчана за всяка производствена или екипна среда. GitLab има вградена поддръжка за Let’s Encrypt, безплатен и автоматизиран орган за издаване на SSL сертификати.

> Важно: Let’s Encrypt изисква вашето доменно име да е публично достъпно и порт 80 да е отворен на вашия сървър. Няма да работи с сурови IP адреси.

Отворете конфигурационния файл на GitLab:

sudo nano /etc/gitlab/gitlab.rb

Добавете следната конфигурация:

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"

Запазете файла и преконфигурирайте GitLab:

sudo gitlab-ctl reconfigure

GitLab автоматично ще получи и инсталира вашия SSL сертификат, а настройката auto_renew гарантира, че той ще бъде подновен преди изтичане без никакво ръчно вмешателство.

> Алтернатива: Ако предпочитате да управлявате SSL сертификатите независимо или имате нужда от wildcard/multi-domain сертификати, AlexHost предлага набор от SSL сертификати, които могат да бъдат ръчно конфигурирани в NGINX настройките на GitLab.

Стъпка 9: Управление на GitLab услуги

GitLab включва собствен инструмент за управление на услуги, наречен gitlab-ctl. Използвайте следните команди за контролиране на GitLab услугите:

Стартиране на GitLab

sudo gitlab-ctl start

Спиране на GitLab

sudo gitlab-ctl stop

Рестартиране на GitLab

sudo gitlab-ctl restart

Проверка на статуса на услугата

sudo gitlab-ctl status

Преглед на логовете в реално време

sudo gitlab-ctl tail

Преглед на логовете за конкретна услуга (например NGINX)

sudo gitlab-ctl tail nginx

Тези команди са безценни за отстраняване на неизправности и редовна поддръжка. Командата status ще покаже състоянието на всички GitLab подуслуги, включително PostgreSQL, Redis, Sidekiq, Puma (уеб сървър) и NGINX.

Стъпка 10: Начална конфигурация на GitLab за вашата организация

С инсталиран и работещ GitLab, е време да го конфигурирате според нуждите на вашия екип. Ето ключовите области за настройка чрез уеб интерфейса на GitLab:

Управление на потребители

Отидете на Admin Area → Users, за да създадете потребителски акаунти за членовете на вашия екип. Можете да конфигурирате методи за удостоверяване, включително LDAP, OAuth и SAML за корпоративен единствен вход.

Групи и проекти

  • Групите ви позволяват да организирате свързани проекти и да управлявате разрешения в мащаб
  • Проектите са отделни хранилища със собствени проследяватели на проблеми, уикита и CI/CD конвейери

CI/CD конвейери

Вградената CI/CD на GitLab е една от най-мощните му функции. Създайте .gitlab-ci.yml файл в корена на вашето хранилище, за да определите автоматизирани конвейери за изграждане, тестване и развертване.

Настройки на хранилището

Конфигурирайте правила за защита на клонове, одобрения на заявки за сливане и работни процеси на преглед на кода в раздела Settings → Repository на всеки проект.

Конфигурация на резервното копие

Настройте автоматизирани резервни копия, като конфигурирате следното в /etc/gitlab/gitlab.rb:

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # Keep backups for 7 days

Изпълнете ръчно резервно копие по всяко време с:

sudo gitlab-backup create

Конфигурация на Firewall

Ако имате UFW (Uncomplicated Firewall) активиран на вашия Ubuntu сервър, уверете се, че разрешавате HTTP и HTTPS трафик:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

Отстраняване на често срещани проблеми

ПроблемРешение
GitLab недостъпен след инсталацияПроверете правилата на защитната стена; проверете EXTERNAL_URL в /etc/gitlab/gitlab.rb
502 Bad Gateway грешкаИзпълнете sudo gitlab-ctl restart; проверете логовете с sudo gitlab-ctl tail
Let’s Encrypt сертификат неуспешенУбедете се, че портът 80 е отворен и DNS на домейна е правилно конфигуриран
Висока употреба на паметНамалете Puma работници в gitlab.rb: puma['worker_processes'] = 2
Email известия не се изпращатПроверете SMTP идентификационни данни и изпълнете sudo gitlab-rails console за тестване

Заключение

Инсталирането на GitLab на Ubuntu е прост процес, който предоставя платформа за DevOps на корпоративно ниво под вашия пълен контрол. Следвайки това ръководство, сте настроили напълно функционален GitLab екземпляр с HTTPS криптиране, имейл известия и правилно управление на услугите — готов за работни потоци на реалния свят.

Самостоятелното хостване на GitLab дава на вашия екип свободата да персонализира работни потоци, да поддържа суверенитета на данните и да се интегрира с вашата съществуваща инфраструктура без повтарящи се разходи за SaaS абонамент. Ключът към гладко GitLab преживяване е да започнете с надежден, висок производителност сървър.

За екипи, които имат нужда от солидна основа за GitLab, Dedicated Servers на AlexHost предлагат максимална производителност и изолация, докато VPS Hosting планове осигуряват рентабилна и мащабируема алтернатива за по-малки екипи и растящи проекти. И двете опции идват с пълен root достъп, SSD хранилище и 24/7 техническа поддръжка — всичко, което ви трябва, за да стартирате GitLab с увереност.