Homarr: Panel de control moderno para servicios autoalojados
Dashboard extensible 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 autoalojados en el canal GENBYTE:
¿Qué es Homarr: Panel de control moderno para servicios autoalojados?
Homarr es una aplicación de panel de control (dashboard) diseñada para entornos de autoalojamiento (self-hosting). Permite centralizar el acceso y la monitorización de servicios como *arr (Sonarr, Radarr, Lidarr), clientes de descargas (qBittorrent, Transmission, Deluge), servidores multimedia (Jellyfin, Plex, Emby), infraestructura (Kubernetes, Proxmox, Unifi) y muchos más. Su interfaz se construye mediante arrastrar y soltar, sin necesidad de editar archivos de configuración YAML. Incluye autenticación basada en credenciales, gestión de secretos cifrados y una biblioteca de más de 20.000 iconos listos para usar. El proyecto está licenciado bajo Apache-2.0 y su código se desarrolla en TypeScript con Next.js 16, React 19 y Mantine UI.
Características principales
Integraciones nativas
Más de 80 integraciones oficiales que cubren clientes *arr, descargas, multimedia, monitorización, infraestructura, nube y herramientas de desarrollo.
Biblioteca de iconos
Más de 20.000 iconos vectoriales incluidos (Tabler, Material Design, Simple Icons, etc.) para personalizar cada entrada del tablero.
Autenticación y seguridad
Sistema de autenticación basado en credenciales (next-auth v5 beta) con cifrado de secretos de integración mediante clave de cifrado dedicada (SECRET_ENCRYPTION_KEY).
Editor visual drag-and-drop
Creación y organización de tableros, grupos y widgets mediante interfaz gráfica; sin edición manual de archivos YAML ni JSON.
Base de datos embebida o externa
Soporte nativo para SQLite (better-sqlite3) como opción por defecto sin dependencias externas, y PostgreSQL (node-postgres) para despliegues de alta concurrencia.
Redis integrado opcional
Instancia Redis interna gestionada automáticamente (REDIS_IS_EXTERNAL=false) o conexión a Redis externo para caché y colas.
CLI integrada
Binario `homarr` disponible en la imagen para migraciones, semillas, gestión de usuarios y tareas de mantenimiento desde línea de comandos.
Internacionalización
Soporte multiidioma mediante next-intl con detección automática y selector manual.
Requisitos del sistema
- Motor de contenedores compatible con OCI (Docker Engine, Podman, containerd).
- Volumen persistente para `/appdata` (base de datos SQLite, certificados de confianza, caché de Redis interno).
- Puerto 7575 TCP accesible desde la red deseada (HTTP plano; se recomienda terminación TLS en proxy inverso).
- Generación previa de `AUTH_SECRET` y `SECRET_ENCRYPTION_KEY` (64 caracteres hexadecimales cada uno, p. ej. `openssl rand -hex 32`).
Instalación con Docker Compose
Crear archivo de entorno
Copia `.env.example` a `.env` y rellena los valores obligatorios. Nunca subas el `.env` poblado a control de versiones.
# Edita .env y define al menos:
# AUTH_SECRET=<64 hex chars>
# SECRET_ENCRYPTION_KEY=<64 hex chars>
# DB_URL=/appdata/db/db.sqlite (ruta absoluta dentro del contenedor)
# Opcional: BASE_URL=https://homarr.tu-dominio.com
Desplegar con Docker Compose (ejemplo mínimo)
El proyecto no incluye un `docker-compose.yml` de producción en el repositorio raíz; el siguiente ejemplo se deriva del `Dockerfile` y las variables documentadas. Ajusta rutas, red y proxy inverso según tu infraestructura.
services:
homarr:
image: ghcr.io/homarr-labs/homarr:latest
container_name: homarr
restart: unless-stopped
ports:
– '7575:7575'
volumes:
– ./appdata:/appdata
– /var/run/docker.sock:/var/run/docker.sock:ro
environment:
– AUTH_SECRET=${AUTH_SECRET}
– SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY}
– DB_URL=/appdata/db/db.sqlite
– DB_DRIVER=better-sqlite3
– DB_DIALECT=sqlite
– REDIS_IS_EXTERNAL=false
– NODE_ENV=production
– LOG_LEVEL=info
# – BASE_URL=https://homarr.tu-dominio.com
# Si usas socket de Podman adicional:
# environment:
# – DOCKER_SOCKET_PATHS=/var/run/docker.sock,/run/user/1000/podman/podman.sock
Iniciar la pila
Levanta el contenedor en segundo plano. La imagen ejecuta migraciones de base de datos y genera `AUTH_SECRET` si falta (pero se recomienda definirlo explícitamente).
Acceder al proyecto
Interfaz web
Accede a `http://<host>:7575` (o a la `BASE_URL` configurada tras proxy inverso). En el primer arranque se presenta el asistente de configuración inicial para crear el usuario administrador.
CLI administrativa
Ejecuta comandos dentro del contenedor con `docker exec -it homarr homarr <comando>`. Comandos disponibles: `migrate`, `seed`, `user:create`, `user:reset-password`, `integration:list`, etc.
Casos de uso
- Portal único de acceso a la suite *arr (Sonarr, Radarr, Lidarr, Readarr, Prowlarr) y clientes de descargas.
- Monitorización de estado y métricas de Jellyfin, Plex, Emby, Immich, Audiobookshelf, Navidrome.
- Gestión visual de contenedores Docker/Podman, clústeres Kubernetes, hosts Proxmox y dispositivos Unifi.
- Enlaces rápidos a servicios internos con iconos personalizados y comprobaciones de salud (health checks).
- Panel de control para equipos domésticos u organizativos con autenticación y control de acceso basado en roles.
Configuración avanzada
PostgreSQL externo
Para entornos de alta disponibilidad o concurrencia, sustituye SQLite por PostgreSQL definiendo `DB_DRIVER=node-postgres` y `DB_URL=postgres://user:pass@host:port/db`. Ejecuta migraciones con `docker exec -it homarr homarr migrate` tras el cambio.
DB_DRIVER=node-postgres
DB_URL=postgres://homarr:secret@postgres:5432/homarr
Redis externo
Desactiva la instancia interna y apunta a un servidor Redis dedicado (útil para clústeres o persistencia separada).
REDIS_IS_EXTERNAL=true
REDIS_URL=redis://redis:6379
Certificados de confianza personalizados
Monta un directorio con CAs de confianza y define `LOCAL_CERTIFICATE_PATH` para que Homarr valide conexiones TLS a servicios internos con certificados autofirmados.
LOCAL_CERTIFICATE_PATH=/appdata/trusted-certificates
# En docker-compose.yml añade:
# volumes:
# – ./certs:/appdata/trusted-certificates:ro
Habilitar integración Kubernetes
Activa la herramienta de Kubernetes (requiere kubeconfig accesible dentro del contenedor).
ENABLE_KUBERNETES=true
Modo demostración
Despliega una instancia de solo lectura con usuario `demo`/`demo`, tablero de ejemplo e integración simulada para evaluación.
DEMO_MODE=true
DEMO_READ_ONLY=true
Gestión y mantenimiento
Actualizar imagen
Descarga la etiqueta más reciente y recrea el contenedor preservando el volumen `/appdata`.
docker compose up -d
Ejecutar migraciones de base de datos
Tras actualizaciones que incluyan cambios de esquema, lanza las migraciones manualmente si no se aplican automáticamente al arranque.
Crear usuario administrador desde CLI
Útil si se pierde el acceso a la interfaz web o para aprovisionamiento automatizado.
Restablecer contraseña de usuario
Permite recuperar acceso sin borrar la base de datos.
Copias de seguridad
Realiza backup del directorio `/appdata` (contiene `db.sqlite`, certificados, configuración de Redis interno). Para PostgreSQL externo, usa `pg_dump` independiente.
Ver logs de la aplicación
Inspecciona la salida estándar del contenedor (nginx, Next.js, Redis interno, entrypoint).
Stack técnico
- TypeScript 7
- Next.js 16 (App Router, Standalone Output)
- React 19
- Bun 1.4 (gestor de paquetes y runtime de build)
- Node.js 24 (runtime de producción)
- Mantine UI 9 (componentes, formularios, gráficos, notificaciones)
- Tailwind CSS (utilidades, vía postcss-preset-mantine)
- Drizzle ORM (SQLite better-sqlite3 / PostgreSQL node-postgres)
- NextAuth v5 beta (autenticación credentials)
- i18n: next-intl
- Redis: ioredis (interno o externo)
- Nginx (reverse proxy interno, servir estáticos, terminación HTTP)
- Docker multi-stage (Alpine 3.24 runner)
- tRPC 11 (API tipada end-to-end)
- TanStack Query 5 (estado servidor)
- Zod 4 (validación de esquemas)
- Integraciones: @ctrl/qbittorrent, @ctrl/deluge, @ctrl/transmission, @jellyfin/sdk, @immich/sdk, @kubernetes/client-node, @homarr/node-unifi, proxmox-api, tsdav (CalDAV/CardDAV), ical.js, mermaid, shiki, codemirror, xterm
Referencias oficiales
- Repositorio oficial (GitHub): https://github.com/homarr-labs/homarr
- Sitio web y documentación: https://homarr.dev
- Licencia Apache-2.0: https://www.apache.org/licenses/LICENSE-2.0
- Docker Hub / GHCR (imágenes oficiales): https://github.com/homarr-labs/homarr/pkgs/container/homarr
- Changelog: https://github.com/homarr-labs/homarr/blob/dev/CHANGELOG.md
- Política 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]
