Table of Contents

GitLab CE — посібник для початку роботи

GitLab CE — self-hosted DevOps-платформа з Git-репозиторіями, CI/CD-конвеєрами, трекером задач, вікі, реєстром контейнерів тощо — альтернатива GitHub з відкритим кодом під вашим повним контролем. Сервер постачається з повністю встановленим і налаштованим GitLab CE та паролем адміністратора, вказаним під час замовлення. GitLab готовий до роботи після короткого початкового налаштування (2–4 хвилини під час першого завантаження).


Крок 1 — перевірте, що GitLab працює

IP-адресу сервера й пароль root показано на сторінці Server Details у клієнтській панелі. GitLab стає доступним після завершення початкового налаштування (2–4 хвилини після створення сервера). Відкрийте http://your.server.ip у браузері, щоб переконатися, що все працює. Якщо бачите помилку 502, зачекайте кілька хвилин і оновіть сторінку — GitLab ще запускається.

Вхід у GitLab:

  • Імʼя користувача: root
  • Пароль: пароль GitLab Root Password, вказаний під час замовлення

Спочатку GitLab працює через HTTP. Щоб увімкнути HTTPS із безкоштовним сертифікатом Let’s Encrypt, спершу налаштуйте домен (див. крок 3).

Якщо ви розмістили сервер за маршрутизатором VyOS у приватній мережі, налаштуйте переадресацію портів (22, 80 і 443), щоб GitLab був доступний з інтернету, або підключайтеся через VPN до GitLab за приватною IP сервера.


Крок 2 — створіть перший проєкт

Натисніть New project на панелі, оберіть Create blank project, введіть назву й натисніть Create project.

Клонуйте репозиторій через HTTPS або SSH:

# HTTPS
git clone http://your.server.ip/root/my-project.git

# SSH (add your public key in Preferences > SSH Keys first)
git clone git@your.server.ip:root/my-project.git

Крок 3 — налаштуйте власний домен і HTTPS

GitLab має вбудовану підтримку Let’s Encrypt. Щоб увімкнути HTTPS для свого домену:

  1. Створіть DNS A-запис, що вказує домен на IP сервера:
    Тип Імʼя Значення
    Agitlabyour.server.ip
  2. Підключіться до сервера через SSH і відредагуйте /etc/gitlab/gitlab.rb:
    nano /etc/gitlab/gitlab.rb
    Змініть рядок external_url , щоб він використовував HTTPS і ваш домен:
    external_url 'https://gitlab.yourdomain.com'
  3. Застосуйте конфігурацію:
    gitlab-ctl reconfigure
    GitLab автоматично отримає й налаштує сертифікат Let’s Encrypt. Сертифікат поновлюється автоматично.

Перед запуском reconfigure переконайтеся, що A-запис домену вже оновився. Зміни DNS зазвичай застосовуються за кілька хвилин, але можуть тривати до 24 годин. Перевірити можна на dnschecker.org.


Крок 4 — CI/CD-конвеєри

GitLab має вбудований CI/CD. Щоб створити конвеєр, додайте файл .gitlab-ci.yml у корінь репозиторію:

stages:
  - build
  - test

build-job:
  stage: build
  script:
    - echo "Building the project..."

test-job:
  stage: test
  script:
    - echo "Running tests..."

Конвеєри запускаються автоматично після кожного push. Результати дивіться в проєкті в розділі Build > Pipelines.

Примітка: Для запуску конвеєрів потрібно зареєструвати GitLab Runner. Скористайтеся посібником зі встановлення GitLab Runner , щоб налаштувати runner на цьому сервері чи окремій машині.


Після встановлення

Fail2Ban — захист від підбору паролів

Сервер постачається з Fail2Ban , попередньо налаштованим для захисту SSH від підбору паролів.

Правило Макс. спроб Тривалість блокування
SSH5 невдалих входів1 година

Корисні команди:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

GitLab також має власний захист від підбору паролів для входу у вебінтерфейс. Якщо ви випадково заблокували себе, підключіться через VNC-консоль у клієнтській панелі й розблокуйте свою IP.

Оновлення

Важливо: GitLab CE не оновлюється автоматично (виключено з unattended upgrades). GitLab потрібно оновлювати через певні проміжні версії — пропуск версій може зламати інсталяцію.

Завжди перевіряйте офіційний шлях оновлення перед оновленням. Щоб оновити:

# Check current version
gitlab-rake gitlab:env:info | grep "GitLab"

# Update to a specific version (follow the upgrade path!)
apt update
apt install gitlab-ce=X.Y.Z-ce.0

# Apply changes
gitlab-ctl reconfigure

Оновлення ОС можна встановити через SSH:

apt update && apt upgrade -y

Облікові дані сервера

Облікові дані адміністратора GitLab зберігаються у /root/.gitlab_credentials. Їх також видно під час підключення через SSH (у вітальному повідомленні).

Керування сервісами

GitLab Omnibus обʼєднує всі сервіси (Nginx, PostgreSQL, Redis, Puma, Sidekiq) під командою gitlab-ctl :

# Service management
gitlab-ctl status              # check all services
gitlab-ctl restart             # restart all services
gitlab-ctl start               # start all services
gitlab-ctl stop                # stop all services

# Configuration
gitlab-ctl reconfigure         # apply changes from gitlab.rb

# Logs
gitlab-ctl tail                # live log output (all services)
gitlab-ctl tail nginx          # Nginx logs only
gitlab-ctl tail puma           # application server logs

# Backups
gitlab-backup create           # create data backup
gitlab-ctl backup-etc          # backup configuration files

# Reset root password
gitlab-rails console -e production
# Then in console:
#   user = User.find_by_username('root')
#   user.password = 'newpassword'
#   user.password_confirmation = 'newpassword'
#   user.save!

Встановлене ПЗ

Компонент Деталі
Ubuntu24.04 LTS
GitLab CEOmnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq)
CI/CDВбудовані CI/CD-конвеєри GitLab
PostfixЛокальний MTA для email-сповіщень
Let’s EncryptВбудоване керування SSL-сертифікатами
Fail2BanЗахист SSH від підбору паролів

Усунення проблем

Проблема Рішення
Помилка 502 одразу після створення GitLab ще запускається (перше завантаження триває 2–4 хвилини). Зачекайте й оновіть сторінку. Перевірте прогрес: gitlab-ctl status
Не вдається відкрити вебінтерфейс GitLab Перевірте сервіси: gitlab-ctl status. Якщо сервіси не працюють, спробуйте gitlab-ctl restart
Не вдалося отримати сертифікат Let’s Encrypt Переконайтеся, що DNS A-запис вказує на IP сервера. Перевірити можна на dnschecker.org. Перегляньте помилки: gitlab-ctl tail nginx
Git push/pull через SSH не працює Додайте публічний SSH-ключ у GitLab (Preferences > SSH Keys). Використовуйте git@ в URL клонування
Забули пароль адміністратора Підключіться через SSH і перевірте /root/.gitlab_credentials, або скиньте через gitlab-rails console (див. «Керування сервісами»)
Високе використання памʼяті GitLab використовує ~2,5–3 ГБ RAM із застосованими оптимізаціями. Мінімально рекомендовано 4 ГБ RAM. Якщо памʼяті бракує, розгляньте перехід на потужніший тариф
Заблоковано Fail2Ban Розблокуйте свою IP через VNC-консоль у клієнтській панелі: fail2ban-client set sshd unbanip 1.2.3.4
Reconfigure триває надто довго Це нормально — reconfigure може тривати 1–3 хвилини. Стежте за ним через gitlab-ctl tail
Забули пароль root Скиньте його через VNC-консоль у клієнтській панелі