Newer
Older
homeassistant-infra / docs / EXISTING_VMS_SETUP.md
# Konfiguracja Home Assistant TEST/PROD

## 📊 Aktualna infrastruktura

### Środowiska Home Assistant

| Środowisko | VM ID | IP | URL | Status |
|------------|-------|-------------|---------------------------|---------|
| TEST | 101 | 192.168.50.151 | http://192.168.50.151:8123 | ✅ Działa |
| PROD | 100 | 192.168.50.242 | http://192.168.50.242:8123 | ✅ Działa |

### Zasoby VM

| VM | CPU | RAM | Dysk |
|----|-----|-----|------|
| TEST (101) | 2 cores | 2048 MB | 32 GB |
| PROD (100) | 2 cores | 4096 MB | 32 GB |

## 🔐 Konfiguracja SSH (WYMAGANE dla automatyzacji)

### Włączanie SSH w Home Assistant

#### TEST (192.168.50.151)

1. Otwórz: http://192.168.50.151:8123
2. Zaloguj się
3. **Settings** (⚙️) → **Add-ons** → **Add-on Store**
4. Wyszukaj: **Terminal & SSH**
5. Kliknij **Install**
6. Po instalacji:
   - **Start** addon
   - **Configuration** → Ustaw hasło: `QWer!@34`
   - **Save**
   - **Restart** addon
7. Weryfikacja:
   ```bash
   ssh root@192.168.50.151
   # hasło: QWer!@34
   ha core info
   ```

#### PROD (192.168.50.242)

Powtórz te same kroki dla środowiska PROD:
- URL: http://192.168.50.242:8123
- SSH: `ssh root@192.168.50.242`

## 🚀 Automatyzacja po włączeniu SSH

### Sprawdzenie dostępu

```bash
cd ~/homeassistant-infra
./scripts/check-ssh-access.sh
```

### Backup

Backup wszystkich środowisk:
```bash
./scripts/backup-ha.sh all
```

Backup pojedynczego:
```bash
./scripts/backup-ha.sh test
./scripts/backup-ha.sh prod
```

### Synchronizacja TEST → PROD

**UWAGA:** To nadpisze konfigurację PROD konfiguracją z TEST!

```bash
./scripts/sync-test-to-prod.sh
```

Co robi skrypt:
1. ✅ Automatyczny backup PROD przed zmianami
2. 📋 Kopiowanie plików konfiguracyjnych (configuration.yaml, automations.yaml, etc.)
3. 📁 Kopiowanie katalogów (custom_components, themes, www)
4. ♻️ Restart Home Assistant na PROD
5. 💾 Backup zapisany w `./backups/`

### Restore z backupu

Jeśli coś pójdzie nie tak:

```bash
./scripts/restore-backup.sh ./backups/prod_backup_YYYYMMDD_HHMMSS.tar.gz prod
```

## 📂 Struktura konfiguracji HA

Po włączeniu SSH, konfiguracja HA znajduje się w:

```
/root/config/
├── configuration.yaml      # Główna konfiguracja
├── automations.yaml        # Automatyzacje
├── scripts.yaml            # Skrypty
├── scenes.yaml             # Sceny
├── customize.yaml          # Customizacje
├── secrets.yaml            # Sekrety (hasła, tokeny)
├── custom_components/      # Custom integracje
├── themes/                 # Motywy
└── www/                    # Pliki statyczne
```

## 🔄 Workflow codziennej pracy

### 1. Praca w środowisku TEST

```bash
# Połącz się z TEST
ssh root@192.168.50.151

# Lub edytuj przez WebUI
open http://192.168.50.151:8123
```

Dodaj/edytuj:
- Automatyzacje
- Integracje
- Skrypty
- Dashboardy

### 2. Testowanie

Sprawdź czy wszystko działa poprawnie w TEST:
- Uruchom automatyzacje
- Przetestuj scenariusze
- Sprawdź logi: Settings → System → Logs

### 3. Commit do Git (opcjonalnie)

```bash
cd ~/homeassistant-infra

# Pobierz konfigurację z TEST
scp -r root@192.168.50.151:/root/config/* ./ha-config-test/

# Commit
git add .
git commit -m "Dodano automatyzację XYZ"
git push
```

### 4. Deploy na PROD

Gdy wszystko działa w TEST:

```bash
cd ~/homeassistant-infra
./scripts/sync-test-to-prod.sh
```

Potwierdź synchronizację i gotowe!

### 5. Weryfikacja PROD

```bash
# Sprawdź logi
ssh root@192.168.50.242 "ha core logs"

# Lub przez WebUI
open http://192.168.50.242:8123
```

## 🆘 Troubleshooting

### SSH nie działa

```bash
# Sprawdź czy addon jest uruchomiony
ssh root@192.168.50.151 # jeśli nie działa, sprawdź przez WebUI

# Restart addonu przez WebUI:
# Settings → Add-ons → Terminal & SSH → Restart
```

### Synchronizacja się nie powiodła

```bash
# Przywróć ostatni backup
ls -lh ~/homeassistant-infra/backups/
./scripts/restore-backup.sh ~/homeassistant-infra/backups/prod_backup_XXX.tar.gz prod
```

### Home Assistant nie odpowiada

```bash
# Restart HA
ssh root@192.168.50.151 "ha core restart"

# Lub restart całej VM
ssh root@192.168.50.200 "qm reboot 101"
```

### Sprawdzenie logów

```bash
# Logi core
ssh root@192.168.50.151 "ha core logs"

# Logi supervisora
ssh root@192.168.50.151 "ha supervisor logs"
```

## 📚 Automatyczne backupy (cron)

Dodaj do crontab dla automatycznych backupów:

```bash
crontab -e
```

Dodaj linię (backup codziennie o 2:00):
```cron
0 2 * * * cd ~/homeassistant-infra && ./scripts/backup-ha.sh all >> ~/ha-backup.log 2>&1
```

## 🔗 Przydatne linki

- **TEST WebUI**: http://192.168.50.151:8123
- **PROD WebUI**: http://192.168.50.242:8123
- **Proxmox**: https://192.168.50.200:8006
- **GitBucket**: http://192.168.50.101:8080/root/homeassistant-infra
- **HA Docs**: https://www.home-assistant.io/docs/

## ✅ Checklist po skonfigurowaniu SSH

- [ ] SSH działa na TEST (192.168.50.151)
- [ ] SSH działa na PROD (192.168.50.242)
- [ ] Wykonany pierwszy backup: `./scripts/backup-ha.sh all`
- [ ] Przetestowana synchronizacja: `./scripts/sync-test-to-prod.sh`
- [ ] Przetestowany restore: `./scripts/restore-backup.sh`
- [ ] Dodany cron job dla automatycznych backupów
- [ ] Skrypty commitowane do Git

## 🎉 Gotowe!

Po wykonaniu powyższych kroków masz w pełni zautomatyzowane środowiska!

**Workflow:**
```
Zmiana w TEST → Test → Sync do PROD → Gotowe!
```

Wszystkie backupy są automatyczne, wszystko wersjonowane, zero ręcznej pracy! 🚀