Passa al contenuto principale
Versione: 0.5.4

Home Assistant su Aruba Cloud

Esegui il deployment di Home Assistant — la principale piattaforma open-source per la domotica — su Aruba Cloud tramite Terraform e cloud-init. Home Assistant viene eseguito come container Docker (edizione Home Assistant Container) con archiviazione persistente della configurazione.

Versione provider: arubacloud/arubacloud ~> 1.0 | Terraform: ≥ 1.9


Introduzione​

Home Assistant è un hub di automazione domestica focalizzato sulla privacy che si integra con migliaia di dispositivi smart home. Questo esempio distribuisce l'edizione Home Assistant Container, che fornisce l'esperienza completa di Home Assistant core in un container Docker. Esegue il provisioning di:

  • Docker installato dal repository apt Docker ufficiale
  • Home Assistant Container (ghcr.io/home-assistant/home-assistant:stable) gestito da Docker Compose
  • Configurazione persistente salvata in /opt/homeassistant/config
  • Un servizio systemd che avvia Home Assistant automaticamente all'avvio
  • Porta 8123 per l'interfaccia web, limitata a admin_cidr
  • Timezone configurabile

Configurazione iniziale: La prima visita all'interfaccia di Home Assistant avvia il wizard di onboarding dove crei il tuo account admin e configuri la posizione della tua casa. Nessuna credenziale viene preimpostata da Terraform.


Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern del nomeDescrizione
arubacloud_projectha-prodContenitore del progetto
arubacloud_vpcha-prod-vpcVirtual Private Cloud
arubacloud_subnetha-prod-subnetSubnet base
arubacloud_securitygroupha-prod-vm-sgSecurity group
arubacloud_securityruleha-prod-vm-sshRegola ingress SSH
arubacloud_securityruleha-prod-vm-admin-uiRegola ingress interfaccia web TCP 8123
arubacloud_elasticipha-prod-vm-eipIP pubblico della VM
arubacloud_blockstorageha-prod-bootDisco di boot da 32 GB (Performance)
arubacloud_keypairha-prod-keypairChiave pubblica SSH
arubacloud_cloudserverha-prod-vmVM CloudServer

Costo mensile stimato​

RisorsaSpecificheCosto stimato/mese
VM CloudServerCSO2A4 — 2 vCPU / 4 GB~€18
Disco di boot32 GB Performance~€5
Elastic IP—~€3
Totale~€26/mese

Requisiti​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 1.0
  • Un account ArubaCloud con credenziali API OAuth2
  • Una coppia di chiavi SSH

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2 di ArubaCloud
arubacloud_client_secretClient secret OAuth2 di ArubaCloud
ssh_public_keyContenuto della chiave pubblica SSH

Opzionali​

VariabileDefaultDescrizione
app_name"ha"Nome breve usato in tutti i nomi delle risorse
environment"prod"Etichetta dell'ambiente
location"ITBG-Bergamo"Regione ArubaCloud
zone"ITBG-1"Zona di disponibilità
billing_period"Hour""Hour" o "Month"
vm_flavor"CSO2A4"Flavor del CloudServer
vm_image"LU22-001"Immagine del disco di boot (Ubuntu 22.04 LTS)
vm_disk_size_gb32Dimensione del disco di boot in GB
ssh_cidr"0.0.0.0/0"CIDR per SSH
admin_cidr"0.0.0.0/0"CIDR per l'interfaccia web porta 8123 — limita in produzione
timezone"UTC"Timezone per Home Assistant

Output​

OutputDescrizione
home_assistant_urlURL dell'interfaccia web Home Assistant
vm_public_ipIndirizzo IP pubblico della VM
ssh_commandComando SSH per connettersi alla VM

Istruzioni di deployment​

1. Clona e naviga​

git clone https://github.com/arubacloud/terraform-arubacloud-examples.git
cd terraform-arubacloud-examples/home-assistant

2. Configura le variabili​

cp terraform.tfvars.example terraform.tfvars

Imposta credenziali, timezone e limita l'interfaccia al tuo IP:

timezone = "Europe/Rome"
admin_cidr = "203.0.113.42/32"
ssh_cidr = "203.0.113.42/32"

3. Esegui il deployment​

terraform init
terraform plan
terraform apply

Il bootstrap richiede circa 3–5 minuti (installazione Docker + download immagine).

4. Completa l'onboarding​

terraform output home_assistant_url

Apri l'URL — la prima visita mostra il wizard di onboarding. Crea il tuo account admin, imposta la posizione della tua casa e inizia ad aggiungere integrazioni.


Raccomandazioni di sicurezza​

  1. Limita admin_cidr al tuo IP o al CIDR del tunnel VPN. Home Assistant su 0.0.0.0/0 è accettabile per la configurazione iniziale, ma dovrebbe essere bloccato prima di connettere qualsiasi dispositivo reale.

  2. Abilita HTTPS. Home Assistant supporta TLS nativamente. Dopo l'onboarding, vai su Impostazioni → Sistema → Rete e configura una rete attendibile o abilita il proxy HTTPS integrato. In alternativa, posizionalo dietro Caddy o NGINX (da questo repository) per TLS automatico.

  3. Usa una VPN. La configurazione a lungo termine consigliata è: limita admin_cidr al CIDR del tunnel WireGuard e accedi a Home Assistant esclusivamente tramite VPN.


Risoluzione dei problemi​

Home Assistant non si carica dopo il deployment​

ssh ubuntu@$(terraform output -raw vm_public_ip)
docker logs homeassistant --tail 50
sudo systemctl status homeassistant

Il primo avvio scarica ~200 MB da GitHub Container Registry — attendi 3–5 minuti.

Aggiornamento di Home Assistant​

ssh ubuntu@$(terraform output -raw vm_public_ip)
cd /opt/homeassistant
docker compose pull
docker compose up -d

Home Assistant rilascia nuove versioni mensilmente. Considera l'abilitazione di Impostazioni → Sistema → Aggiornamenti nell'interfaccia HA per aggiornamenti in-place.


Riferimenti​