Si tienes un NAS en casa y ya montas cosas en Docker — Immich, Nextcloud, Jellyfin — Home Assistant es el siguiente paso lógico: un único panel que habla con luces, sensores, enchufes y cámaras sin mandar el estado de tu casa a Amazon, Google o la nube del fabricante.

Esta guía asume que ya sabes arrancar un contenedor y que tu NAS aguanta algo más que copias de seguridad. No vamos a convertir tu salón en un laboratorio de Zigbee el primer día. Vamos a dejar Home Assistant estable, local y accesible desde fuera con Tailscale, no abriendo el puerto 8123 al mundo.

Alexa y Google Home son cómodos porque viven en la nube. Home Assistant es cómodo cuando vive en tu red: si se cae internet, las luces siguen respondiendo. Si se cae su nube, a ti no te afecta.

Por qué Home Assistant en el NAS (y sin nube)

Home Assistant puede correr en un Raspberry Pi, en un mini PC o en el NAS que ya tienes encendido 24/7. El NAS gana si ya está en un sitio fresco, con UPS y con discos que no quieres duplicar. Pierde si tu caja va justa de RAM y ya tienes Immich + Ollama + Jellyfin a tope.

La parte «sin nube» no es snobismo: es diseño. Muchas integraciones oficiales de fabricantes (Tuya cloud, SmartThings, Nest) mandan eventos a servidores ajenos. Home Assistant te deja elegir rutas locales: Zigbee2MQTT, Z-Wave JS, ESPHome, MQTT, cámaras ONVIF, Philips Hue en LAN, Shelly, etc. El objetivo de Privutx es claro: automatiza en casa, no en el datacenter de otra empresa.

Docker o VM: qué elegir en 2026

Opción Ideal si… Add-ons Nota
Container (Docker) Ya usas Container Manager / Docker Compose No (montas servicios aparte) Más ligero, encaja con el stack del NAS
VM (HA OS / Supervised) Quieres add-ons (Mosquitto, Zigbee2MQTT) en un clic Más RAM/CPU; Virtual Machine Manager en Synology
Mini PC dedicado El NAS va justo o quieres USB Zigbee estable Sí (HA OS) Mejor para dongles USB y carga alta

Regla práctica: si solo quieres luces Wi‑Fi locales, sensores MQTT y un dashboard, Docker en el NAS basta. Si vas a meter Zigbee, Z-Wave, Frigate y media players a lo loco, valora VM o un mini PC — el passthrough USB en Synology a veces es un quebradero.

Instalación: Docker Compose en el NAS

En Synology (Container Manager) o TrueNAS (Apps / Compose) crea una carpeta compartida, por ejemplo /volume1/docker/homeassistant, y un compose.yaml mínimo:

compose.yaml — Home Assistant
services: homeassistant: image: ghcr.io/home-assistant/home-assistant:stable container_name: homeassistant restart: unless-stopped privileged: true network_mode: host environment: - TZ=Europe/Madrid volumes: - /volume1/docker/homeassistant/config:/config - /etc/localtime:/etc/localtime:ro
Crea la carpeta de config y el compose
En Synology: File Station → carpeta docker/homeassistant/config. Pega el compose en Container Manager → Proyecto. En TrueNAS Scale usa Custom App o un stack Compose equivalente, ajustando la ruta del volumen.
Arranca con network_mode: host
Home Assistant descubre dispositivos en la LAN (mDNS, SSDP). Con bridge + puertos sueltos pierdes mucha autodetección. host es el modo recomendado en NAS domésticos.
Abre http://IP-DEL-NAS:8123
Crea el primer usuario (el admin). No uses la misma contraseña que el DSM. Guarda el recovery key cuando te lo ofrezca.
Si prefieres VM: HA OS
En Synology Virtual Machine Manager descarga la imagen qcow2/ova de Home Assistant OS, asigna 2 vCPU / 2–4 GB RAM / 32 GB disco y red bridged. En TrueNAS: Virtual Machines con la misma idea. Luego instalas add-ons desde la UI.

Integraciones locales: lo que SÍ y lo que NO

En Ajustes → Dispositivos y servicios prioriza lo que habla en LAN o por radio local:

  • Sí, locales: Philips Hue (bridge en casa), Shelly, ESPHome, MQTT, Zigbee2MQTT, Z-Wave JS, cámaras ONVIF / go2rtc, Matter sobre Thread local, Brocas/KNX si tienes bus.
  • Evita si puedes: Tuya Cloud, SmartLife cloud, Nest (Google), Ring cloud, integraciones que exigen cuenta del fabricante para cada evento.
  • Gris: algunos dispositivos «locales» necesitan la app cloud solo para el emparejado inicial. Úsala, empareja, y luego trabaja solo por LAN.

Para MQTT, monta Mosquitto como contenedor hermano (no hace falta Nabu Casa). Mismo patrón que con n8n: servicios pequeños, cada uno con su volumen, reinicio independiente.

configuration.yaml — ejemplo MQTT local
# En Home Assistant (o vía UI → MQTT) mqtt: broker: 192.168.1.10 port: 1883 # usuario/clave si activaste auth en Mosquitto

Convive con Immich, Jellyfin y el resto

Home Assistant con network_mode: host usa el puerto 8123. No choques con otros servicios en host network. El resto de contenedores en bridge (Immich 2283, Jellyfin 8096, etc.) suelen convivir sin drama.

Reserva RAM de verdad
HA solo: 1–2 GB. Con grabaciones o muchos add-ons: más. Si Immich está indexando y Ollama cargando un modelo, no arranques HA OS en la misma caja «porque cabe».
Snapshots de /config, no solo del volumen
Copia periódica de la carpeta config (incluye .storage, automations, secrets). Encaja con la regla 3-2-1: el NAS no es backup de sí mismo.
USB Zigbee: prueba antes de casarte
En muchos Synology el passthrough USB a Docker/VM es inestable. Si el dongle se desconecta solo, mueve Zigbee2MQTT a un Pi o mini PC y deja HA en el NAS hablando por MQTT.

Acceso desde fuera con Tailscale (sin abrir puertos)

No abras 8123 en el router. Instala Tailscale en el NAS (o en un contenedor sidecar) y en el móvil, como en la guía de acceso remoto sin abrir puertos. En la app Companion de Home Assistant usa la URL http://100.x.y.z:8123 (IP Tailscale del NAS) como URL externa, y la IP LAN como interna.

Opcional: activa MagicDNS y un certificado HTTPS interno de Tailscale si te molesta el aviso de «conexión no segura» en el móvil. Sigue siendo tráfico punto a punto, no un túnel a un datacenter de domótica.

Primeras automatizaciones que sí merecen la pena

  • Luces al atardecer si hay alguien en casa (presencia por Wi‑Fi/Ping o sensor PIR local).
  • Apagar todo al salir cuando el último teléfono deja la LAN / Tailscale.
  • Aviso de humedad en baño o tendedero con sensor Zigbee/ESPHome → notificación al móvil.
  • Corte de enchufe inteligente si un aparato supera X vatios un rato (lavadora olvidada).

Empieza con dos automatizaciones fiables. El cementerio de HA está lleno de dashboards preciosos y rutinas que nadie mantiene.

Errores habituales

Antes de pedir ayuda en el foro

  • Usar bridge en lugar de host y quejarse de que «no descubre nada».
  • Meter integraciones cloud «por comodidad» y luego sorprenderse de que sin internet no va nada.
  • No respaldar /config antes de actualizar la imagen stable.
  • Abrir 8123 al mundo «solo un rato» para enseñárselo al cuñado.
  • Instalar HA en un NAS con 2 GB libres de RAM compartidos con Immich indexando.

Resumen rápido

  • Docker con network_mode: host en el NAS para la mayoría; VM/HA OS si quieres add-ons y USB serio.
  • Prioriza integraciones LAN / Zigbee / MQTT; evita nubes de fabricante.
  • Convive con el resto de contenedores cuidando RAM, puertos y backups de /config.
  • Acceso remoto solo con Tailscale (o VPN equivalente).
  • Cuando quieras cámaras sin nube, el siguiente eslabón es Frigate; mientras tanto refuerza el stack con n8n o afina el acceso remoto.