5.1 KiB
5.1 KiB
Бэкап и восстановление Gitea
Скрипты для бэкапа и восстановления Gitea в LXC контейнере на Proxmox.
Файлы
| Скрипт | Где запускать | Описание |
|---|---|---|
backup-gitea-lxc.sh |
Внутри LXC | Бэкап на уровне приложения |
backup-proxmox.sh |
На Proxmox хосте | Оркестрация бэкапа + vzdump |
setup-backup-cron.sh |
На Proxmox хосте | Настройка автоматического бэкапа |
restore-gitea.sh |
Внутри LXC | Восстановление из бэкапа |
backup-gitea-lxc.sh
Запускается внутри LXC контейнера. Создаёт:
database.sql— pg_dump базы PostgreSQLgitea-dump.zip— репозитории, LFS, attachments, avatarsapp.ini— конфигурация Gitea
Настройки:
| Переменная | По умолчанию | Описание |
|---|---|---|
BACKUP_BASE |
/var/backups/gitea |
Директория для бэкапов |
DB_USER |
gitea |
Пользователь PostgreSQL |
DB_NAME |
gitea |
Имя базы данных |
KEEP_BACKUPS |
7 |
Сколько бэкапов хранить |
REMOTE_BACKUP |
— | scp путь для копирования |
Пример:
sudo ./backup-gitea-lxc.sh
KEEP_BACKUPS=14 REMOTE_BACKUP=user@nas:/backups ./backup-gitea-lxc.sh
backup-proxmox.sh
Запускается на Proxmox хосте. Выполняет:
- Запуск
backup-gitea-lxc.shвнутри контейнера - Копирование архива из LXC на Proxmox хост
- Создание vzdump контейнера (если
DO_VZDUMP=true) - Ротация старых бэкапов
Настройки:
| Переменная | По умолчанию | Описание |
|---|---|---|
LXC_ID |
300 |
ID контейнера Gitea |
BACKUP_STORAGE |
/var/lib/vz/dump |
Где хранить бэкапы |
DO_VZDUMP |
false |
Делать полный бэкап контейнера |
VZDUMP_COMPRESS |
zstd |
Сжатие vzdump |
KEEP_BACKUPS |
7 |
Сколько gitea бэкапов хранить |
KEEP_VZDUMP |
3 |
Сколько vzdump хранить |
REMOTE_BACKUP |
— | scp путь для копирования |
Пример:
LXC_ID=300 ./backup-proxmox.sh
LXC_ID=300 DO_VZDUMP=true ./backup-proxmox.sh
setup-backup-cron.sh
Настраивает автоматический бэкап через cron.
| Переменная | По умолчанию | Описание |
|---|---|---|
LXC_ID |
300 |
ID контейнера |
BACKUP_TIME |
12:00 |
Время ежедневного бэкапа |
Расписание:
- Ежедневно в указанное время: gitea dump + pg_dump
- Воскресенье в 13:00: + полный vzdump контейнера
Пример:
LXC_ID=300 BACKUP_TIME=03:00 ./setup-backup-cron.sh
После установки:
gitea-backup # ручной запуск
DO_VZDUMP=true gitea-backup # с полным бэкапом
tail -f /var/log/gitea-backup.log
restore-gitea.sh
Восстановление Gitea из бэкапа. Запускается внутри LXC после установки Gitea.
Поддерживает:
- Архивы созданные через
gitea dump - Нативные дампы PostgreSQL
- Ручные бэкапы директорий
Настройки:
| Переменная | По умолчанию | Описание |
|---|---|---|
NEW_DOMAIN |
auto | Новый домен/IP |
NEW_PORT |
3000 |
HTTP порт |
DB_USER |
gitea |
Пользователь PostgreSQL |
DB_NAME |
gitea |
Имя базы данных |
DB_PASSWORD |
gitea |
Пароль PostgreSQL |
Пример:
sudo ./restore-gitea.sh /tmp/gitea-backup-20240115-120000.tar.gz
NEW_DOMAIN=git.example.com DB_PASSWORD=secret ./restore-gitea.sh /tmp/backup.tar.gz
Выполняет:
- Распаковка архива
- Восстановление PostgreSQL
- Восстановление репозиториев и данных
- Обновление app.ini для нового сервера
- Регенерация SSH ключей и Git hooks
- Запуск Gitea
После восстановления проверьте:
- Авторизация пользователей
- Список репозиториев
- Git clone/push операции
Структура бэкапа
gitea-backup-YYYYMMDD-HHMMSS.tar.gz
├── database.sql # PostgreSQL дамп
├── gitea-dump.zip # Данные Gitea
├── app.ini # Конфигурация
├── gitea-version.txt # Версия Gitea
└── dump.log # Лог gitea dump