Guía de despliegue

Homarr o Glance: panel self-hosted para tu VPS

Desplegar en un VPS Cloud →

Tutorial

Homarr o Glance: panel self-hosted para tu VPS

Autoalojamiento8 min de lectura11 pasos

Gestionas cinco, diez, quince contenedores Docker en un VPS y navegas entre las interfaces una por una — Dozzle para los logs, Uptime Kuma para el estado, Gitea para el código. Un panel de control self-hosted resuelve esto en menos de una hora. Dos herramientas destacan hoy: **Homarr**, completo y visual, y **Glance**, minimalista y ultra-ligero. Esta guía compara ambos, instala cada uno paso a paso y te ayuda a elegir.

Contenido· Por qué un panel de control self-hosted en tu VPS1/11
  1. 01Por qué un panel de control self-hosted en tu VPS
  2. 02Casos de uso concretos
  3. 03Homarr: panel completo con interfaz gráfica
  4. 04Desplegar Homarr con Docker Compose
  5. 05Glance: un binario Go, una config YAML, sin base de datos
  6. 06Desplegar Glance con Docker
  7. 07Homarr vs Glance: tabla comparativa
  8. 08Exponer en HTTPS con un reverse proxy
  9. 09Hardening: limitar el acceso al panel de control
  10. 10Resolución de problemas: errores comunes
  11. 11¿Qué herramienta elegir?

Por qué un panel de control self-hosted en tu VPS

Un VPS multi-aplicaciones sin página central es una infraestructura gestionada a ciegas. Memorizas cada puerto (http://your-domain.com:3001, :8080, :9000…), pierdes tiempo encontrando la interfaz de un servicio parado hace tres semanas, y no tienes ninguna vista consolidada del estado de tus contenedores.

Un panel de control self-hosted resuelve esto sin sobrecargar tu infraestructura: una página única, accesible por HTTPS detrás de tu reverse proxy, que agrega estado, accesos directos y métricas. No compartes ningún dato con un servicio de terceros, y no pagas ninguna suscripción adicional.

Casos de uso concretos

  • Página de inicio del navegador apuntando a tu propio VPS: todos tus servicios a un clic.
  • Vista de estado en tiempo real de tus contenedores Docker sin abrir Portainer o Dozzle.
  • Agregación de feeds RSS y noticias tech (Hacker News, Reddit, GitHub releases) en la misma pantalla que tus servicios.
  • Acceso centralizado para un equipo o agencia que comparte un VPS común.
  • Página de inicio de tu homelab o de tu infraestructura de desarrollo.
  • Monitorización ligera sin desplegar una pila Grafana/Prometheus completa.

Homarr: panel completo con interfaz gráfica

Homarr es un panel de control self-hosted en Next.js con una interfaz de configuración completamente gráfica — arrastras y sueltas tiles, configuras integraciones Docker, Sonarr, Radarr, Jellyfin o cualquier servicio con una API. Funciona en un solo contenedor Docker (imagen ghcr.io/homarr-labs/homarr) y persiste su configuración en un volumen.

Requisitos: un VPS con al menos 512 MB de RAM disponibles después de tus otros contenedores, Docker y Docker Compose instalados, y un nombre de dominio o subdominio apuntando a tu IP. Espera 150 a 250 MB de RAM en reposo según las integraciones activas.

Desplegar Homarr con Docker Compose

  1. Crear el directorio y el archivo Compose

    En tu VPS, crea un directorio dedicado y un archivo docker-compose.yml:

    mkdir -p /opt/homarr && cd /opt/homarr

    Contenido del archivo docker-compose.yml:

    services:
      homarr:
        image: ghcr.io/homarr-labs/homarr:latest
        container_name: homarr
        restart: unless-stopped
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - ./appdata:/appdata
        environment:
          - SECRET_ENCRYPTION_KEY=tu-clave-aleatoria-32-chars
        ports:
          - "7575:7575"

    SECRET_ENCRYPTION_KEY es obligatorio: Homarr cifra los secretos de sus integraciones (tokens API, contraseñas) con esta clave. Genera una con openssl rand -hex 32.

  2. Generar la clave de cifrado

    Homarr requiere una clave hexadecimal de 64 caracteres:

    openssl rand -hex 32

    Copia el valor en SECRET_ENCRYPTION_KEY del archivo Compose. Sin esta variable, el contenedor se niega a arrancar.

  3. Iniciar el contenedor

    docker compose up -d

    Homarr es accesible en http://your-domain.com:7575. En el primer acceso, crea tu cuenta de administrador. La configuración inicial (tiles, tema, integraciones) se realiza completamente desde la interfaz web.

  4. Configurar la integración Docker

    El socket Docker (/var/run/docker.sock) está montado en solo lectura. En la interfaz de Homarr, ve a Configuración → Integraciones y añade una integración Docker apuntando a unix:///var/run/docker.sock. Homarr mostrará automáticamente el estado (running/stopped) de tus contenedores en los tiles asociados.

  5. Configurar Traefik como reverse proxy

    Para exponer Homarr en HTTPS, añade estos labels a tu servicio en el archivo Compose:

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.homarr.rule=Host(`dashboard.your-domain.com`)"
      - "traefik.http.routers.homarr.entrypoints=websecure"
      - "traefik.http.routers.homarr.tls.certresolver=letsencrypt"
      - "traefik.http.services.homarr.loadbalancer.server.port=7575"

    Elimina el bloque ports si expones únicamente via Traefik.

  6. Alternativa nginx

    Si usas nginx, crea un vhost /etc/nginx/sites-available/homarr.conf:

    server {
        listen 443 ssl;
        server_name dashboard.your-domain.com;
    
        ssl_certificate     /etc/letsencrypt/live/dashboard.your-domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/dashboard.your-domain.com/privkey.pem;
    
        location / {
            proxy_pass http://127.0.0.1:7575;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    Certificado Let's Encrypt via certbot --nginx -d dashboard.your-domain.com.

Glance: un binario Go, una config YAML, sin base de datos

Glance está en el extremo opuesto del espectro de complejidad respecto a Homarr. Es un binario Go estático: sin Node.js, sin base de datos, sin interfaz de configuración. Todo se declara en un archivo glance.yml. Consume menos de 50 MB de RAM en reposo, lo que lo convierte en la elección natural para un VPS ajustado o un servidor donde cada megabyte cuenta.

Licencia: AGPL-3.0 (igual que Homarr). Código fuente en GitHub.

Desplegar Glance con Docker

  1. Crear el directorio y el archivo de configuración

    mkdir -p /opt/glance && cd /opt/glance

    Crea un archivo glance.yml mínimo con un widget Hacker News y un widget Docker:

    server:
      host: 0.0.0.0
      port: 8080
    
    pages:
      - name: Inicio
        columns:
          - size: full
            widgets:
              - type: hacker-news
                title: Hacker News
    
          - size: small
            widgets:
              - type: docker-containers
                title: Contenedores
                collapsed-by-default: false

    Glance expone el puerto 8080 por defecto.

  2. Lanzar con Docker Compose

    Crea un archivo docker-compose.yml:

    services:
      glance:
        image: glanceapp/glance:latest
        container_name: glance
        restart: unless-stopped
        volumes:
          - ./glance.yml:/app/glance.yml:ro
          - /var/run/docker.sock:/var/run/docker.sock:ro
        ports:
          - "8080:8080"

    Arranca con:

    docker compose up -d

    Glance es accesible en http://your-domain.com:8080.

  3. Añadir un widget de tiempo

    El widget weather es uno de los más sencillos de configurar — solo requiere una ubicación:

    - type: weather
      title: Tiempo
      location: Madrid, Spain
      units: metric
      hour-format: 24h

    Añade este bloque en la sección widgets de la columna que elijas.

  4. Configurar el reverse proxy para Glance

    Con Traefik, añade en tu docker-compose.yml:

    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.glance.rule=Host(`glance.your-domain.com`)"
      - "traefik.http.routers.glance.entrypoints=websecure"
      - "traefik.http.routers.glance.tls.certresolver=letsencrypt"
      - "traefik.http.services.glance.loadbalancer.server.port=8080"

    Con nginx, misma estructura que Homarr, reemplazando el puerto por 8080.

  5. Recarga en caliente de la configuración

    Glance monitoriza su archivo de configuración y se recarga automáticamente cuando lo modificas. No es necesario reiniciar el contenedor después de cada adición de widget — docker logs glance -f mostrará la línea Config reloaded tras unos segundos.

Homarr vs Glance: tabla comparativa

Desplace la tabla

CriterioHomarrGlance
RAM en reposo150 – 250 MB< 50 MB
ConfiguraciónInterfaz gráfica drag & dropArchivo YAML únicamente
Base de datosSQLite embebidaNinguna
Widgets disponiblesIntegraciones (Sonarr, Jellyfin, Docker…) + tiles libresRSS, Hacker News, tiempo, Docker, GitHub, calendario…
Actualización`docker compose pull && docker compose up -d``docker compose pull && docker compose up -d`
LicenciaAGPL-3.0AGPL-3.0
Ideal paraInfraestructura rica, uso diario, uso en equipoVPS ajustado, homelabs minimalistas, vista rápida

Exponer en HTTPS con un reverse proxy

Ambas herramientas escuchan en HTTP localmente (7575 para Homarr, 8080 para Glance). Exponer un panel de control directamente a Internet sin TLS significa transmitir tus tokens de integración y sesiones en texto plano.

Dos opciones habituales:

Traefik — la opción recomendada si ya tienes Traefik en tu VPS. Los labels son suficientes (ejemplos arriba). Traefik solicita y renueva los certificados Let's Encrypt automáticamente via ACME DNS-01 o HTTP-01.

nginx — la opción natural si tu VPS ya funciona con nginx. La estructura proxy_pass http://127.0.0.1:<puerto> es idéntica para ambas herramientas; solo cambia el puerto.

Hardening: limitar el acceso al panel de control

Un panel de control self-hosted expone tus servicios internos. Algunas precauciones:

Autenticación Homarr: activa la autenticación integrada en el primer acceso. No dejes el panel abierto sin contraseña, aunque esté detrás de un subdominio oscuro.

Glance: no ofrece autenticación nativa. Protégelo con un middleware Traefik (BasicAuth o ForwardAuth) o via auth_basic de nginx antes de exponerlo públicamente.

Red Docker dedicada: crea una red internal: true para los servicios que no necesitan acceso externo, y conecta solo Homarr o Glance a la red Traefik.

Socket Docker en solo lectura: ambas herramientas montan /var/run/docker.sock — móntalo como :ro (solo lectura) como en los ejemplos anteriores. Un contenedor comprometido no podrá lanzar nuevos contenedores via el socket.

Resolución de problemas: errores comunes

Homarr se niega a arrancar — SECRET_ENCRYPTION_KEY missing: la variable de entorno está ausente o vacía. Genera una clave con openssl rand -hex 32 y añádela al archivo Compose.

Homarr muestra "Docker integration error": verifica que /var/run/docker.sock está montado en el contenedor (docker inspect homarr | grep docker.sock) y que el socket es legible.

Glance no carga el widget docker-containers: el socket Docker no está montado. Añade el volumen /var/run/docker.sock:/var/run/docker.sock:ro al Compose.

Glance muestra pantalla en blanco: tu glance.yml tiene un error de sintaxis YAML. Verifica con docker logs glance — el mensaje de error indica la línea exacta.

Error 502 Bad Gateway detrás de nginx/Traefik: el contenedor no está en ejecución o el puerto no coincide. Verifica con docker ps | grep homarr o docker ps | grep glance.

¿Qué herramienta elegir?

Elige Homarr si tienes múltiples servicios con APIs (Sonarr, Radarr, Jellyfin, Pi-hole…), si prefieres configurar via interfaz gráfica, o si compartes tu panel con otras personas. Presupuesta 200 MB de RAM adicionales en tu asignación de contenedores.

Elige Glance si tu VPS está ajustado de memoria, si te sientes cómodo con YAML, o si quieres una herramienta que arranque en segundos y consuma lo mínimo. La configuración versionada en un archivo de texto es también una ventaja para entornos gestionados como infrastructure-as-code.

Ambas coexisten sin problema en el mismo VPS si tienes la RAM — Homarr como panel principal, Glance como vista rápida lateral.

Un VPS para alojar tu panel de control

Un VPS de ServOrbit con acceso root e IPv4 dedicada te da la libertad de ejecutar Homarr, Glance y todos tus servicios detrás de un reverse proxy, sin restricciones de puertos ni de contenedores.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva