Что такое GitLab?
GitLab Community Edition ( gitlab-ce ) это OpenSource проект исходный код которого тут
GitLab предоставляет нам возможности:
- Хранить тексты исходный программ
- Выполнять MR (merge request или в терминах github pull request)
- Ставить задачи в Канбан досках (как Jira или Trello, или RedMine)
- Создавать иерархическую структуру проекта с уровнями доступа
- Выполнять Ci/CD (Continuous Integration и Continuous Delivery) (как Jenkins или TeamCity)
Вообщем и целом, хорошая штука.
Подготовка сервера и домена
Рекомендую себе арендовать сервачек для GitLab, например у TimeWeb Cloud . Это не реклама, просто я не могу советовать вам непроверенные вещи. Мне пришлось пройти путь страдания чтобы дать вам такой совет. На моем личном серваке крутится обычный Ubuntu LAMP в котором живут сайтики на WordPress. При установке GitLab произошел конфликт портов, я стал судорожно гуглить и менять конфиги все время перезагружая сервер, но в конце концов столкнулся с проблемой … у меня не было тогда этой ссылки и я решил снести GitLab полностью и попробовать накатить в виде Docker контейнера, так как настройка портов кажется там проще, как же я ошибался… Будем считать что сервер есть.
Там есть пресет с уже установленным GitLab, но он дороже — 1600 руб/мес вместо 1000 руб/мес за обычную Ubuntu на 4 ГБ оперативки, а 4ГБ это минимально необходимый объем для GitLab. Нужен также статический IP адрес. В качестве Linux дистрибутива выберите Ubuntu LTS версии или Debian — остальное слишком непопулярно, чтобы вы там страдали в одиночку.

Доменное имя можно купить там же. Или на https://2domains.ru
Сертификат SSL, который даст нам HTTPS соединение покупать не надо — это лохотрон. Его мы получим бесплатно, через letsencrypt.org , а точнее через certbot
Выполните настройку DNS записей , просто создайте запись типа А внесите туда свой статический IP адрес сервера, подождите пару часиков и возрадуйтесь.
Установка GitLab CE
На сайте GitLab вам расскажут что надо ставить EE (Enterprise Edition) версию, так как она включает в себя CE и вы можете проплатить поддержку и другие платные опции, вам это не нужно — в России поддержка и даже регистрация новых пользователей уже не работает, а цена там конская 30 бачинских в месяц за одного разраба, так что если будете копировать инструкции с офф сайта GitLab, не забте поправить gitlab-ee на gitlab-ce.
sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates tzdata perl # Это настройка почтового сервиса, его можно настроить потом, я пропускал этот пункт при установке - советую и вам sudo apt-get install -y postfix # На офф сайте они суют gitlab-ee ох уж эти маркетологи... curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-сe/script.deb.sh | sudo bash # Если укажите https, то встроенный letsencrypt скрипт сгенерит вам серты, рекомендую указать https # Указывать порт на этом шаге можно, но серты тогда не сгенерятся. Читайте выше о моей проблеме. # Укажите название вашего домена: https://mysite.ru или ip адрес sudo EXTERNAL_URL="https://mysite.ru" apt-get install gitlab-ce
После установки копируем пароль от пользователя root (Администратора) для доступа к веб морде GitLab
# Из выведенного текста копируйте пароль cat /etc/gitlab/initial_root_password
Проходите на https://mysite.ru (тот что вы указали)
Вводим root и пароль из файла. Заходим в профиль — пароли, меняем пароль, так как этот перестанет работать через 24 часа.
Если веб морды нет. То проверьте что у вас открыты порты в фаерволе.
Если ставите на личный сервак — Проверьте что есть проброс портов в роутере, нам нужны 80 (http), 443 (https), 21(ssh). Та же IP вашего сервера должен быть статичным в локальной сети — настройка статичный DHCP сервер — присваиваем по MAC адресу сетевой карты.
Если не помогло — может у вас завелся nginx, apach или docker — вырубите приложение которое занимает порты. Если не помогло, то вам точно надо было арендовать сервер. Увы и ах.
Если вы ещё живы идем дальше. Поздравляю оставшихся — теперь разберемся с сертами.
Настройка сертификатов
Мне сложно сказать нужно ли выполнять команды ниже, по описанию нет, но мне кажется что да. Проверить лень. Поэтому рекомендую идти по моему пути, ведь он верный, но не факт что истиный.
Вот старый, но полезный справочник по командам cerbot-а
Не торопитесь выполнять все команды оттуда — он устарел, но первую команду я взял оттуда, так как именно там идет установка софте для генерации сертов старым образом, а какая версия вложена в gitlab-ce мне искать лень, но думаю именно старая с deb пакетами, а не snap.
# Это очень долгая установка - так что готовтесь на 20 минут пойти погулять # Для установки софта из сторонних к Ubuntu репозиториев sudo apt install software-properties-common
sudo apt update sudo apt install snapd sudo snap install --classic certbot # сделайте копию - перед изменением. я делаю из-под root пользователя - вам тоже советую, чтобы не страдать от недостаточно доступа и тп cd /etc/gitlab cp gitlab.rb /root/ # Если вы старый можете использовать vim, если задрот то vi (:wq - сохранить и выйти) (:q! - избежать позора и ничего не сломать) nano gitlab.rb #Убедитесь что видите ваш домен и https # Зафуфыркайте вашу почту # letsencrypt['contact_emails'] = ['foo@email.com'] # Optional # сохраните и выйдите ( Ctrl + W , Ctrl + O для nano) sudo gitlab-ctl reconfigure
Теперь ваш GitLab по https — мои поздравления!