# 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