Как да инсталирате 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 reconfigureGitLab автоматично ще получи и инсталира вашия 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 с увереност.
от всички хостинг услуги