Homarr: Panel de control moderno para servicios autohospedados

Publicado por


homarr
Dashboard autohospedado

Homarr: Panel de control moderno para servicios autohospedados

Dashboard con más de 80 integraciones, 20.000 iconos, autenticación integrada y configuración visual sin YAML

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Homarr: Panel de control moderno para servicios autohospedados en el canal GENBYTE:

¿Qué es Homarr: Panel de control moderno para servicios autohospedados?

Homarr es un dashboard moderno y fácil de usar diseñado para centralizar el acceso a servicios autohospedados. Desarrollado por Homarr Labs, el proyecto destaca por su enfoque en la experiencia de usuario: configuración mediante arrastrar y soltar, sin necesidad de editar archivos YAML, autenticación integrada lista para usar y una biblioteca de más de 20.000 iconos. La versión actual es 2.4.1, licenciada bajo Apache-2.0, y está construida con TypeScript, Next.js 16, React 19 y Bun como gestor de paquetes y runtime. El stack incluye Drizzle ORM con better-sqlite3 por defecto, Redis para caché y colas, Nginx como proxy inverso interno y tRPC para la comunicación tipo-segura entre cliente y servidor.

Configuración visual sin YAML, 80+ integraciones nativas y autenticación integrada en una sola imagen Docker multi-arquitectura.

Características principales

Integraciones nativas

Más de 80 integraciones preconfiguradas para servicios populares del ecosistema self-hosted (Servarr, Docker, Proxmox, Kubernetes, Immich, Jellyfin, qBittorrent, Transmission, Deluge, Unifi, Proxmox, entre otros).

Biblioteca de iconos

Más de 20.000 iconos integrados (Tabler Icons, Lucide, etc.) para personalizar cada entrada del dashboard sin depender de fuentes externas.

Autenticación integrada

Sistema de autenticación basado en credenciales (next-auth v5 beta) con soporte para proveedores OAuth, gestión de sesiones segura y cifrado de secretos de integración mediante SECRET_ENCRYPTION_KEY.

Configuración visual drag-and-drop

Interfaz de administración completamente visual: creación de tableros, grupos, widgets y enlaces mediante arrastrar y soltar, sin editar archivos de configuración.

Base de datos embebida

Utiliza SQLite (better-sqlite3) por defecto con migraciones gestionadas por Drizzle ORM; soporta PostgreSQL como alternativa para despliegues de alta concurrencia.

Arquitectura multi-proceso

Imagen Docker que ejecuta Next.js (standalone), Nginx, Redis y CLI de migraciones en un solo contenedor, exponiendo únicamente el puerto 7575.

Internacionalización y temas

Soporte i18n con next-intl, modo oscuro/claro automático (next-themes) y componentes UI basados en Mantine v9.

Extensibilidad

Widgets personalizados, API tRPC documentada, MCP (Model Context Protocol) server integrado y sistema de plugins para integraciones propias.

Requisitos del sistema

  • Docker Engine 24+ o Docker Compose v2+
  • Arquitectura compatible: linux/amd64, linux/arm64 (imagen multi-plataforma)
  • Mínimo 512 MB RAM disponibles para el contenedor (recomendado 1 GB+)
  • Volumen persistente para /appdata (base de datos SQLite, certificados, configuración Redis)
  • Puertos: 7575/tcp expuesto en el host
  • Generación previa de claves: AUTH_SECRET y SECRET_ENCRYPTION_KEY (64 caracteres hex cada una, openssl rand -hex 32)

Instalación con Docker Compose

Preparar variables de entorno

Crea un archivo .env a partir de .env.example y genera los secretos obligatorios. No reutilices valores ni subas el .env a control de versiones.

cp .env.example .env
# Genera AUTH_SECRET y SECRET_ENCRYPTION_KEY
openssl rand -hex 32 # ejecuta dos veces y copia cada valor en su variable

Desplegar con Docker Compose (recomendado)

El proyecto no incluye docker-compose.yml en el repositorio principal; la documentación oficial en homarr.dev provee plantillas para Docker Compose, Portainer, Kubernetes y TrueNAS. El ejemplo mínimo usando la imagen oficial ghcr.io/homarr-labs/homarr:latest es:

version: '3.8'
services:
homarr:
image: ghcr.io/homarr-labs/homarr:latest
container_name: homarr
restart: unless-stopped
ports:
– '7575:7575'
volumes:
– /ruta/host/appdata:/appdata
– /var/run/docker.sock:/var/run/docker.sock:ro # opcional, para integración Docker
env_file: .env
environment:
– DB_URL=/appdata/db/db.sqlite
– DB_DRIVER=better-sqlite3
– AUTH_PROVIDERS=credentials
– REDIS_IS_EXTERNAL=false
– NODE_ENV=production

Iniciar el servicio

Levanta el contenedor en segundo plano. La imagen ejecuta migraciones automáticas al arranque mediante entrypoint.sh.

docker compose up -d

Verificar logs de arranque

Confirma que la aplicación inicia correctamente, genera la base de datos y expone el puerto.

docker compose logs -f homarr

Acceder al proyecto

Interfaz web

Accede al dashboard en http://<IP_HOST>:7575. En el primer acceso se solicita crear la cuenta de administrador (usuario/contraseña) si no existe ninguna.

CLI integrada

El contenedor expone el comando `homarr` para tareas de migración, seed y gestión de usuarios. Ejemplo: `docker exec -it homarr homarr db:migrate`.

Casos de uso

  • Portal único para acceder a todos los servicios autohospedados de una red local o VPS
  • Panel de control para stacks *arr (Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Readarr) con widgets de estado y acciones rápidas
  • Monitorización visual de contenedores Docker, máquinas virtuales Proxmox y clústeres Kubernetes
  • Gestión centralizada de descargas (qBittorrent, Transmission, Deluge) y bibliotecas multimedia (Jellyfin, Plex, Immich)
  • Dashboard familiar con autenticación sencilla y modo demo para pruebas sin compromiso

Configuración avanzada

Base de datos PostgreSQL externa

Para entornos de alta disponibilidad o múltiples réplicas, configura DB_DRIVER=node-postgres y DB_URL con la cadena de conexión. Requiere ejecutar migraciones manualmente o habilitar auto-migración en el entrypoint.

DB_DRIVER=node-postgres
DB_URL=postgres://user:pass@host:5432/homarr

Redis externo

Desactiva el Redis embebido y apunta a una instancia externa para persistencia de sesiones y colas compartidas.

REDIS_IS_EXTERNAL=true
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=opcional

Certificados TLS locales

Monta un directorio con certificados de confianza y configura LOCAL_CERTIFICATE_PATH para que Homarr valide conexiones HTTPS a servicios internos con CA privada.

LOCAL_CERTIFICATE_PATH=/appdata/trusted-certificates

Socket Docker / Podman múltiple

Permite conectar a varios runtimes de contenedores simultáneamente mediante DOCKER_SOCKET_PATHS.

DOCKER_SOCKET_PATHS=/var/run/docker.sock,/run/user/1000/podman/podman.sock

Modo demo

Activa DEMO_MODE=true para sembrar un usuario demo/demo, tablero de ejemplo e integración mock. Útil para evaluación sin configuración.

DEMO_MODE=true
DEMO_READ_ONLY=true

Proxy inverso externo (Traefik, Nginx Proxy Manager, Caddy)

Homarr detecta cabeceras X-Forwarded-* automáticamente. Configura BASE_URL con la URL pública (https://homarr.ejemplo.com) para que OAuth, MCP y redirecciones funcionen correctamente detrás de proxy.

BASE_URL=https://homarr.ejemplo.com

Gestión y mantenimiento

Actualizar imagen

Descarga la última etiqueta y recrea el contenedor manteniendo el volumen /appdata.

docker compose pull
docker compose up -d

Ejecutar migraciones manualmente

Si se actualiza la versión y hay cambios de esquema, fuerza la migración desde la CLI interna.

docker exec -it homarr homarr db:migrate

Backup de la base de datos

Copia el archivo SQLite del volumen persistente. Para PostgreSQL usa pg_dump.

docker cp homarr:/appdata/db/db.sqlite ./backup/homarr-$(date +%F).sqlite

Rotación de secretos

Genera nuevos AUTH_SECRET y SECRET_ENCRYPTION_KEY, actualiza .env y reinicia. Los secretos de integración almacenados dejarán de ser legibles; vuelve a configurarlos en la UI.

openssl rand -hex 32 # nuevo AUTH_SECRET
openssl rand -hex 32 # nuevo SECRET_ENCRYPTION_KEY
# edita .env y reinicia
docker compose restart homarr

Limpieza de caché Redis

Vacía la base de datos Redis embebida si hay inconsistencias de sesión o colas atascadas.

docker exec -it homarr redis-cli FLUSHALL

Stack técnico

  • TypeScript 7
  • Next.js 16 (App Router, standalone output)
  • React 19
  • Bun 1.4.2 (package manager & runtime)
  • Turbo (monorepo build system)
  • Drizzle ORM
  • better-sqlite3 (SQLite driver)
  • node-postgres (PostgreSQL driver opcional)
  • Redis 7 (ioredis client)
  • Nginx (reverse proxy interno, plantilla con envsubst)
  • next-auth v5 beta (autenticación)
  • tRPC 11 (API tipo-segura)
  • TanStack Query 5 (estado servidor)
  • Mantine UI 9 (componentes)
  • Tabler Icons / Lucide (iconografía)
  • Zod 4 (validación)
  • Mermaid (diagramas)
  • Vitest / Playwright (testing)
  • Docker multi-stage (Node 24 Alpine + Bun + Alpine runner)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *