1.    Instalación del sistema operativo.

Se instalará el sistema operativo Raspberry Pi OS con escritorio, de 64 bits. Este sistema operativo está basado en Debian, y viene con el software recomendado para la mayoría de computadoras de trabajo.

Una de las grandes ventajas de este sistema operativo es su liviandad, pudiendo incluso instalarse en computadoras antiguas si la situación lo requiriera.

Es opcional e interesante que, durante o tras la instalación, se active la comunicación SSH y el escritorio remoto. De esta forma, el usuario puede acceder a sus servidores remotos a través de Internet.

2.    Instalación de Docker.

Docker es una plataforma de uso libre para ejecutar aplicaciones separadamente en un entorno denominado container (contenedor). Estos son livianos, siendo parecidos a una versión ligera de una máquina virtual.

Para la instalación, en una terminal, ejecutamos los siguientes comandos:

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

De esta forma, instalamos Docker en nuestro dispositivo. Para comprobar si la instalación se llevó a cabo correctamente, ejecutamos el siguiente comando:

 sudo docker run hello-world

3.    Instalación de Portainer.

Portainer es una interfaz gráfica para el manejo de containers. Se accede a él mediante un navegador web.

Crearemos una carpeta llamada docker, donde guardaremos las aplicaciones instaladas. Dentro de esta carpeta, creamos otra llamada portainer, donde lo instalaremos mediante la ejecución de este comando:

sudo docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /home/grupotar/docker/portainer:/data portainer/portainer-ce

Para acceder a él, nos iremos a la dirección en la que se aloja:

https://localhost:9443/

Siendo ‘’localhost’’ sustituible por la IP local que tenga el dispositivo. Es recomendable acceder de esta última forma, evitando posibles errores.

4.    Instalación de FileBrowser.

Aunque no es obligatorio, es recomendable, ya que las alternativas tienen mayor complejidad.

Se usa para navegar por el dispositivo, pudiendo abrir y editar archivos y carpetas ocultos. Podremos editar archivos de configuración rápidamente desde ahí.

 

Una alternativa es usar VisualStudioCode, con extensiones SSH y YAML para poder entrar y editar, siendo más tedioso. Otra alternativa es instalar una versión supervisada de Home Assistant (del que se hablará más adelante), permitiendo la instalación de Add-Ons sin tener que editar la configuración a mano.

-       Alternativa 1:

 Ejecutamos el siguiente comando:

 sudo docker run -d --name=Filebrowser --restart=unless-stopped -p 8086:80 -v /:/srv filebrowser/filebrowser

Añadir ‘’ -p 8086:80’’ nos permite exponer el puerto 80 (el que generalmente usa FileBrowser) al puerto 8086, permitiendo que otros servicios usen el puerto 80.

Añadir ‘’ -v /:/srv filebrowser/filebrowser’’ vincula la carpeta de la izquierda (solo escribimos ‘’/’’, ya que nos estamos refiriendo a la carpeta raíz que queremos poder explorar con FileBrowser) con la carpeta de la derecha (la carpeta del contenedor que FileBrowser usa por defecto), separadas por ‘’:’’.

-       Alternativa 2:

Desplegamos un stack dentro de Portainer. Sencillamente nos vamos al apartado de stacks y lo añadimos, editándolo como texto:

version: '3'
services:
  filebrowser:
    container_name: filebrowser
    image: filebrowser/filebrowser:latest
    volumes:
      - /:/srv
    ports:
      - 8086:80
    restart: unless-stopped

Lo desplegamos pulsando deploy y, si no hay ningún error, el contenedor de FileBrowser debería estar ejecutándose correctamente.

5.    Instalación de Mosquitto.

Se trata de un bróker de uso libre que implementa el protocolo MQTT. Es ligero y compatible con diversas plataformas. Lo usaremos para conectar nuestros dispositivos Tasmota a Home Assistant.

Para instalarlo, debemos crear tres carpetas dentro de la carpeta docker:

/config

/data

/log

Creamos, dentro de la carpeta config, un archivo al que llamaremos ‘’mosquito.conf’’. Lo editaremos con las siguientes líneas:

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd

La última línea nos permitirá darle una contraseña a nuestro bróker, y la penúltima nos sirve para indicar si permitiremos la conexión anónima sin autenticar.

Una vez creados los archivos anteriores, procedemos a desplegar el siguiente stack dentro de Portainer:

version: '3'
services:
  mosquitto:
    container_name: mosquitto
    image: "eclipse-mosquitto"
    volumes:
      - /home/grupotar/docker/mosquitto/config/:/mosquitto/config/
      - /home/grupotar/docker/mosquitto/data:/mosquitto/data
      - /home/grupotar/docker/mosquitto/log:/mosquitto/log
    ports:
      - "1883:1883"
      - "9001:9001"
    restart: unless-stopped
    network_mode: bridge

Donde las direcciones de los volúmenes son particulares a nuestro dispositivo e instalación. Al igual que con FileBrowser, el contenedor de Mosquitto debería estar montado y ejecutándose sin fallos.

6.    Instalación de Home Assistant.

Desplegamos el siguiente stack:

version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: "homeassistant/home-assistant:stable"
    volumes:
      - /home/grupotar/docker/homeassistant/:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

Tras desplegarlo, Home Assistant estará disponible y accesible desde la dirección: http://localhost:8123.