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-onsAdd-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:
    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:

🚀 Automatyzacja po włączeniu SSH

Sprawdzenie dostępu

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

Backup

Backup wszystkich środowisk:

./scripts/backup-ha.sh all

Backup pojedynczego:

./scripts/backup-ha.sh test
./scripts/backup-ha.sh prod

Synchronizacja TEST → PROD

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

./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:

./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

# 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)

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:

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

Potwierdź synchronizację i gotowe!

5. Weryfikacja PROD

# 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

# 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

# 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

# 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

# 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:

crontab -e

Dodaj linię (backup codziennie o 2:00):

0 2 * * * cd ~/homeassistant-infra && ./scripts/backup-ha.sh all >> ~/ha-backup.log 2>&1

🔗 Przydatne linki

✅ 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! 🚀