Как проверить восстановление Gitea из резервной копии restic
Проверьте восстановление Gitea из restic на отдельном сервере. Верните не только код, но и пользователей, задачи, вложения и настройки. Затем войдите обычным аккаунтом и отправьте учебное изменение. Измеряйте время до возобновления работы команды: наличие файлов в копии ещё не подтверждает исправность сервиса.
Что подготовить
- Отдельную учебную Gitea с репозиторием, задачей, вложением и пользователями разных прав.
- Хранилище restic и доступ к паролю независимо от исходного сервера.
- Чистый тестовый сервер, изолированный от рабочей почты и внешних систем.
Подготовьте данные для проверки #
Создайте учебный проект с двумя сохранёнными изменениями кода, отдельной веткой и предложением включить её в основную версию. Добавьте задачу с комментарием и вложением. Такой набор поможет заметить потерю данных после восстановления.
Код. Запишите номер последнего сохранённого изменения — коммита. Он поможет сравнить версии до и после восстановления.
Задачи и файлы. Запишите число задач, текст комментария и контрольную сумму вложения — значение, по которому проверяют совпадение файлов.
Права. Подготовьте обычного пользователя с разрешением изменять код и отдельного пользователя только для чтения.
Если проект хранит большие файлы через Git LFS или во внешнем хранилище, добавьте такой файл в проверку. Запишите, где он лежит. Копия репозитория не должна незаметно исключить данные, нужные команде.
Сохраните полную копию Gitea #
Для согласованной копии остановите запись и Gitea на учебном сервере. Иначе база, код и вложения могут попасть в копию в разные моменты. Администратор должен сохранить базу в поддерживаемом формате и проверить, как её вернуть.
Сохраните подготовленные данные через restic. Запишите номер выбранной копии: в restic она называется снимком (snapshot). Рядом оставьте дату, версии программ и список сохранённых частей — так при восстановлении не придётся угадывать.
База данных. Пользователи, задачи, комментарии и связи между ними.
Файлы. Репозитории, вложения и отдельно используемые большие файлы.
Настройки и доступ к копии. Конфигурация Gitea, нужные ключи и способ получить пароль хранилища restic.
Пароль копии должен быть доступен ответственному даже при потере исходного сервера. Секретные значения не помещайте в общий отчёт. Запишите только, где уполномоченный сотрудник их получит.
| Часть Gitea | Проверка | Какой результат нужен |
|---|---|---|
| База | Пользователь, задача и комментарий | Данные и связи на месте |
| Код | Получение репозитория и номер коммита | Версия совпадает с исходной |
| Вложение | Открытие и контрольная сумма | Файл доступен и не изменился |
| Работа после восстановления | Отправка новой ветки и отказ без прав | Изменения принимаются по установленным правилам |
Восстановите на отдельном сервере #
Подготовьте отдельный сервер без связи с рабочей почтой и внешними обработчиками событий. Он не должен отправлять реальные уведомления или менять данные в соседних системах. Сначала используйте те же версии Gitea и базы данных, что в копии.
Восстановите выбранный снимок restic в отдельную папку и сверьте список файлов. Затем администратор возвращает базу, репозитории, вложения и настройки, проверяет владельцев файлов и пути. Не заменяйте этим опытом единственную рабочую установку.
Если изменились пути программы или способ установки, пересоздайте служебные обработчики Git (hooks) по руководству Gitea. Они запускаются при операциях с кодом. Адрес, почту и внешние связи настройте для тестового сервера.
Перенос и обновление версии проверяйте отдельно. Сначала подтвердите работу восстановленной копии на прежних версиях. Тогда новая ошибка не смешается с неизвестной потерей данных.
Порядок проверки
- Создайте учебный проект, задачи, вложение и пользователей; запишите данные для сравнения.
- Остановите запись и Gitea, сохраните базу, репозитории, файлы и настройки.
- Запишите номер снимка restic и восстановите его на отдельном тестовом сервере.
- Верните базу и файлы, проверьте пути, владельцев и служебные обработчики Git.
- Проверьте вход, задачи, вложения, получение кода и отправку новой учебной ветки.
- Запишите время восстановления и исправьте найденные пробелы в копии или инструкции.
Проверьте обычную работу команды #
Войдите обычным пользователем, найдите задачу и комментарий, откройте вложение. Сравните файл по контрольной сумме. Затем получите код из восстановленного репозитория командой clone и сверяйте номер последнего коммита с записанным ранее.
Разрешённое изменение работает. Создайте учебную ветку и отправьте её командой
push— передачей изменений на сервер.Запрет действительно действует. Пользователь только для чтения не должен отправлять изменения в репозиторий.
Команда может продолжить работу. Нужны вход, задачи, вложения и работа с кодом, а не просто открывшаяся главная страница.
Отсчитывайте восстановление от объявления потери сервера до успешной учебной задачи. Запишите также ожидание пароля и доступа к копии. Проверка целостности restic полезна, но отдельно не подтверждает работу Gitea.
По окончании уберите временный доступ. Если не хватает вложения, ключа или настройки, исправьте состав копии и повторите соответствующую проверку. Результат должен помочь команде восстановиться в следующий раз.
Как записать результат #
Сохраните номер копии, версии, список данных и время каждого этапа восстановления. Для пользователей, задач, вложений и кода отметьте совпадения и ошибки. Пароли и закрытые ключи оставьте в защищённом месте.
В конце перечислите, что нужно исправить: состав копии, получение доступа, инструкцию или права. Назначьте ответственного и повторную проверку. Хороший итог — другой сотрудник понимает порядок и может выполнить его без устного пересказа.
Что подтверждает рабочее восстановление
- Пользователи, задачи, комментарии, код и вложения совпали с исходными данными.
- Команда может не только читать, но и выполнять разрешённые изменения.
- Известны состав копии и безопасный способ получить доступ к ней.
- Записано фактическое время и назначены исправления обнаруженных ошибок.