Przejdź do głównej zawartości

Backup i restore

Jak tworzyć kopie zapasowe i przywracać dane.

Backup ręczny

Backup bazy danych

make backup-db

Tworzy plik backups/postgres_YYYYMMDD_HHMMSS.sql.gz

Backup plików

make backup-files

Tworzy archiwum backups/files_YYYYMMDD_HHMMSS.tar.gz

Pełny backup

make backup-all

Tworzy:

  • backups/postgres_*.sql.gz
  • backups/files_*.tar.gz
  • backups/redis_*.rdb

Backup automatyczny

Konfiguracja przez n8n

  1. Otwórz n8n: http://localhost:5678
  2. Zaimportuj workflow Scheduled Backup
  3. Skonfiguruj harmonogram (np. codziennie o 2:00)
  4. Skonfiguruj miejsce docelowe (S3, FTP, lokalnie)

Przykładowy cron (Linux)

# /etc/cron.d/hubanero-backup
0 2 * * * root cd /path/to/HUBanero && make backup-all

Restore

Restore bazy danych

make restore-db FILE=backups/postgres_20250115_020000.sql.gz
Uwaga

Restore nadpisuje całą bazę danych!

Restore plików

make restore-files FILE=backups/files_20250115_020000.tar.gz

Pełny restore

make down
make restore-db FILE=backups/postgres_*.sql.gz
make restore-files FILE=backups/files_*.tar.gz
make up

Retention

Zalecana polityka:

  • Daily backups: ostatnie 7 dni
  • Weekly backups: ostatnie 4 tygodnie
  • Monthly backups: ostatnie 12 miesięcy

Automatyczne czyszczenie

# Usuń backupy starsze niż 30 dni
find backups/ -name "*.gz" -mtime +30 -delete

Backup na zewnętrzny storage

S3 (MinIO, AWS)

# Konfiguracja w .env
S3_BUCKET=hubanero-backups
S3_ENDPOINT=https://s3.amazonaws.com
S3_ACCESS_KEY=xxx
S3_SECRET_KEY=xxx

# Upload
make backup-s3

FTP/SFTP

Użyj n8n workflow z integracją FTP.

Testowanie backupów

Regularnie testuj restore!

Raz w miesiącu wykonaj pełny restore na środowisku testowym.

# Na środowisku testowym
docker compose -f docker-compose.test.yml up -d
make restore-db FILE=backups/latest.sql.gz
# Sprawdź czy aplikacja działa