Шло время и старый Gitlab 13 версии совсем начал загибаться. Вспомнил о проблемах, связанных с апгрейдом. Оценил объем работы по разным вариантам миграции репозиториев и выбрал самый лобовой: разворачиваем новый сервер и затем перетаскиваем на него все проекты.
ОС выбрал Debian, не спрашивайте «почему?». Лет 15 назад Ubuntu стала бы фаворитом, но не сегодня. Слишком много чего навертели, запутали, а танцевать с бубнами уже возраст не позволяет. Поэтому Debian.
Все делаем по инструкции Gitlab. Скопировали, вставили, отредактировали, enter. Скачалось, запустилось, побежало.
Первые проблемы начинаются с сертификатами от Letsencrypt. Читаем красные буковки, открываем /etc/gitlab/gitlab.rb и ставим ключик, отключающий проверку сертификатов. Почему я отключаю выпуск сертификатов Letsencrypt? Да потому, что Gitlab у меня стоит за проксей и SSL на нем уже установлен. В общем, отключаем Letsencrypt:
letsencrypt['enable'] = false
Далее запускаем обновление конфигурации: gitlab-ctl reconfigure
Здесь стоит немного изменить линию повествования, поворот сюжета, так сказать.
Для того, чтобы правильно развернуть Gitlab надо придерживаться всего нескольких правил.
Первое
Gitlab расположен в каталогах
/etc/gitlab – сертификаты и главный файл конфигурации: gitlab.rb
/opt/gitlab – сам gitlab
/var/opt/gitlab – конфигурации сервисов и т.п.
/var/log/gitlab - журналы
Второе
Если при установке все летит в тартарары, то удаляем все четыре каталога и запускаем установку по новой. Не забываем перезагрузить сервер.
Третье
Иногда может зависнуть установка на создании журналов. Проверяем
systemctl status gitlab-runsvdir.service
Если сервис выключен, то из-за него и висит установщик.
Четвертое
Не пытайтесь менять руками файлы конфигурации сервисов в /var/opt/gitlab. При запуске gitlab-ctl reconfigure они будут перезаписаны. Об этом в каждом файле есть особое предупреждение. Всю конфигурацию проводите только через редактирование файла gitlab.rb.
Кстати, если с ним внимательно ознакомиться, то отпадет куча вопросов «а как?»
Пятое
В настройках админки: Settigs -> General -> Account and limit аккуратнее с галочками на User restrictions. Т.к. если галочка не будет стоять на пункте «Allow users with up to Guest role to create groups and personal projects», то, как это не бредово звучит, даже админ не сможет создать проект или группу.
Шестое
Если вы сервер GitLab переведете в режим обслуживания, то экспортировать проекты вы не сможете.
Седьмое
Все достаточно популярно расписано в документации GitLab. Поэтому здесь расписывать очевидные вещи не буду, читайте первоисточник.