Як встановити 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 cores (GitLab рекомендує щонайменше 4 ядра для виробничого використання)
- Root або sudo доступ до сервера
- Зареєстроване доменне ім’я, яке вказує на IP-адресу вашого сервера (опціонально, але настійно рекомендується для HTTPS)
- Порти 80 та 443 відкриті у вашому брандмауері
> Порада: Для найкращої продуктивності GitLab розглядайте розгортання на плані VPS Hosting з достатніми ресурсами RAM та CPU. VPS плани AlexHost оптимізовані для 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. Ви повинні встановити змінну середовища 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 (опціонально)
Надсилання сповіщень електронної пошти є важливим для виробничого екземпляра GitLab — це дозволяє функції, такі як перевірка облікового запису, оновлення запитів на злиття, сповіщення 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> Шукаєте надійну інфраструктуру електронної пошти? AlexHost пропонує професійні послуги Email Hosting, які безперебійно інтегруються з самостійно розміщеними додатками, такими як GitLab, забезпечуючи стабільне SMTP-ретрансляцію з високою доставляємістю.
Крок 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-сертифікатами або вам потрібні сертифікати з підстановними знаками/мультидоменні, 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Конфігурація брандмауера
Якщо у вас увімкнено 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 |
| Сповіщення електронної пошти не надсилаються | Перевірте облікові дані SMTP і запустіть sudo gitlab-rails console для тестування |
Висновок
Встановлення GitLab на Ubuntu — це простий процес, який надає вам корпоративну платформу DevOps під повним контролем. Дотримуючись цього посібника, ви встановили повністю функціональний екземпляр GitLab з шифруванням HTTPS, сповіщеннями електронної пошти та належним управлінням сервісами — готовим до реальних робочих процесів розробки.
Самостійне розміщення GitLab дає вашій команді свободу налаштовувати робочі процеси, зберігати суверенітет даних та інтегруватися з вашою існуючою інфраструктурою без повторюваних витрат на підписку SaaS. Ключ до безперебійної роботи GitLab — це початок з надійного, високопродуктивного сервера.
Для команд, яким потрібна надійна основа для GitLab, Dedicated Servers AlexHost пропонують максимальну продуктивність та ізоляцію, тоді як плани VPS Hosting забезпечують економічну та масштабовану альтернативу для менших команд та зростаючих проектів. Обидва варіанти поставляються з повним доступом root, сховищем SSD та цілодобовою технічною підтримкою — усім необхідним для впевненого запуску GitLab.
на всіх хостингових послугах