Когда SaaS-сервисы недоступны, дорожают или вызывают вопросы по хранению кода, GitLab CE на своих серверах становится практичным решением. Это open-source платформа для репозиториев, CI/CD, registry и управления задачами в одном контуре.
Зачем ставить GitLab CE self-hosted
- независимость от внешних сервисов и санкционных рисков
- контроль над исходным кодом, пайплайнами и артефактами
- интеграция с внутренними LDAP, VPN, registry, мониторингом
- предсказуемые расходы без оплаты за пользователя в облаке
Минимальные требования
- CPU: от 2 vCPU
- RAM: от 4 ГБ, комфортно — 8 ГБ+
- Диск: SSD от 50 ГБ
- OS: Ubuntu 22.04 LTS — один из самых удобных вариантов
- Домен: например,
git.company.ru
Самый простой способ установки — Docker 🚀
1. Подготовьте сервер:
sudo apt update && sudo apt install -y docker.io docker-compose-plugin
sudo mkdir -p /srv/gitlab/{config,logs,data}
2. Запустите контейнер:
sudo docker run --detach \
--hostname git.company.ru \
--publish 80:80 --publish 443:443 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
3. Откройте http://git.company.ru и дождитесь первичной инициализации. Она может занять 5–15 минут.
4. Получите пароль root:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Как включить CI/CD
GitLab сам по себе не исполняет job’ы — нужен GitLab Runner. Его лучше ставить отдельно.
Установка Runner:
curl -L --output gitlab-runner.deb \
https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb
sudo dpkg -i gitlab-runner.deb
Регистрация:
sudo gitlab-runner register
Укажите:
- URL GitLab
- registration token из проекта или группы
- executor: чаще всего
docker
Пример .gitlab-ci.yml:
stages: [test]
test_job:
stage: test
script:
- echo "CI/CD работает"
Что важно для продакшена 🔐
- сразу настройте HTTPS через Let’s Encrypt или reverse proxy
- ограничьте SSH и web-доступ по firewall
- делайте резервные копии
/etc/gitlab, БД и/var/opt/gitlab - вынесите Runner на отдельный хост
- подключите SMTP для уведомлений
- включите мониторинг: Prometheus, Grafana, node_exporter
Подводные камни
- GitLab требователен к памяти — на 4 ГБ возможны тормоза
- обновления нужно планировать, особенно между major-версиями
- при высокой нагрузке лучше сразу думать о внешней PostgreSQL и object storage
Итог
GitLab CE в России — это рабочая база для self-hosted CI/CD, если нужен контроль, автономность и единая DevOps-платформа. Для малого и среднего бизнеса чаще всего хватает одного сервера + отдельного Runner, а дальше инфраструктуру можно масштабировать по мере роста команды. 🧩
📌 Ниже — подборка каналов про IT: инфраструктура, DevOps, разработка и практические кейсы без воды.