# Первичная настройка и начало работы 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-пользователя — все его права и привилегии остаются прежними.

«root_name»

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

«profile_set»

# Создание и удаление проекта

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

«new_project»

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

«root_name»

При создании проекта помимо стандартных опций вроде задания имени, описания проекта и создания слага проекта, есть возможность выбрать уровень доступа к проекту:

  • частный — доступ будет только у вас;
  • внутренний — доступ только для тех, у кого есть доступ на сайт;
  • публичный — открытый доступ для всех пользователей сети.

Также при создании проекта поставим галочку в пункте Initialize repository with a README — это позволит нам создать новый репозиторий, привязанный к нашему проекту. Первым файлом в репозитории станет README.txt, в котором обычно хранится полное описание проекта.

Удалить проект можно в разделе меню SettingsGeneral. В нижней части раздела будет пункт Advanced, при нажатии на кнопку Expand развернётся окно с расширенным набором настроек, в котором будет пункт Delete this project:

«del_proj»

# Настройки доступа

Административные права в Gitlab позволяют гибко настраивать политику доступа в отношении каждого пользователя и проекта.

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

«root_name»

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

«root_name»

Эти разделы позволяют настроить ограничение доступа к проектам пользователям с определённых IP-адресов, задавать надёжность пароля для новых пользователей, а также создавать списки разрешённых и запрещённых доменных имён, чьи пользователи смогут или не смогут зарегистрироваться.

Добавить нового пользователя к уже существующему проекту можно из окна управления самим проектом.

В разделе меню Project information выберите пункт Members, затем из уже созданных пользователей выберите тех, кому хотите открыть доступ к проекту.

# Бэкап проекта

Создать резервную копию проекта можно двумя путями: через консоль SSH-подключения или через веб-интерфейс.

# Веб-интерфейс

Резервную копию проекта можно в любой момент выгрузить с помощью веб-интерфейса Gitlab в одном из предложенных форматов: zip, tar.gz, tar.bz2, tar. Для этого нужно зайти в проект и нажать на кнопку Download на главной странице проекта:

«root_name»

Полученную версию можно сохранить на локальной машине:

# Консоль

Чтобы создать бэкап своих проектов в консоли, сначала установите 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