Newer
Older
homeassistant-infra / README.md
# Home Assistant - Test/Prod Infrastructure

Automatyczne zarządzanie środowiskami Home Assistant na Proxmox z wykorzystaniem Infrastructure as Code.

## 📋 Architektura

```
Proxmox 192.168.50.200
├── VM 210: homeassistant-test (192.168.50.210)
│   └── Home Assistant OS 13.2
└── VM 211: homeassistant-prod (192.168.50.211)
    └── Home Assistant OS 13.2
```

## 🚀 Szybki start

### 1. Utworzenie środowiska TEST

```bash
cd ~/homeassistant-infra
chmod +x scripts/*.sh
./scripts/create-ha-vm.sh test
```

Pierwsze uruchomienie zajmie ~10-15 minut. Sprawdź status:

```bash
watch -n 5 'curl -s http://192.168.50.210:8123 && echo " - HA Ready!" || echo " - Czekam..."'
```

### 2. Konfiguracja początkowa Home Assistant

1. Otwórz: http://192.168.50.210:8123
2. Przejdź przez wizard (użytkownik, lokalizacja, integracje)
3. **Ważne**: Włącz SSH access
   - Supervisor → System → Join → "Advanced Mode"
   - Settings → Add-ons → Terminal & SSH
   - Zainstaluj i uruchom
   - Configuration → Ustaw hasło: `QWer!@34`

### 3. Testowanie i developement

Pracuj na środowisku TEST:
- Dodawaj integracje
- Twórz automatyzacje
- Testuj scenariusze
- Modyfikuj konfigurację

### 4. Utworzenie środowiska PROD

```bash
./scripts/create-ha-vm.sh prod
```

Powtórz konfigurację początkową jak dla TEST.

### 5. Synchronizacja TEST → PROD

Gdy zmiany w TEST są gotowe:

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

Skrypt:
- Utworzy backup PROD
- Skopiuje konfigurację z TEST do PROD
- Zrestartuje PROD

## 🔧 Zarządzanie

### Backup

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

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

Backupy są zapisywane w `./backups/`

### Restore

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

### Zarządzanie VM

#### Status VM
```bash
ssh root@192.168.50.200 "qm status 210"  # TEST
ssh root@192.168.50.200 "qm status 211"  # PROD
```

#### Stop/Start VM
```bash
ssh root@192.168.50.200 "qm stop 210"
ssh root@192.168.50.200 "qm start 210"
```

#### Restart
```bash
ssh root@192.168.50.200 "qm reboot 210"
```

#### Logi konsoli
```bash
ssh root@192.168.50.200 "qm terminal 210"
```

## 📂 Struktura projektu

```
homeassistant-infra/
├── scripts/
│   ├── create-ha-vm.sh       # Tworzenie VM
│   ├── sync-test-to-prod.sh  # Synchronizacja środowisk
│   ├── backup-ha.sh           # Backup
│   └── restore-backup.sh      # Restore
├── backups/                   # Backupy konfiguracji
├── docs/                      # Dokumentacja
└── README.md                  # Ten plik
```

## 🔄 Workflow codziennej pracy

```mermaid
graph LR
    A[Zmiana w TEST] --> B[Testowanie]
    B --> C{Działa?}
    C -->|Nie| A
    C -->|Tak| D[git commit]
    D --> E[git push]
    E --> F[sync-test-to-prod.sh]
    F --> G[Produkcja gotowa]
```

1. **Edycja w TEST** - pracuj na http://192.168.50.210:8123
2. **Testowanie** - upewnij się że wszystko działa
3. **Commit do Git** (opcjonalnie):
   ```bash
   git add .
   git commit -m "Dodano automatyzację X"
   git push origin master
   ```
4. **Deploy na PROD**:
   ```bash
   ./scripts/sync-test-to-prod.sh
   ```

## 🔐 Dane dostępowe

| Środowisko | IP | URL | SSH |
|------------|------------|--------------------------|-----|
| Proxmox | 192.168.50.200 | https://192.168.50.200:8006 | root / QWer!@34 |
| HA Test | 192.168.50.210 | http://192.168.50.210:8123 | root / QWer!@34 |
| HA Prod | 192.168.50.211 | http://192.168.50.211:8123 | root / QWer!@34 |
| GitBucket | 192.168.50.101 | http://192.168.50.101:8080 | root / root |

## 📦 Zasoby VM

| Środowisko | CPU | RAM | Dysk |
|------------|-----|-----|------|
| TEST | 2 cores | 4 GB | 32 GB |
| PROD | 4 cores | 6 GB | 64 GB |

## 🔗 Integracja z Git

### Dodanie repozytorium do GitBucket

```bash
cd ~/homeassistant-infra
git remote add origin http://192.168.50.101:8080/git/root/homeassistant-infra.git
git push -u origin master
```

### Codzienne użycie

```bash
# Przed zmianami
git pull

# Po zmianach
git add .
git commit -m "Opis zmian"
git push
```

## 🆘 Troubleshooting

### VM nie startuje
```bash
ssh root@192.168.50.200 "qm list"
ssh root@192.168.50.200 "tail -100 /var/log/syslog | grep qm"
```

### Home Assistant nie odpowiada
```bash
# Sprawdź logi VM
ssh root@192.168.50.210 "ha core logs"

# Restart HA
ssh root@192.168.50.210 "ha core restart"

# Restart całej VM
ssh root@192.168.50.200 "qm reboot 210"
```

### Synchronizacja się nie powiodła
```bash
# Przywróć backup
./scripts/restore-backup.sh ./backups/prod_backup_XXX.tar.gz prod
```

### Brak dostępu SSH do HA
- Zaloguj się przez webUI
- Supervisor → Terminal & SSH
- Sprawdź czy addon jest uruchomiony
- Sprawdź konfigurację hasła

## 📚 Kolejne kroki

1. **Automatyzacja backupów** - cron job:
   ```bash
   0 2 * * * cd ~/homeassistant-infra && ./scripts/backup-ha.sh all
   ```

2. **Monitoring** - dodaj sprawdzanie dostępności HA

3. **CI/CD** - GitBucket webhooks → auto-deploy

4. **Rozbudowa** - dodaj staging environment

## 📖 Dokumentacja Home Assistant

- [Official Docs](https://www.home-assistant.io/docs/)
- [Community Forum](https://community.home-assistant.io/)
- [Integrations](https://www.home-assistant.io/integrations/)

## 🤝 Wsparcie

W razie problemów:
1. Sprawdź logi
2. Przywróć backup
3. Skontaktuj się z administratorem

---

**Autor**: Generated by GitHub Copilot CLI  
**Data**: 2026-02-03  
**Wersja**: 1.0