Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Production moved from on-prem VM 249 (10.22.68.249) to OVH VPS (57.128.200.27, inpi-vps-waw01). Updated ALL documentation, slash commands, memory files, architecture docs, and deploy procedures. Added |local_time Jinja filter (UTC→Europe/Warsaw) and converted 155 .strftime() calls across 71 templates so timestamps display in Polish timezone regardless of server timezone. Also includes: created_by_id tracking, abort import fix, ICS calendar fix for missing end times, Pros Poland data cleanup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.0 KiB
5.0 KiB
NordaBiz Backup Operations
Wykonaj backup bazy danych i konfiguracji projektu NordaBiz.
Argument: $ARGUMENTS
Opcjonalny argument określa typ backupu:
/backup- pełny backup (DB + pliki)/backup db- tylko baza danych/backup snapshot- snapshot VM w Proxmox/backup restore- przywracanie (interaktywne)/backup status- sprawdź status automatycznych backupów
System automatycznych backupów
Harmonogram (cron na OVH VPS inpi-vps-waw01)
| Typ | Częstotliwość | Godzina | Retencja | Lokalizacja |
|---|---|---|---|---|
| Hourly | Co godzinę | :00 | 24h | /var/backups/nordabiz/hourly/ |
| Daily | Codziennie | 02:00 | 30 dni | /var/backups/nordabiz/daily/ |
| Offsite | Codziennie | 04:00 | 30 dni | PBS (10.22.68.127) |
| Config | Tygodniowo | Niedziela 03:00 | 4 tyg | /var/backups/nordabiz/config/ |
Sprawdzenie statusu backupów
# Ostatnie backupy hourly
ssh maciejpi@57.128.200.27 "ls -lt /var/backups/nordabiz/hourly/ | head -5"
# Ostatnie backupy daily
ssh maciejpi@57.128.200.27 "ls -lt /var/backups/nordabiz/daily/ | head -5"
# Sprawdź offsite (PBS)
ssh maciejpi@10.22.68.127 "ls -lt /backup/nordabiz/daily/ | head -5"
# Rozmiar backupów
ssh maciejpi@57.128.200.27 "du -sh /var/backups/nordabiz/*"
Kroki do wykonania:
1. Backup lokalnej bazy PostgreSQL (DEV via Docker)
mkdir -p backups
docker exec nordabiz-postgres pg_dump -U nordabiz_app nordabiz > "backups/dev_$(date +%Y%m%d_%H%M%S).sql"
2. Backup produkcyjnej bazy PostgreSQL
Eksport do lokalnego:
ssh maciejpi@57.128.200.27 "sudo -u postgres pg_dump nordabiz" > "backups/prod_$(date +%Y%m%d_%H%M%S).sql"
Lub backup na serwerze:
ssh maciejpi@57.128.200.27 "sudo -u postgres pg_dump -Fc nordabiz > /tmp/backup_$(date +%Y%m%d_%H%M%S).dump"
3. Backup plików konfiguracyjnych
mkdir -p backups/config_$(date +%Y%m%d)
cp .env backups/config_$(date +%Y%m%d)/dev.env
ssh maciejpi@57.128.200.27 "cat /var/www/nordabiznes/.env" > backups/config_$(date +%Y%m%d)/prod.env
ssh maciejpi@57.128.200.27 "cat /etc/nginx/sites-available/nordabiznes" > backups/config_$(date +%Y%m%d)/nginx.conf
4. Snapshot VM w Proxmox
Użyj skill proxmox-manager:
Utwórz snapshot VM OVH VPS inpi-vps-waw01 (OVH VPS) z opisem "Backup przed [operacja]"
Lub ręcznie:
ssh root@10.22.68.10 "qm snapshot 249 backup_$(date +%Y%m%d) --description 'Automatyczny backup'"
5. Lista istniejących backupów
Lokalne:
ls -la backups/*.sql 2>/dev/null
Snapshoty VM (użyj skill proxmox-manager):
Pokaż snapshoty OVH VPS
6. Przywracanie z backupu
Szybkie przywracanie (skrypt DR)
ssh maciejpi@57.128.200.27 "sudo /var/www/nordabiznes/scripts/dr-restore.sh /var/backups/nordabiz/hourly/nordabiz_YYYYMMDD_HH.dump"
DEV (Docker PostgreSQL):
docker exec -i nordabiz-postgres psql -U nordabiz_app -d nordabiz < backups/dev_YYYYMMDD_HHMMSS.sql
PROD (PostgreSQL):
cat backups/prod_YYYYMMDD_HHMMSS.sql | ssh maciejpi@57.128.200.27 "sudo -u postgres psql nordabiz"
Rollback VM:
Użyj skill proxmox-manager:
Przywróć OVH VPS ze snapshotu backup_YYYYMMDD
Konfiguracja cron (na serwerze PROD)
Plik: /etc/cron.d/nordabiz-backup
# Backup co godzinę (retencja 24h)
0 * * * * postgres pg_dump -Fc nordabiz > /var/backups/nordabiz/hourly/nordabiz_$(date +\%Y\%m\%d_\%H).dump 2>> /var/log/nordabiznes/backup.log
# Backup dzienny o 2:00 (retencja 30 dni)
0 2 * * * postgres pg_dump -Fc nordabiz > /var/backups/nordabiz/daily/nordabiz_$(date +\%Y\%m\%d).dump 2>> /var/log/nordabiznes/backup.log
# Cleanup starych hourly (24h)
0 3 * * * root find /var/backups/nordabiz/hourly -name "*.dump" -mtime +1 -delete
# Cleanup starych daily (30 dni)
0 3 * * * root find /var/backups/nordabiz/daily -name "*.dump" -mtime +30 -delete
Plik: /etc/cron.d/nordabiz-offsite
# Sync daily backups do PBS o 4:00
0 4 * * * root rsync -avz --delete /var/backups/nordabiz/daily/ maciejpi@10.22.68.127:/backup/nordabiz/daily/ 2>> /var/log/nordabiznes/backup.log
# Sync config do PBS o 4:30
30 4 * * * root rsync -avz /var/backups/nordabiz/config/ maciejpi@10.22.68.127:/backup/nordabiz/config/ 2>> /var/log/nordabiznes/backup.log
Disaster Recovery
Pełna dokumentacja: docs/DR-PLAYBOOK.md
Metryki SLA
- RTO: 30-60 min
- RPO: 1 godzina
Skrypt restore
sudo /var/www/nordabiznes/scripts/dr-restore.sh /path/to/backup.dump
Przechowywanie:
- Lokalne DEV:
./backups/(dodane do .gitignore) - Lokalne PROD:
/var/backups/nordabiz/ - Offsite: PBS (10.22.68.127:/backup/nordabiz/)
- Proxmox: snapshoty VM
Uwagi:
- ZAWSZE rób backup przed większymi zmianami
- Testuj przywracanie okresowo (co kwartał)
- Snapshoty VM są najszybsze do rollbacku
- PostgreSQL dump jest przenośny między środowiskami
- DEV używa Docker PostgreSQL na localhost:5433
- PROD używa PostgreSQL na 57.128.200.27:5432
Data aktualizacji: 2026-02-02