Hoy vengo a mostraros como instalar Hassio (que no Home Assistant) en un contenedor Docker sobre DietPi.
La ventaja de instalar Hassio es que tenemos acceso a la tienda de Addons y disfrutar de las integraciones de Home Assistant desde su interfaz web, lo que lo hace más fácil de configurar.
Con este sistema, podremos disfrutar de lo mejor de instalar Home Assistant sobre un sistema operativo (flexibilidad, posibilidad de instalar más software…) con lo mejor de Hass.io (sencillez)
Instalando DietPi
DietPi es una distro ligera para Raspberry Pi que instala lo mínimo para funcionar. Es por su ligereza que he elegido esta distro para este proyecto.
Para instalar DietPi, simplemente nos descargamos la imagen de su web y la grabamos en una tarjeta microSD con Balena Etcher o similar.
Una vez grabada la imagen introducimos la tarjeta SD en la Raspberry Pi, conectamos teclado, monitor y seguimos el asistente de configuración.
Con el asistente finalizado vamos a pasar a establecer una IP estática en nuestra Raspberry, para ello ejecutamos el comando dietpi-config y seleccionamos la opción número 7 «Network Options: Adapters«.
A continuación seleccionaremos Ethernet o Wifi en función de la conexión que estemos utilizando (Yo utilizaré Wifi) y presionamos enter sobre «Change Mode: [DHCP]». Veremos que cambia a [Static] y nos permite introducir nuestra configuración de red

Una vez hecho esto, guardamos los cambios y reiniciamos nuestra Raspberry Pi. Ahora podemos prescindir del monitor y teclado y conectarnos mediante SSH para el resto de pasos.
Instalando Docker y Portainer en DietPi
Lo siguiente sería la instalación de Docker, Docker-compose y la interfaz web Portainer.
La instalación de Docker la haremos mediante el comando dietpi-software Seleccionamos la opción Search y buscamos Docker. Lo seleccionamos, hacemos clic en OK y a continuación en Install.

Con esto tendríamos Docker instalado. Vamos a instalar también Docker-compose lo que nos ayudará más adelante a medida que nuestra configuración se vaya complicando.
1 | sudo apt-get install docker-compose |
Una vez instalado, debemos crearemos el archivo docker-compose.yml en el que configuraremos el contenedor de Portainer.
1 | sudo nano docker-compose.yml |
Podemos crearlo en el directorio que queramos, yo lo he hecho en /etc/docker En su interior pondremos lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 | version: '3' services: portainer: container_name: portainer image: portainer/portainer volumes: - '/var/run/docker.sock:/var/run/docker.sock' expose: - 9000 ports: - 80:9000 restart: always |
Con el archivo creado ejecutamos el comando docker-compose up -d lo que descargará el paquete de Dockerhub, creará el contendor y lo ejecutará.
Una vez terminado, y si todo ha ido bien, al poner en un navegador la IP de nuestra Raspberry Pi deberíamos ver la interfaz de Portainer. Nos pedirá que creemos una contraseña para el usuario admin, la creamos y accedemos al siguiente Dashboard.

¿Todo bien? Perfecto, porque ahora viene lo interesante.
Instalar Hassio en Docker
Ahora vamos a la parte que nos ocupa, la instalación de Hassio en Docker sobre nuestro sistema DietPi. Hay un script que lo hace automáticamente, pero antes, deberemos instalar las dependencias:
1 | sudo apt-get install bash jq curl avahi-daemon dbus software-properties-common apparmor-utils network-manager |
Ahora, para instalar Hassio, ejecutamos el siguiente script:
1 | curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | bash -s -- -m raspberrypi |
Debemos modificar donde pone raspberrypi3 para adaptarlo a nuestra placa. Aquí podéis ver las opciones disponibles.
Con esto tendríamos Hassio instalado. Si volvemos a Portainer y nos dirigimos a la sección Containers podemos ver que tenemos 3 nuevos contenedores:

Estos 3 contedores son:
- hassio_supervisor: API para gestionar la instalación. Se comunica con home-assistant para la instalación de addons, configuraciones de red, etc…
- hassio_dns: el sistema de resolucion DNS de Hassio
- homeassistant: el programa en si
Configuración inicial de Home Assistant
Ahor podemos dirigirnos a IP_Raspberry:8123 veremos la configuración inicial de Home Assitant.
En primer lugar, crearemos una cuenta de usuario para acceder a nuestro Home Assistant.
A continuación, configuraremos nuestra casa dándole un nombre y una ubicación.
Finalmente podremos configurar algún dispositivo, pero no es algo que vayamos a hacer ahora, si no que lo dejaremos para futuras entregas.

Por lo que ya tenemos lista nuestra instalación de Hassio en Docker, y cómo podéis ver, contamos con el menú Hassio y el Add-on Store.
Por último decir que si habéis seguido mi serie de tutoriales sobre OpenMediaVault podéis replicar esta instalación en la misma máquina y darle acceso desde el exterior de vuestra red tal y cómo se explica en el capítulo 3 usando la siguiente configuración en opciones extra:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | location / { auth_pam "Auth Required"; auth_pam_service_name "nginx"; proxy_pass http://IP_HOME_ASSISTANT:8123/; proxy_set_header Host $host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } location /.well-known { allow all; auth_basic off; root /var/www/html; } |
Si no conseguís acceder, debéis poner lo siguiente en la seccion http del archivo /etc/nginx/nginx.conf :
1 2 3 4 | map $http_upgrade $connection_upgrade { default upgrade; '' close; } |
Cómo siempre, espero que os haya gustado el post, y si es así, compartidlo con vuestros amigos. ¡Hagamos nuestras casas inteligentes!