Homarr: Panel de control moderno para autoalojamiento
Un dashboard moderno y fácil de usar con más de 80 integraciones, 20.000 iconos integrados, autenticación nativa y configuración drag-and-drop sin YAML.
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Homarr: Panel de control moderno para autoalojamiento en el canal GENBYTE:
¿Qué es Homarr: Panel de control moderno para autoalojamiento?
Homarr es una aplicación de panel de control (dashboard) diseñada para entornos de autoalojamiento (self-hosting). Permite centralizar el acceso a servicios, aplicaciones y recursos mediante una interfaz visual configurable. El proyecto está desarrollado en TypeScript, utiliza Next.js 16 como framework web, React 19 para la interfaz de usuario y Mantine como biblioteca de componentes. Se distribuye como imagen Docker multi-arquitectura y expone el puerto 7575. La persistencia de datos se realiza por defecto mediante SQLite (better-sqlite3), con soporte opcional para PostgreSQL. Incluye autenticación basada en credenciales, cifrado de secretos de integración y un CLI integrado para tareas de administración.
Características principales
Integraciones nativas
Más de 80 integraciones con servicios populares (Servarr, Docker, Kubernetes, Proxmox, Jellyfin, Immich, qBittorrent, Transmission, Deluge, Unifi, entre otros) para mostrar estado, métricas y acciones directas desde el dashboard.
Catálogo de iconos
Más de 20.000 iconos integrados (Tabler Icons, Lucide, Flag Icons) disponibles para personalizar enlaces, grupos y widgets sin depender de fuentes externas.
Autenticación integrada
Sistema de autenticación basado en credenciales (email/contraseña) listo para usar, con gestión de sesiones segura y soporte para proveedores OAuth mediante NextAuth v5 (beta).
Editor visual drag-and-drop
Configuración completa del dashboard mediante interfaz gráfica: creación de tableros, grupos, widgets y enlaces sin editar archivos de configuración YAML.
Cifrado de secretos
Las credenciales y claves API de las integraciones se almacenan cifradas en la base de datos mediante una clave de cifrado configurable (SECRET_ENCRYPTION_KEY).
CLI de administración
Interfaz de línea de comandos (homarr) incluida en la imagen para migraciones de base de datos, gestión de usuarios, generación de secretos y otras tareas operativas.
Soporte multi-base de datos
SQLite (better-sqlite3) por defecto para despliegues sencillos; PostgreSQL (node-postgres) como alternativa para entornos de alta concurrencia o replicación.
Redis integrado
Instancia Redis embebida para caché y colas de tareas en segundo plano; configurable como externa mediante variable de entorno REDIS_IS_EXTERNAL.
Proxy inverso incluido
Nginx integrado en la imagen para servir la aplicación, gestionar certificados TLS y encabezados de proxy de confianza (trusted proxies).
Internacionalización
Soporte multiidioma mediante next-intl con detección automática de locale y traducciones gestionadas vía Crowdin.
Requisitos del sistema
- Motor de contenedores compatible con OCI (Docker, Podman)
- Arquitectura linux/amd64 o linux/arm64 (imagen multi-plataforma)
- Mínimo 512 MB RAM disponibles para el contenedor
- Volumen persistente para /appdata (base de datos SQLite, certificados, configuración Redis)
- Puerto 7575 accesible en el host o red overlay
- Generación previa de AUTH_SECRET y SECRET_ENCRYPTION_KEY (64 caracteres hexadecimales cada uno)
Instalación con Docker Compose
Despliegue con Docker (imagen oficial)
La imagen oficial se publica en GitHub Container Registry. El siguiente comando crea un contenedor con volumen persistente, variables de entorno obligatorias y publicación del puerto 7575. Los secretos AUTH_SECRET y SECRET_ENCRYPTION_KEY deben generarse previamente con `openssl rand -hex 32`.
–name homarr \
–restart unless-stopped \
-p 7575:7575 \
-v /ruta/host/appdata:/appdata \
-e AUTH_SECRET='<64_hex_chars>' \
-e SECRET_ENCRYPTION_KEY='<64_hex_chars>' \
-e DB_URL='/appdata/db/db.sqlite' \
-e DB_DRIVER='better-sqlite3' \
-e DB_DIALECT='sqlite' \
-e AUTH_PROVIDERS='credentials' \
-e REDIS_IS_EXTERNAL='false' \
-e NODE_ENV='production' \
ghcr.io/homarr-labs/homarr:latest
Variables de entorno obligatorias
AUTH_SECRET y SECRET_ENCRYPTION_KEY son requeridos al primer arranque. La aplicación rechazará valores vacíos o inválidos. DB_URL debe ser una ruta absoluta dentro del volumen /appdata para que migraciones y aplicación compartan el mismo archivo SQLite.
openssl rand -hex 32 # AUTH_SECRET
openssl rand -hex 32 # SECRET_ENCRYPTION_KEY
Acceder al proyecto
Interfaz web
Accede al dashboard en http://<host>:7575 tras el arranque del contenedor. En el primer acceso se solicita crear la cuenta de administrador (email y contraseña).
CLI integrado
Ejecuta comandos administrativos dentro del contenedor: `docker exec -it homarr homarr –help` muestra subcomandos disponibles (migraciones, usuarios, secretos, etc.).
Casos de uso
- Portal único de acceso a servicios autoalojados (media servers, descargas, monitorización, infraestructura)
- Panel de control para homelabs con visualización de estado de contenedores Docker, máquinas virtuales Proxmox, clústeres Kubernetes
- Frontend unificado para stacks *arr (Sonarr, Radarr, Lidarr, Readarr, Prowlarr) con acciones rápidas y métricas
- Dashboard familiar o de equipo con autenticación y tableros personalizados por usuario
- Punto de entrada seguro detrás de proxy inverso (Traefik, Nginx Proxy Manager, Caddy) con TLS terminado en el edge
Configuración avanzada
Base de datos PostgreSQL externa
Para usar PostgreSQL en lugar de SQLite, define DB_DRIVER=node-postgres y DB_URL con la cadena de conexión completa. Las migraciones se aplican automáticamente al arranque.
-e DB_URL='postgres://usuario:contraseña@host:5432/homarr'
Redis externo
Desactiva la instancia embebida y conecta a un servidor Redis externo (útil para alta disponibilidad o clústeres).
-e REDIS_HOST='redis' \
-e REDIS_PORT='6379' \
-e REDIS_PASSWORD='opcional' \
-e REDIS_DB='0'
Certificados de confianza personalizados
Monta un directorio con certificados CA personalizados y define LOCAL_CERTIFICATE_PATH para que Homarr valide conexiones TLS a servicios internos con PKI propia.
-e LOCAL_CERTIFICATE_PATH='/certs'
Sockets Docker múltiples
Permite conectar a varios runtimes de contenedores (Docker + Podman) simultáneamente mediante DOCKER_SOCKET_PATHS.
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro
Modo demostración
Activa DEMO_MODE=true para sembrar un usuario demo (demo/demo), un tablero de ejemplo y una integración mock. DEMO_READ_ONLY=false permite escritura en el modo demo.
-e DEMO_READ_ONLY='false'
Gestión y mantenimiento
Actualización de imagen
Descarga la nueva etiqueta y recrea el contenedor preservando el volumen /appdata. Las migraciones de base de datos se ejecutan automáticamente al iniciar la versión nueva.
docker stop homarr && docker rm homarr
# Volver a ejecutar el comando docker run original con los mismos volúmenes y variables
Migraciones de base de datos manuales
Ejecuta migraciones pendientes sin reiniciar la aplicación usando el CLI interno.
Copia de seguridad de la base de datos SQLite
Copia el archivo de base de datos desde el volumen persistente mientras el contenedor está detenido o en modo solo lectura para evitar corrupción.
cp /ruta/host/appdata/db/db.sqlite /ruta/backups/homarr-$(date +%F).sqlite
docker start homarr
Rotación de secretos
Genera nuevos AUTH_SECRET y SECRET_ENCRYPTION_KEY, actualiza las variables de entorno y reinicia. Nota: la rotación de SECRET_ENCRYPTION_KEY invalida secretos de integración cifrados previamente; se requerirá reconfigurarlos.
openssl rand -hex 32
# Actualizar variables de entorno en el sistema de orquestación y reiniciar contenedor
Limpieza de caché Redis
Vacía la base de datos Redis embebida o externa para forzar recarga de datos de integraciones.
Stack técnico
- TypeScript
- Next.js 16 (App Router, Server Components)
- React 19
- Mantine UI 9 (componentes, formularios, gráficos, notificaciones)
- Bun 1.4 (gestor de paquetes, runtime de build)
- Node.js 24.18 (runtime de producción)
- SQLite (better-sqlite3) / PostgreSQL (node-postgres)
- Drizzle ORM (consultas tipadas, migraciones)
- NextAuth v5 / @auth/core (autenticación)
- Redis (ioredis) – caché y colas
- Nginx (proxy inverso, TLS, trusted proxies)
- Docker multi-stage (Alpine 3.24 runner)
- tRPC (API tipada end-to-end)
- TanStack Query (estado servidor, persistencia)
- Zod (validación de esquemas)
- Tailwind CSS (utilidades, vía postcss-preset-mantine)
- Vitest / Playwright (tests unitarios, integración, E2E)
- Turbo (monorepo, build pipeline)
- Semantic Release (versionado automático, changelog)
Referencias oficiales
- Repositorio oficial GitHub: https://github.com/homarr-labs/homarr
- Sitio web y documentación: https://homarr.dev
- Imagen Docker (GHCR): https://github.com/homarr-labs/homarr/pkgs/container/homarr
- Licencia Apache 2.0: https://www.apache.org/licenses/LICENSE-2.0
- Changelog: https://github.com/homarr-labs/homarr/blob/dev/CHANGELOG.md
- Guía de seguridad: https://github.com/homarr-labs/homarr/blob/dev/SECURITY.md
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
