
La domotica open source sta diventando sempre più accessibile potente e personalizzabile e Home Assistant rappresenta una delle soluzioni più complete per il controllo intelligente della propria casa.
Grazie alla sua vasta compatibilità con dispositivi e servizi permette di centralizzare automazioni monitoraggio e gestione energetica in un’unica piattaforma.
In questo articolo vedremo come installare e configurare Home Assistant su Ubuntu Server 24.04 utilizzando Docker e Portainer una combinazione ideale per ottenere un sistema stabile modulare e facile da amministrare.
Partiremo da una configurazione base pensata sia per chi si avvicina per la prima volta a Home Assistant sia per chi desidera una soluzione pulita e manutenibile in ambiente server.
Al termine della guida avrai un’installazione funzionante pronta per essere personalizzata e ampliata secondo le tue esigenze domotiche.
INSTALLAZIONE DI DOCKER
Per prima cosa rimuovere tutte le versioni più vecchie di Docker Engine, se esistono.
Probabilmente non ne avrai se questa è una nuova installazione di Ubuntu Server
Eseguire il comando:
|
0 |
sudo apt-get remove docker docker-engine docker.io containerd runc
|
Aggiornare l’indice del pacchetto apt e permettere che usi HTTPS con questi due comandi:
|
0
1
2
3
4
5
6
|
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
|
Aggiungere la chiave GPG ufficiale di Dockers con il comando:
|
0 |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
Configurare il repository file per la versione stabile di Docker con il comando:
|
0
1
2
|
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
Installare il motore Docker usando questi due comandi:
|
0
1
2
|
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
|
Verificare che tutto funzioni eseguendo il container docker di Hello World.
Se tutto funziona correttamente vedremo il contenitore inviare un messaggio sullo schermo e poi spegnersi da solo.
Eseguire il comando:
|
0 |
sudo docker run hello-world
|
Dovremmo visualizzare il seguente output:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
|
GESTIRE DOCKER COME UTENTE NON ROOT
Per far funzionare Docker come utente non root bisogna aggiungere il nostro utente al gruppo Docker.
Prima di tutto creare il gruppo Docker se non esiste già con il comando:
|
0 |
sudo groupadd docker
|
Ora aggiungere l’account utente a quel gruppo Docker con il comando:
|
0 |
sudo usermod -aG docker $USER
|
Uscire e rientrare per far entrare in vigore le modifiche ai permessi.
Se tutto ha funzionato correttamente dovremmo riuscire a riscaricare e far girare il container Docker di Hello World senza usare sudo.
Eseguire il comando:
|
0 |
docker run hello-world
|
Dovremmo visualizzare il seguente output:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
|
INSTALLAZIONE DI DOCKER COMPOSE
Docker Compose è un utility davvero pratico che ti permette di creare e configurare container Docker usando un file YAML.
Questo rende molto facile creare e configurare molti container contemporaneamente oltre che a fare il backup dell’ambiente.
Scaricare l’attuale versione stabile di Docker Compose con il comando:
|
0 |
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
Impostare i permessi sui file scaricati per permetterci di eseguirli con il comando:
|
0 |
sudo chmod +x /usr/local/bin/docker-compose
|
Docker Compose è ora installato e possiamo verificare la versione con il comando:
|
0 |
docker-compose --version
|
Se tutto ha funzionato come previsto dovremmo vedere le informazioni sulla versione come di seguito:
|
0 |
docker-compose version 1.29.2, build 5becea4c
|
INSTALLAZIONE DI PORTAINER
Portainer è un’interfaccia grafica che permette di visualizzare e gestire i container Docker.
Per installare Portainer creare un file YAML Docker Compose.
Questo file contiene tutte le informazioni necessarie per creare e avviare il contenitore.
Per prima cosa posizionarsi nella directory /opt con il comando:
|
0 |
cd /opt
|
Creare un nuovo file chiamato docker-compose.yaml con il comando:
|
0 |
sudo nano docker-compose.yaml
|
Copiare e incollare queste informazioni di configurazione nel file:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
|
version: '3.0'
services:
portainer:
container_name: portainer
image: portainer/portainer-ce
restart: always
ports:
- "9000:9000/tcp"
environment:
- TZ=Europe/London
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/portainer:/data
|
Salvare e chiudere il file di configurazione
Avviare Docker usando il seguente comando.
|
0 |
docker-compose up -d
|
NOTA BENE: Assicurarsi di essere nella directory /opt quando si esegue questo comando perché deve essere eseguito dallo stesso punto in cui tieni il file docker-compose.yaml.
Questo farà apparire i container Docker specificato nel file compose e il -d li avvierà in modalità Detached e il che significa che funzioneranno in background.
Dovremmo voisualizzare un output come di seguito:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
58dc5c0825bd: Pull complete
4112b93cf829: Pull complete
1afead586dc7: Pull complete
b071ae90ad0b: Pull complete
98bd069202e1: Pull complete
be8d9f06dee9: Pull complete
c279252b8cfc: Pull complete
681530796208: Pull complete
5f0656422b7e: Pull complete
f38c88c48fd4: Pull complete
37a5db328c40: Pull complete
4f4fb700ef54: Pull complete
819bd17e811a: Pull complete
1c0acef014e2: Pull complete
9bb2e9cfed75: Pull complete
6c8aeb2292a1: Pull complete
0bbd24ed0d23: Pull complete
2588d342573e: Pull complete
bc611553c15c: Pull complete
d3963bd06fa8: Pull complete
7056bea2dc39: Pull complete
31e7cc0d6ae2: Pull complete
79e28ddf26cd: Pull complete
a26641f8a05b: Download complete
Digest: sha256:c9da2a0a5738ceb26e1b4f672825c09371e51ae5e285beffa3072757b7817f3e
Status: Downloaded newer image for ghcr.io/home-assistant/home-assistant:stable
Creating homeassistant ... done
|
A questo punto da un qualsiasi browser richiamare il seguente link:
http://<FQDN-O-IP-ADDRESS>:9000/
La prima volta che si carica Portainer verrà chiesto di creare un nome utente e una password. Questo dovrà essere fatto solo la prima volta che viene aperto
Inserire la password dell’utente Admin quindi cliccare Create User
Cliccare su Get Started
Cliccare su Live Connect
INSTALLAZIONE DI HOME ASSISTANT CON DOCKER COMPOSE
Questa parte è semplice basta seguire le istruzioni sul sito di Home Assistant per installare il container Home Assistant tramite Docker Compose
Di seguito il link sul sito di Home Assistant con le istruzioni:
https://www.home-assistant.io/installation/linux#docker-compose
Editare il file docker-compose.yaml con il comando:
|
0 |
sudo nano docker-compose.yaml
|
Incollare l’esempio di Docker Compose dalle istruzioni di installazione di Home Assistant Container Docker Compose.
Assicurarsi di cambiare la parte /PATH_TO_YOUR_CONFIG nel luogo dove si vuole conservare la configurazione.
Incollare l’output seguente nel file:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
|
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /opt/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
TZ: Europe/Rome
|
Salvare e uscire dal file di configurazione
Rieseguire il seguente comando per creare il contenitore di Home Assistant:
|
0 |
docker-compose up -d
|
NOTA BENE: Eseguire questo comando ogni volta che si apportano modifiche al file docker-compose.yaml.
La prima volta che lo si esegue scaricherà tutti i container e le dipendenze necessari per eseguire Home Assistant.
Una volta fatto dovresti poter tornare su Portainer e vedere il contenitore del tuo nuovo Home Assistant elencato
Dovremmo visualizzare il container come mostrato nell’immagine sovrastante
CONFIGURAZIONE DI HOME ASSISTANT DA WEB GUI
Aprire il browser web e accedere all’interfaccia di Home Assistant usando l’URL http://your-server-ip:8123.
Dovremmo vedere la pagina di benvenuto di Home Assistant. Cliccare su Create my Smart Home
Inserire il nome dell’utente e la relativa password quindi cliccare Create Account
Inserire la posizione del server Home Assistant quindi cliccare Next
Cliccare Next
Cliccare Finish per terminare l’installazione
Se è andato tutto a buon fine dovremmo visualizzare la DashBoard di Home Assistant

0 commenti