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.gzbackups/files_*.tar.gzbackups/redis_*.rdb
Backup automatyczny
Konfiguracja przez n8n
- Otwórz n8n: http://localhost:5678
- Zaimportuj workflow
Scheduled Backup - Skonfiguruj harmonogram (np. codziennie o 2:00)
- 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