Cómo instalar LabDash en Docker - Dashboard personalizable para homelabs autohospedado en Docker

LabDash | Dashboard | Docker

LabDash: Dashboard personalizable autohospedado en Docker para tu homelab (alternativa Heimdall, Organizr)

Homepage personalizable con widgets (links, status, salud servicios). Grid layout drag-and-drop. Fondo personalizable. Encriptación local. Control total de datos. Node.js. MIT open source.

¿Qué es LabDash?


LabDash es una homepage personalizable self-hosted diseñada como punto de entrada central para tu homelab, permitiendo organizar todos tus servicios mediante widgets drag-and-drop sin dependencias cloud ni telemetría. Es la alternativa moderna y limpia a Heimdall, Organizr, Muximux para centralizadores de servicios.

Propuesta clave: Dashboard grid-based totalmente personalizable. Arrastra widgets para reorganizar. Widgets para: enlaces rápidos, status servicios, health checks, información sistema (CPU, RAM, disco), búsqueda personalizable, reloj, clima, notas. Fondo personalizado (imágenes). Encriptación local de configuración. Import/export completo de config. Control total de datos (sin cloud). Administrador único (cambios controlados). Interfaz moderna (dark mode, responsive). Node.js ligero.

Características principales: Grid layout personalizable (drag-and-drop widgets). Widgets: Quick Links, Service Health, System Stats (CPU/RAM/Disk), Search Providers (Google, DuckDuckGo, custom), Clock, Weather, Notes, Custom Widgets. Fondo personalizado (upload imagen). Dark mode + light mode. Responsive design (mobile, tablet, desktop). Encriptación local (SECRET key para JWT). Import/Export config (JSON). Configuración GUI (no YAML manual). Historial servicios. Status monitor integrado. Admin-only changes (acceso controlado). Setup wizard para primeros pasos. Supporta Watchtower labels. Node.js backend + SvelteKit/Vue frontend (ligero). Docker one-liner setup. Datos persistentes en /config. Acceso desde navegador cualquier dispositivo red local. MIT open source.

Para homelabs: Homepage centralizada bonita. Acceso rápido a todo. Sin nubes. Control total. Datos tuyos.

Características principales

Grid layout drag-and-drop

Reorganiza widgets instantáneamente. Layout personalizado.

Widgets variados

Quick links, health checks, stats, search, clock, weather, notas.

Fondo personalizado

Upload tu imagen. Hero visual que inspira.

Buscadores personalizados

Google, DuckDuckGo, Bing, o custom. Search avanzada.

System Stats

CPU, RAM, almacenamiento en tiempo real. Monitoreo visual.

Service Health

Chequea status servicios. Indicador rojo/verde.

Encriptación local

SECRET key JWT. Datos encrypted en filesystem.

Import/Export config

Backup/restore completo (JSON). Portabilidad.

Dark mode + Responsive

UI moderna. Mobile-friendly. Accesible.

Admin-only changes

Control acceso. Cambios solo admins. Protección datos.

Setup wizard

Primeros pasos guiados. Setup en 2 minutos.

MIT open source

Código abierto. Comunidad. Extensible.

Requisitos del sistema

  • Docker & Docker Socket (/var/run/docker.sock accesible)
  • 200 MB - 512 MB RAM mínimo (Node.js ligero)
  • 100 MB espacio disco (para imagen + config)
  • Puerto 2022 o custom (configurable en compose)
  • Volumen persistente para /config (configuración)
  • Volumen uploads para /app/public/uploads (imágenes background)
  • SECRET env var (key encriptación JWT, generar: openssl rand -base64 32)
  • Navegador moderno (Chrome, Firefox, Safari, Edge)
Setup ultra-simple: Solo Docker socket + volumes + SECRET key.

Instalación con Docker Compose

Paso 1: Generar SECRET key

openssl rand -base64 32 # Resultado: usa este valor como SECRET en compose

Paso 2: Docker Compose (recomendado)

cat > docker-compose.yml << 'EOF' version: '3.8' services: lab-dash: container_name: lab-dash image: ghcr.io/anthonygress/lab-dash:latest privileged: true restart: unless-stopped ports: - "2022:2022" environment: # SECRET key para encriptación JWT (generar con openssl) - SECRET=tu_secret_key_aqui_base64 volumes: # Sys para monitoreo stats (privileged:true required) - /sys:/sys:ro # Config DB (guardar en place específico, NO en compose root) - /docker/lab-dash/config:/config # Uploads (imágenes background, etc) - /docker/lab-dash/uploads:/app/public/uploads # Docker socket para acceso container info - /var/run/docker.sock:/var/run/docker.sock labels: - "com.centurylinklabs.watchtower.enable=true" EOF docker compose up -d

Paso 3: Crear directorios (antes de docker compose)

mkdir -p /docker/lab-dash/config /docker/lab-dash/uploads

Acceder (setup inicial)

http://localhost:2022 - Dashboard LabDash (setup wizard)

Primer setup

  1. Abre http://localhost:2022
  2. Setup wizard aparece (primeros pasos guiados)
  3. Ingresa nombre, email admin, contraseña
  4. Personaliza fondo (upload imagen o color)
  5. Agrega primeros widgets
  6. ¡Dashboard listo!

Primeros pasos

1. Setup inicial (wizard)

  1. Abre http://localhost:2022
  2. Wizard: nombre, email, password admin
  3. Confirma setup
  4. Dashboard aparece

2. Agregar Quick Link widget

  1. Dashboard → "Add Widget" o "+"
  2. Tipo: "Quick Links"
  3. Nombre, descripción, URL destino
  4. Click "Create"
  5. Widget aparece en grid (arrastraable)

3. Organizar widgets (drag-and-drop)

  1. Click en widget
  2. Arrastra a nueva posición
  3. Grid auto-reorganiza
  4. Layout guardado automático

4. Cambiar fondo

  1. Settings (engranaje) → "Appearance" o "Background"
  2. Upload imagen (JPG, PNG)
  3. O elige color sólido
  4. Preview en tiempo real

5. Agregar Service Health widget

  1. Add Widget → "Service Health"
  2. Nombre servicio, URL destino
  3. LabDash chequea status automático
  4. Indicador rojo (down) / verde (up)

6. Agregar System Stats widget

  1. Add Widget → "System Stats"
  2. Muestra CPU, RAM, Disk en tiempo real
  3. Actualización cada 10-30 segundos
  4. Monitoreo visual de recursos

7. Personalizar buscador

  1. Add Widget → "Search"
  2. Provider: Google, DuckDuckGo, custom
  3. Placeholder text personalizado
  4. Search bar en widget

8. Agregar notas personales

  1. Add Widget → "Notes"
  2. Escribe notas quick (recordatorios, TO-DOs)
  3. Auto-save en DB local

9. Cambiar tema (Dark mode)

  1. Settings → Theme
  2. Toggle Dark / Light
  3. Preferencia guardada

10. Backup/Restore config

  1. Settings → "Export Config"
  2. Descarga JSON con todo (widgets, settings)
  3. Guarda en lugar seguro
  4. Para restore: Settings → "Import Config" + sube JSON

Casos de uso

  • Homelabs: Homepage centralizada bonita. Acceso rápido a todos servicios. Punto de entrada.
  • Startups/pequeños equipos: Internal dashboard. Status servicios. Monitoreo visual rápido.
  • Personal infrastructure: Landing page servidor personal. Notas, búsqueda, weather, reloj.
  • Reemplazo Heimdall/Organizr: Alternativa moderna, limpia. Mejor UI/UX. Mantenimiento activo.
  • Network appliance: Raspberry Pi, NAS, miniPC. Acceso desde cualquier device red local.

HTTPS con Caddy (producción)

Caddyfile

dashboard.tudominio.com { reverse_proxy localhost:2022 }

Acceso remoto seguro

https://dashboard.tudominio.com con HTTPS automático

IMPORTANTE: WebSocket para HTTPS

LabDash usa WebSocket. Caddy lo soporta por defecto, pero si hay problemas:

dashboard.tudominio.com { reverse_proxy localhost:2022 { header_up Connection "Upgrade" header_up Upgrade "websocket" } }

Gestión y mantenimiento

Ver logs

docker logs -f lab-dash

Backup de config

cp -r /docker/lab-dash/config ./lab-dash-config-backup-$(date +%Y%m%d)

Backup de imágenes (uploads)

cp -r /docker/lab-dash/uploads ./lab-dash-uploads-backup-$(date +%Y%m%d)

Restore config

docker stop lab-dash rm -rf /docker/lab-dash/config cp -r ./lab-dash-config-backup-YYYYMMDD /docker/lab-dash/config docker start lab-dash

Reiniciar container

docker compose restart lab-dash

Actualizar a versión más reciente

docker compose pull docker compose up -d

Monitorear consumo

docker stats lab-dash # Típicamente: 150-300MB RAM, bajo CPU

Regenerar SECRET key (si comprometido)

openssl rand -base64 32 # Edita docker-compose.yml con nuevo SECRET docker compose up -d

Comparativa con alternativas

vs Heimdall

LabDash gana: UI más moderna, activamente mantenido, mejor UX. Heimdall gana: Más maduro, más widgets histórico.

vs Organizr

LabDash gana: Más simple, limpio, performance. Organizr gana: Más features complejas, más customización.

vs Muximux

LabDash gana: Mejor UI, drag-and-drop, health checks. Muximux gana: Ultra-simple, ultra-ligero.

vs Dashy

LabDash gana: Interfaz más intuitiva, widgets ricos. Dashy gana: Más customizable, más features.

Mejor para: Homelabs que quieren homepage bonita sin complicaciones. Interfaz moderna. UX smooth. Setup rápido.

Comentarios

Entradas populares de este blog

NAS SYNOLOGY DSM 7.1 en VMware ESXI - Guía instalación y configuración Synology DSM 7.1 en VMWARE

Solución al error: «user is not in the sudoers file» en Debian

Multisesión RDP en Windows 10 Pro