Резервное копирование и восстановление сервера Gitea

Все может произойти в эти трудные времена.

Содержимое страницы

Нужно создать резервные копии 1) базы данных, 2) файлового хранилища, 3) некоторых других файлов Gitea. Вот как это сделать.

очень приятное фото открытого жесткого диска

В посте Тестирование Gitea мы установили сервер Gitea.

Когда

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

Лучше быть осторожным, чем пожалеть.

Где

Данные сервера Gitea состоят из трёх компонентов:

  • код
  • файловое хранилище
  • база данных

В нашем тестовом окружении все вместе занимают немного больше 700 МБ:

использование диска Gitea

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

И восстановление также должно происходить в рамках одной транзакции.

Как — Резервное копирование

cd ~/gitea-srv-local

# резервное копирование базы данных
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

# остановка Gitea
sudo docker-compose down

# проверка папки с резервными копиями
sudo ls postgres-backups

# создание папки для резервных копий
mkdir gitea-backups

# резервное копирование папки Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea

# резервное копирование папки с репозиториями
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git

# запуск
sudo docker-compose up -d

последний этап — войти на другой сервер и скопировать папку с резервными копиями туда, или выполнить другие операции с файлами

scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups

Как — Восстановление

На самом деле, здесь немного больше, особенно с правами доступа и хуками, но идея та же.

Но! проверьте оригинальную документацию: https://docs.gitea.com/administration/backup-and-restore

# сначала установите
# затем остановите
sudo docker-compose down

# восстановление файлов
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea

# запуск
sudo docker-compose up -d

# здесь какие-то действия с psql или pg_restore
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

Затем перейдите в интерфейс и проверьте

Полезные ссылки