Ir al contenido
  1. Posts/

Homarr: el dashboard para homelab que por fin tiene sentido

Tengo la tendencia de añadir servicios al homelab más rápido de lo que los documento. En algún momento dejé de saber de memoria qué estaba corriendo en qué servidor, en qué puerto, y con qué URL accedía a cada cosa. El día que quise mostrarle el homelab a un amigo me quedé en blanco intentando recordar la URL de Grafana.

Eso me llevó a buscar un dashboard. Probé cosas durante un tiempo, desde soluciones muy básicas (una página HTML estática con links) hasta Heimdall y Homer, que son los más conocidos. Heimdall tiene buena pinta pero me pareció demasiado manual. Homer es sólido pero vive en un YAML y cada cambio requiere editar el fichero y recargar.

Homarr lo encontré cuando llevaba ya unos meses usando Homer y decidí que quería algo más interactivo. La diferencia más inmediata: Homarr tiene interfaz web para configurar todo, no hay YAML que tocar, y se integra directamente con Docker para leer los contenedores que están corriendo.

Qué hace Homarr exactamente
#

La función principal es obvia: una página de inicio con accesos directos a todos tus servicios. Pero lo que lo diferencia de un marcador del navegador es lo que hace alrededor de esos accesos.

Homarr tiene widgets. No decorativos, sino funcionales. El widget de Docker muestra en tiempo real si tus contenedores están corriendo. El de Proxmox muestra el uso de CPU y RAM de los nodos. El de Sonarr o Radarr muestra las descargas en curso. El de Pi-hole o AdGuard Home muestra cuántas peticiones has bloqueado hoy.

La integración con Docker es la que más uso. Homarr puede conectar con el socket de Docker, leer los contenedores activos, y mostrar su estado directamente en el dashboard. Si un contenedor se cae, el widget cambia de color. No necesito ir a Portainer o hacer docker ps para saber si algo falló.

También tiene un sistema de “apps” con iconos, búsqueda integrada, y soporte para múltiples usuarios con perfiles diferentes. Si en casa hay varias personas usando los servicios del homelab, cada una puede tener su vista personalizada.

Instalación con Docker Compose
#

La instalación más limpia es con Docker Compose. Homarr v0.15+ cambió bastante la arquitectura respecto a versiones anteriores, así que si encuentras tutoriales antiguos pueden no aplicar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
version: "3"
services:
  homarr:
    image: ghcr.io/ajnart/homarr:latest
    container_name: homarr
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./homarr/configs:/app/data/configs
      - ./homarr/icons:/app/public/icons
      - ./homarr/data:/data
    ports:
      - "7575:7575"
    environment:
      - SECRET_ENCRYPTION_KEY=una-clave-de-32-caracteres-aqui

El volumen del socket de Docker lo monto como solo lectura. Homarr solo necesita leer el estado de los contenedores, no necesita iniciarlos o detenerlos. Siempre que puedo limitar los permisos, lo hago.

La variable SECRET_ENCRYPTION_KEY es para cifrar las credenciales de las integraciones que configures. Genera una clave aleatoria de 32 caracteres y ponla ahí. Si no la pones, Homarr genera una automáticamente, pero si recreas el contenedor perderás las integraciones configuradas.

1
docker compose up -d

Accedes a http://ip-del-servidor:7575 y ya está funcionando.

Primera configuración
#

Lo primero que pide Homarr es crear el usuario administrador. Pon un usuario y contraseña que recuerdes, porque no hay recuperación de contraseña fácil si te quedas sin acceso.

La pantalla inicial está vacía, lo cual es un poco desorientador. El flujo de trabajo es:

Primero añades tus apps. Botón de edición (icono del lápiz en la barra superior), luego “Add an app”. Te pide el nombre, la URL, y puedes buscar el icono automáticamente si el servicio es conocido. Homarr tiene una base de datos de iconos bastante completa para los servicios habituales de homelab.

Segundo, organizas el layout. El dashboard es un grid donde puedes arrastrar y redimensionar cada elemento. Puedes agrupar apps por categorías usando separadores o secciones.

Tercero, añades los widgets. Aquí es donde Homarr gana enteros respecto a un dashboard estático.

Widgets que más uso
#

Estado de Docker: el widget más útil. Conecta con el socket de Docker que montaste y muestra qué contenedores están corriendo. Si el contenedor está sano, aparece en verde. Si está parado o crasheando, lo ves de inmediato.

La configuración es básica: en el widget eliges si quieres mostrar todos los contenedores o solo los que tengan una etiqueta específica. Yo filtro por homarr.show=true y pongo esa etiqueta en los compose de los servicios que me importan monitorizar. Así no me aparecen los contenedores internos de infraestructura que no necesito ver.

Proxmox: si tienes un nodo Proxmox, este widget muestra el uso de CPU, RAM, y almacenamiento en tiempo real. Para configurarlo necesitas un usuario API en Proxmox con permisos de lectura. En Proxmox vas a Datacenter > Permissions > API Tokens, creas un token para un usuario existente, y lo pegas en la configuración del widget.

1
2
3
URL: https://192.168.1.100:8006
Usuario: homarr@pve
Token: el-token-que-acabas-de-crear

AdGuard Home / Pi-hole: muestra las estadísticas del DNS. Cuántas consultas hoy, cuántas bloqueadas, el porcentaje de bloqueo. Además puedes activar o desactivar el bloqueo directamente desde el widget sin entrar al panel de AdGuard. Eso es algo que uso cuando alguna web no carga bien y quiero desactivar el filtrado temporalmente.

Sonarr/Radarr/Prowlarr: si usas el stack de descargas, estos widgets muestran las descargas activas, los episodios próximos, y el estado general de la cola. No necesito abrir Sonarr para saber si hay algo descargando.

Reloj y calendario: básico pero útil. El widget de calendario puede conectar con un CalDAV, con Google Calendar, o simplemente mostrar el mes actual.

Iframe: este widget me gusta especialmente. Puedes incrustar cualquier página web en un tile del dashboard. Lo uso para tener un panel de Grafana visible directamente en el inicio, sin tener que abrir otra pestaña.

Integraciones avanzadas
#

Una de las cosas que tardé en descubrir es que Homarr puede monitorizar si tus servicios están realmente accesibles, no solo si el contenedor está corriendo. Hay una diferencia: un contenedor puede estar en running pero el servicio dentro puede estar fallando.

En cada app que añades, hay una opción “Status checker”. Le indicas la URL y el puerto al que debe hacer ping. Si no responde o devuelve un error, el icono del servicio cambia de color en el dashboard. Es un health check básico pero suficiente para detectar problemas rápido.

Para servicios más críticos sigo usando Uptime Kuma, pero el status checker de Homarr cubre bien los casos básicos sin necesitar otra herramienta.

Búsqueda integrada
#

Homarr tiene un buscador en la barra superior que busca tanto en tus apps como en proveedores externos configurados. Por defecto puedes buscar en DuckDuckGo, Brave Search, Google, o cualquier URL de búsqueda personalizada.

Lo que me resultó curioso es que la búsqueda también funciona con un bang específico por app. Si tienes Sonarr en el dashboard, puedes escribir sonarr Breaking Bad y te lleva directamente a la búsqueda de esa serie dentro de Sonarr. Está documentado pero no es evidente hasta que lo descubres.

Multiusuario
#

Homarr soporta múltiples usuarios con acceso diferenciado. El administrador puede crear usuarios con diferentes perfiles. Cada usuario puede tener un dashboard personalizado con sus propios accesos directos y widgets.

En mi caso lo uso para separar la vista “técnica” (con widgets de Proxmox, Docker, métricas) de una vista más simple para el resto de la familia, donde solo aparecen los servicios de uso cotidiano como Jellyfin, Immich, o el gestor de contraseñas.

Problemas que me encontré
#

La integración con Docker a veces tarda en actualizar el estado. Si acabas de iniciar un contenedor, puede tardar 30-60 segundos en reflejarse en el widget. No es un problema grave pero al principio puede confundir.

El socket de Docker que monto en el contenedor de Homarr es del servidor donde corre Homarr. Si tus contenedores están en múltiples hosts, necesitas el Docker Socket Proxy o algo similar para exponer los sockets de los otros nodos de forma segura.

La versión actual tiene algún que otro bug visual en pantallas muy pequeñas. No me afecta porque accedo desde el ordenador o desde un tablet, pero en el móvil el layout puede verse un poco raro.

La documentación oficial es bastante buena para los primeros pasos, pero algunas integraciones tienen poca documentación y hay que tirar de los issues de GitHub para encontrar la configuración exacta.

Actualizaciones
#

Homarr se actualiza con frecuencia. Para actualizar con Docker Compose:

1
2
docker compose pull
docker compose up -d

La configuración persiste en los volúmenes que definiste, así que no pierdes nada al actualizar. Recomiendo revisar el changelog antes de actualizar a una versión major, porque ha habido cambios de arquitectura entre versiones que a veces requieren migración manual.

Comparativa rápida con alternativas
#

Homer: más ligero, vive en un YAML. Ideal si quieres algo minimalista y no te importa editar ficheros. Sin integraciones dinámicas.

Heimdall: buena interfaz, más estable que Homarr en algunas versiones. Las integraciones son más limitadas.

Homepage: otra alternativa que ha ganado popularidad. Configuración por YAML, widgets similares a Homarr. Algunos prefieren el enfoque de ficheros porque es más fácil de gestionar en git.

Dasherr: minimalista, sin widgets, pero muy rápido y sin overhead.

Yo me quedé con Homarr porque la interfaz web para configurar sin tocar YAML me facilitó el mantenimiento. Cuando añado un servicio nuevo, entro al dashboard, añado la app, y listo. No hay ficheros que commitear ni reiniciar servicios.

Si llevas tiempo con un dashboard de YAML y estás cómodo, no hay razón para cambiar. Pero si estás empezando o buscas algo más dinámico, Homarr es una buena opción.

El resultado final
#

Lo que más me gusta del setup actual es que cuando abro una pestaña nueva o enciendo el ordenador, tengo en dos segundos el estado del homelab. Si algo está caído, lo veo antes de que alguien me lo diga. Si hay una descarga en curso, lo veo. Si los nodos de Proxmox están al límite, lo veo.

No es algo que necesites en el homelab, pero una vez que lo tienes, no entiendes cómo vivías sin ello. El tiempo que ahorro en navegar entre pestañas y recordar URLs compensa con creces los veinte minutos que tardé en configurarlo.