В Gitlab backup делается одной командой, это встроенный инструмент, для использования которого требуется root доступ к серверу.
Как создать бэкап в консоли сервера
gitlab-roke gitlab:backup:create
Данные по умолчанию сохраняются в каталоге /var/opt/gitlab/backups
cd /var/opt/gitlab/backups
Приведенную команду можно добавить в планировщик CRON и выполнять по расписанию регулярно.
Затем бэкап можно при помощи rsync копировать на какой-либо внешний сервер.
Хранить бэкап на том же сервере с Gitlab нежелательно, поскольку данные должны быть доступны для восстановления если сервер оказался полностью недоступен.
В результате получается бэкап самого приложения, он не отменяет в общем случае необходимость иметь резервную копию содежимого диска или снапшот.
Восстановление Gitlab из бэкапа
Восстановление возможно только при той же версии Gitlab
Для восстановления сначала останавливаются две службы
gitlab-ctl stop unicron
gitlab-ctl stop sidekiq
Затем следует проверить статус Gitlab
gitlab-ctl status
Если он остановлен, можно приступать к восстановлению
gitlab-roke gitlab:backup:restore BACKUP=123213123123
Численное значение — идентификатор бэкапа.
Запуск после восстановления выполняется аналогично
gitlab-ctl start
Настройка создания бэкапов выполняется через планировщик CRON или, например, через Jenkins jobs.