Guía de despliegue

Alojar Glance en un VPS: su panel de inicio self-hosted

Desplegar en un VPS Cloud →

Tutorial

Alojar Glance en un VPS: su panel de inicio self-hosted

Seguridad y monitorización7 min de lectura10 pasos

Gestionar varios servicios en un VPS sin una vista unificada es navegar a ciegas. Glance resuelve ese problema: un panel self-hosted ultraligero que centraliza sus noticias tecnológicas (Hacker News, RSS), las métricas en vivo del servidor y el estado de los contenedores Docker en una sola página accesible desde el navegador. Un único binario Go, sin bases de datos, sin Redis — arranca en menos de un segundo, consume menos de 25 MB en reposo y se configura íntegramente mediante un archivo YAML. Esta guía cubre la instalación completa, la configuración avanzada de widgets, la seguridad del socket Docker, comparativas con alternativas y la resolución de errores frecuentes.

Contenido· Por qué Glance es perfecto para un VPS1/16
  1. 01Por qué Glance es perfecto para un VPS
  2. 02Lo que obtiene por defecto
  3. 03Glance vs alternativas: Heimdall, Homepage, Homarr
  4. 04Comparativa de paneles self-hosted
  5. 05Requisitos previos
  6. 06Lo que necesita antes de empezar
  7. 07Desplegar Glance en su VPS ServOrbit
  8. 08Instalación paso a paso
  9. 09Configuración YAML avanzada: widgets, temas y diseño
  10. 10Opciones de configuración avanzada
  11. 11Seguridad: el socket Docker en solo lectura
  12. 12Riesgos y mitigaciones
  13. 13Resolución de problemas: errores frecuentes
  14. 14Problemas habituales y soluciones
  15. 15Casos de uso reales para una agencia web
  16. 16Cómo estructurar Glance para una agencia

Por qué Glance es perfecto para un VPS

Lo que obtiene por defecto

  • Widgets integrados: feeds RSS, Hacker News, Reddit, clima, marcadores, reloj mundial
  • Métricas en vivo del servidor: CPU, RAM, disco, carga media
  • Estado de contenedores Docker (ejecutando / detenido / pausado)
  • Temas claro/oscuro y colores personalizables vía YAML
  • Sin dependencias externas: único binario estático Go (~15 MB)
  • Recarga en caliente de la configuración sin reinicio

Glance vs alternativas: Heimdall, Homepage, Homarr

Comparativa de paneles self-hosted

Desplace la tabla

HerramientaLenguajeRAM reposoConfiguraciónMétricas DockerWidgets RSS/noticias
**Glance**Go< 25 MBYAML puroSí (solo lectura)Sí (nativo)
HomepageNode/React~120 MBYAMLSíParcial
HomarrNode/React~150 MBGUI + JSONSíVía integración
HeimdallPHP/Laravel~200 MBGUI + MySQLNo nativoNo

Glance destaca cuando la ligereza y la velocidad importan más que una interfaz gráfica de configuración. Para equipos no técnicos que prefieren hacer clic a editar YAML, Homarr o Heimdall son alternativas válidas.

Requisitos previos

Lo que necesita antes de empezar

  • Un VPS ServOrbit con Ubuntu 22.04 / Debian 12 (≥ 1 vCPU, 512 MB RAM es suficiente)
  • docker y docker compose instalados (Docker Engine 24+, Compose v2)
  • Acceso SSH root o sudo
  • Un subdominio apuntando a su VPS (p. ej. glance.midominio.tld) — opcional pero recomendado para HTTPS

Desplegar Glance en su VPS ServOrbit

Instalación paso a paso

  1. Crear el directorio de trabajo

    Conéctese por SSH a su VPS y cree la carpeta que alojará la configuración de Glance:

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

  2. Escribir el archivo `docker-compose.yml`

    Cree el siguiente archivo. El montaje en solo lectura del socket Docker es obligatorio (véase la sección Seguridad más abajo):

    services:
      glance:
        image: glanceapp/glance:latest
        restart: unless-stopped
        ports:
          - "8080:8080"
        volumes:
          - ./glance.yml:/app/glance.yml:ro
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - /proc:/proc:ro
        environment:
          - TZ=Europe/Madrid
  3. Crear la configuración base `glance.yml`

    Este archivo YAML define sus páginas, columnas y widgets:

    server:
      port: 8080
    
    pages:
      - name: Inicio
        columns:
          - size: small
            widgets:
              - type: clock
                hour-format: 24h
              - type: resource-usage
          - size: full
            widgets:
              - type: hacker-news
              - type: rss
                feeds:
                  - url: https://blog.servOrbit.com/rss
                    title: ServOrbit Blog
          - size: small
            widgets:
              - type: docker-containers
  4. Iniciar el contenedor

    docker compose up -d

    Verifique que está corriendo: docker compose ps — el estado debe mostrar Up.

  5. Abrir el firewall (si UFW está activo)

    ufw allow 8080/tcp

    Abra http://<IP-VPS>:8080 en su navegador para confirmar que Glance responde.

  6. Configurar un proxy inverso nginx con HTTPS

    Para servir Glance en https://glance.midominio.tld, cree un vhost nginx y obtenga el certificado con Certbot: certbot --nginx -d glance.midominio.tld.

  7. Activar autenticación HTTP básica (recomendado)

    Glance no tiene auth integrada. Proteja el acceso vía nginx:

    htpasswd -c /etc/nginx/.htpasswd admin

    Añada en el bloque location / del vhost:

    auth_basic "Glance";
    auth_basic_user_file /etc/nginx/.htpasswd;

    Recargue nginx: systemctl reload nginx.

  8. Verificar las métricas del sistema

    El widget resource-usage lee /proc — el montaje :ro en docker-compose.yml es por tanto obligatorio. Si las métricas no aparecen, compruebe: docker compose logs glance | grep -i proc.

  9. Recargar la configuración sin reinicio

    Cualquier cambio en glance.yml se aplica enviando SIGHUP al contenedor:

    docker kill --signal=SIGHUP glance_glance_1

  10. Activar actualizaciones automáticas (opcional)

    Despliegue [Watchtower](https://containrrr.dev/watchtower/) para mantener la imagen Glance actualizada automáticamente, o gestiónelo manualmente:

    docker compose pull && docker compose up -d

Configuración YAML avanzada: widgets, temas y diseño

La potencia de Glance reside en su archivo YAML. Estas son las personalizaciones más útiles.

Opciones de configuración avanzada

  • Tema personalizado — añada bajo server:: theme: { background-color: "240 21 15", primary-color: "217 92 83" } (formato HSL sin hsl())
  • Páginas múltiples — añada tantos bloques - name: bajo pages: como contextos tenga (p. ej. "Dev", "Clientes", "Personal")
  • Widget de marcadores — type: bookmarks con grupos de enlaces para centralizar el acceso rápido a sus herramientas internas
  • Widget de monitor — type: monitor con una lista de URLs: Glance realiza comprobaciones HTTP y muestra latencia + estado en tiempo real
  • Widget de releases GitHub — type: releases con una lista de repositorios: ideal para seguir nuevas versiones de sus herramientas
  • Intervalo de refresco — cada widget acepta cache: 1h (o 30m, 5m) para controlar la frecuencia de sondeo

Seguridad: el socket Docker en solo lectura

Montar /var/run/docker.sock dentro de un contenedor le da a ese contenedor un control potencialmente total sobre el daemon Docker del host — equivalente a root. Este es el vector de escalada de privilegios más común en entornos Docker.

Riesgos y mitigaciones

  • Riesgo: un contenedor comprometido con acceso :rw al socket puede lanzar contenedores root, montar /, exfiltrar secretos
  • Mitigación 1 — Montaje de solo lectura: el :ro en docker-compose.yml bloquea todas las escrituras; Glance solo necesita leer el estado de los contenedores
  • Mitigación 2 — Proxy del socket: despliegue [Docker Socket Proxy](https://github.com/Tecnativa/docker-socket-proxy) para exponer solo los endpoints GET /containers y GET /version
  • Mitigación 3 — Aislamiento de red: coloque Glance en una red Docker dedicada, aislada de sus servicios de aplicación
  • Verificación: docker inspect glance_glance_1 | grep -A5 Mounts — la línea Mode debe mostrar ro, nunca rw

Si no necesita métricas Docker, simplemente elimine el montaje /var/run/docker.sock de docker-compose.yml y retire el widget docker-containers de glance.yml. Glance funciona perfectamente sin acceso al daemon Docker.

Resolución de problemas: errores frecuentes

Problemas habituales y soluciones

  • Puerto 8080 ya en uso — ss -tlnp | grep 8080 para identificar el proceso. Cambie el puerto host en docker-compose.yml: "8181:8080" (el puerto del contenedor sigue siendo 8080).
  • Widget no carga / spinner permanente — verifique la conectividad de red saliente del contenedor: docker exec glance_glance_1 curl -s https://news.ycombinator.com. Si hay timeout, su VPS está detrás de un firewall saliente restrictivo — abra los puertos 80/443 salientes con ufw.
  • Socket Docker rechazado (permission denied) — el contenedor corre bajo un UID no-root sin acceso al grupo docker. Solución: añada group_add: ["docker"] o monte el socket con los permisos correctos. Compruebe: ls -la /var/run/docker.sock (grupo docker, modo 660).
  • Métricas de /proc ausentes — falta el montaje /proc:/proc:ro en docker-compose.yml. Sin él, resource-usage muestra valores nulos o un error. Añada el volumen y reinicie: docker compose up -d.

Casos de uso reales para una agencia web

Una agencia que gestiona N proyectos de clientes en VPS separados puede centralizar la monitorización en Glance con una página por cliente o entorno.

Cómo estructurar Glance para una agencia

  • Una página por cliente: cada bloque pages[n] corresponde a un proyecto — widget monitor con URLs críticas (front, API, backoffice), widget docker-containers si los servicios corren localmente
  • Página "Infraestructura global": el widget monitor puede comprobar endpoints healthcheck expuestos en cada máquina (p. ej. /healthz) para agregar el estado multi-VPS
  • Feed RSS de alertas: añada el feed RSS de su herramienta de monitorización (UptimeKuma, Gatus) para surfacear incidentes sin salir de Glance
  • Widget de releases GitHub: siga las releases de CMS/frameworks de sus clientes para anticipar actualizaciones críticas
  • Acceso multi-equipo: un Glance por entorno (staging / prod), cada uno protegido por una auth HTTP separada vía nginx, compartible por enlace con el equipo correspondiente

La documentación oficial de Glance (github.com/glanceapp/glance) lista todos los widgets disponibles y sus opciones. La sección de referencia glance.yml es la más actualizada — las opciones evolucionan con cada versión menor.

Sus servicios VPS de un vistazo

Despliegue Glance en un VPS ServOrbit: panel self-hosted sin base de datos, con noticias tecnológicas y estadísticas del servidor en tiempo real desde el navegador.

¿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