# Первичная настройка и начало работы Gitlab
Gitlab — один из стандартных сервисов для работы с системой контроля версий git. Он поддерживает все необходимые для разработки функции: управление частными и публичными репозиториями, анализ кода на наличие ошибок, управление правами пользователей и доступом к репозиториям. Также Gitlab может быть установлен на локальный сервер, на котором ведётся разработка, — это бывает полезно для организации приватного доступа к репозиторию или для более гибкой настройки прав доступа различных пользователей к проекту.
В этой инструкции мы расскажем, как настроить только что установленный Gitlab, и познакомимся с некоторыми базовыми функциями: управление правами доступа к проектам, создание и удаление новых проектов, резервное копирование и восстановление проекта из бэкапа, а также импорт и экспорт проектов из публичных репозиториев.
Нам понадобится подготовленный к работе сервер на Ubuntu или CentOS с предустановленным Gitlab.
# Начало работы
Первый вход в Gitlab осуществляется от имени root-пользователя. Задать пароль root-пользователя можно при первом входе в Gitlab на странице, которую вы указывали в качестве домашней в конфигурационном файле /etc/gitlab/gitlab.rb.
Если при первом посещении страницы Gitlab не предлагает задать пароль root-пользователя, его можно задать вручную через консоль. Для этого нужно использовать gitlab-rake — менеджер заданий Gitlab:
sudo gitlab-rake "gitlab:password:reset"
Запущенная задача попросит указать имя пользователя — указываем root — и задать новый пароль для него. После этого можно заходить в Gitlab через браузер.
# Первичная настройка
Заданное по умолчанию имя пользователя root меняют редко, поэтому оно становится одним из потенциально уязвимых мест в безопасности нашего Gitlab. Сменим имя root-пользователя!
В разделе меню «User Settings» перейдём в раздел «Account», в поле «Change Username» укажем новое имя. Важно помнить, что при этом меняется только имя root-пользователя — все его права и привилегии остаются прежними.

Основная настройка профиля (указание имени, почтового адреса для обращений и для коммитов, ссылки на социальные сети и пр.) производится в том же разделе меню «User Settings», но на вкладке «Profile»:

# Создание и удаление проекта
Создать проект можно на главной странице Gitlab, нажав кнопку или на плюсик около строки поиска:

Здесь можно создать новый проект, выбрать шаблон для проекта или загрузить уже имеющийся из репозитория. Создадим пустой проект:

При создании проекта помимо стандартных опций вроде задания имени, описания проекта и создания слага проекта, есть возможность выбрать уровень доступа к проекту:
- частный — доступ будет только у вас;
- внутренний — доступ только для тех, у кого есть доступ на сайт;
- публичный — открытый доступ для всех пользователей сети.
Также при создании проекта поставим галочку в пункте Initialize repository with a README — это позволит нам создать новый репозиторий, привязанный к нашему проекту. Первым файлом в репозитории станет README.txt, в котором обычно хранится полное описание проекта.
Удалить проект можно в разделе меню SettingsGeneral. В нижней части раздела будет пункт Advanced, при нажатии на кнопку развернётся окно с расширенным набором настроек, в котором будет пункт Delete this project:

# Настройки доступа
Административные права в Gitlab позволяют гибко настраивать политику доступа в отношении каждого пользователя и проекта.
Чтобы настроить ограничения доступа, перейдите в административную область и в разделе Settings переключитесь на вкладку General:

Здесь в пунктах Sign-up restrictions и Sign-in restrictions можно настроить ограничения пользователей как на создание новых аккаунтов, так и на доступ к определённым проектам:

Эти разделы позволяют настроить ограничение доступа к проектам пользователям с определённых IP-адресов, задавать надёжность пароля для новых пользователей, а также создавать списки разрешённых и запрещённых доменных имён, чьи пользователи смогут или не смогут зарегистрироваться.
Добавить нового пользователя к уже существующему проекту можно из окна управления самим проектом.
В разделе меню Project information выберите пункт Members, затем из уже созданных пользователей выберите тех, кому хотите открыть доступ к проекту.
# Бэкап проекта
Создать резервную копию проекта можно двумя путями: через консоль SSH-подключения или через веб-интерфейс.
# Веб-интерфейс
Резервную копию проекта можно в любой момент выгрузить с помощью веб-интерфейса Gitlab в одном из предложенных форматов: zip, tar.gz, tar.bz2, tar. Для этого нужно зайти в проект и нажать на кнопку на главной странице проекта:

Полученную версию можно сохранить на локальной машине:
# Консоль
Чтобы создать бэкап своих проектов в консоли, сначала установите git:
# Centos 8
sudo dnf install git
#Ubuntu
sudo apt install git
После этого можно запустить менеджер команд Gitlab-rake:
sudo gitlab-rake gitlab:backup:create
После завершения работы команда выдаст предупреждение:
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Указанные файлы gitlab.rb и gitlab-secrets.json нужно сохранить вручную.
Адрес, по которому будут располагаться резервные копии, указывается в конфигурационном файле:
sudo vi /etc/gitlab/gitlab.rb
В открывшемся файле находим блок:
### Backup Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/backups.html
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"
Как видим, по умолчанию резервные копии хранятся в /var/opt/gitlab/backups. Если нужно больше места для их хранения, выделите для этого отдельное дисковое пространство и перепишите в конфигурационном файле путь к ним.
Важно: после изменения конфигурационного файла не забудьте обновить конфигурацию Gitlab:
sudo gitlab-ctl reconfigure