Instalar Home Assistant en Raspberry Pi con Docker Compose

Tiempo de lectura: 2 minutos

Hoy vamos a ver cómo podemos instalar Home Assistant en una Raspberry Pi y usando Docker.

Lo primero que tenemos que tener listo es la instalación de Docker en nuestra Raspberry Pi: https://devcodelight.com/desplegar-servidor-web-apache-con-docker-compose/

Vamos a utilizar esta estructura:

Una vez instalado, tendremos que crear esta configuración de Docker Compose.

docker-compose.yml

version: '3'
services:

  homeassistant:
    container_name: homeassistant
    image: homeassistant/home-assistant
    volumes:
      - ./config/hass_config:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    ports:
      - "8123:8123"
    depends_on:
      - mariadb_home_assistant
      - mosquitto
    networks:
      - docker-network

  mariadb_home_assistant:
    image: mariadb
    container_name: mariadb_home_assistant
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "MYSQL_ROOT_PASSWORD"
      MYSQL_DATABASE: ha_db
      MYSQL_USER: homeassistant
      MYSQL_PASSWORD: "MYSQL_PASSWORD"
    volumes:
      - ./config/mariadb:/config
    ports:
      - "3306:3306"
    networks:
      - docker-network

  nodered:
    container_name: nodered
    image: nodered/node-red
    ports:
      - "1880:1880"
    volumes:
      - ./config/nodered:/data
    depends_on:
      - homeassistant
      - mosquitto
    environment:
      TZ: "Europe/Madrid"
    restart: unless-stopped
    networks:
      - docker-network

  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto_z
    restart: unless-stopped
    ports:
      - "1883:1883"
    volumes:
      - "./config/mosquitto/config:/mosquitto/config"
      - "./config/mosquitto/data:/mosquitto/data"
      - "./config/mosquitto/log:/mosquitto/log"
    environment:
      - TZ=Europe/Madrid
    user: "${PUID}:${PGID}"
    networks:
      - docker-network

  hass-configurator:
    image: "causticlab/hass-configurator-docker:arm"
    container_name: hass-configurator
    restart: unless-stopped
    ports:
      - "3218:3218/tcp"
    depends_on:
      - homeassistant
    volumes:
      - "./config/configurator:/config"
      - "./config/hass_config:/hass-config"
    user: "${PUID}:${PGID}"
    networks:
      - docker-network

networks:
  docker-network:
    driver: bridge
    external: true

Elegiremos el password que queremos establecer en root_password / db_user_password

Ahora creamos el archivo config/configurator/settings.conf

{
    "BASEPATH": "../hass_config"
}

Ahora creamos el archivo config/hass_config/configuration.yalm

Modificamos <host_ip> por la ip de la Raspberry en nuestra red interna.

default_config:

http:
  use_x_forwarded_for: false

panel_iframe:
  configurator:
    title: Configurator
    icon: mdi:wrench
    url: http://<host_ip>:3218/
    require_admin: true
  nodered:
    title: Node-Red
    icon: mdi:shuffle-variant
    url: http://<host_ip>:1880/
    require_admin: true

recorder:
  db_url: mysql://homeassistant:<MYSQL_PASSWORD>@mariadb_home_assistant/ha_db?charset=utf8
  purge_keep_days: 30

Modificamos MYSQL_PASSWORD por el valor que le dimos en la variable .env anterior.

Este archivo de configuración, contendrá todo el panel de nuestro Home Assistant y se irá modificando.

Más info: https://www.danielmartingonzalez.com/es/configuracion-de-home-assistant-en-yaml/

Ahora creamos el archivo config/mosquitto/config/mosquitto.conf

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous true

Crearemos este .gitignore si utilizamos Git para almacenar el código:

config/configurator/*
config/homeassistant/*
config/mariadb/*
config/mosquitto/*
config/nodered/*

*Hay que crearlo después de subir los archivos de configuraciones para que no se pierdan datos.

Ahora vamos a desplegar el docker compose con este comando:

docker compose up -d

Para acceder a Node-RED:

http://ip_raspberry:1880

Acceder al configurador de Home ASSISTANT

http://localhost:3218/

Para acceder a Home ASSISTANT

http://localhost:8123

Deja un comentario