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>
168 lines
5.0 KiB
Markdown
168 lines
5.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
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:
|
|
```bash
|
|
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:
|
|
```bash
|
|
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
|
|
```bash
|
|
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:
|
|
```bash
|
|
ssh root@10.22.68.10 "qm snapshot 249 backup_$(date +%Y%m%d) --description 'Automatyczny backup'"
|
|
```
|
|
|
|
### 5. Lista istniejących backupów
|
|
Lokalne:
|
|
```bash
|
|
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)
|
|
```bash
|
|
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):
|
|
```bash
|
|
docker exec -i nordabiz-postgres psql -U nordabiz_app -d nordabiz < backups/dev_YYYYMMDD_HHMMSS.sql
|
|
```
|
|
|
|
#### PROD (PostgreSQL):
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
# 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`
|
|
|
|
```bash
|
|
# 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
|
|
```bash
|
|
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
|