[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"seo-verification":3,"blog-alojar-glance-en-un-vps-ma-es":6,"promo-bar-likely":251},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-alojar-glance-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":188,"ctaBody":189,"ctaButton":190,"ctaUrl":191,"relatedPosts":192},190,"alojar-glance-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"self-host-glance-vps","self-host-glance-your-startpage-dashboard-on-a-vps","استضف-glance-ذاتيا-لوحة-بداية-على-خادم-vps","Alojar Glance en un VPS: su panel de inicio self-hosted","Despliegue Glance self-hosted en un VPS ServOrbit: Hacker News, RSS, CPU\u002FRAM\u002FDocker en una página — config YAML avanzada, seguridad docker.sock y resolución de problemas.",7,1,false,"2026-07-24T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-glance-vps-poster.svg",{"categorySlug":34,"appSlug":35},"monitorizacion-observabilidad","glance","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.",[38,41,51,53,91,93,100,102,136,138,141,150,152,154,162,165,167,174,176,178,186],{"type":39,"title":40},"h2","Por qué Glance es perfecto para un VPS",{"type":42,"title":43,"items":44},"ul","Lo que obtiene por defecto",[45,46,47,48,49,50],"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 \u002F detenido \u002F pausado)","Temas claro\u002Foscuro 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",{"type":39,"title":52},"Glance vs alternativas: Heimdall, Homepage, Homarr",{"type":54,"title":55,"columns":56,"rows":63,"note":90},"comparison","Comparativa de paneles self-hosted",[57,58,59,60,61,62],"Herramienta","Lenguaje","RAM reposo","Configuración","Métricas Docker","Widgets RSS\u002Fnoticias",[64,71,78,83],[65,66,67,68,69,70],"**Glance**","Go","\u003C 25 MB","YAML puro","Sí (solo lectura)","Sí (nativo)",[72,73,74,75,76,77],"Homepage","Node\u002FReact","~120 MB","YAML","Sí","Parcial",[79,73,80,81,76,82],"Homarr","~150 MB","GUI + JSON","Vía integración",[84,85,86,87,88,89],"Heimdall","PHP\u002FLaravel","~200 MB","GUI + MySQL","No nativo","No","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.",{"type":39,"title":92},"Requisitos previos",{"type":42,"title":94,"items":95},"Lo que necesita antes de empezar",[96,97,98,99],"Un VPS ServOrbit con Ubuntu 22.04 \u002F 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",{"type":39,"title":101},"Desplegar Glance en su VPS ServOrbit",{"type":103,"title":104,"steps":105},"steps","Instalación paso a paso",[106,109,112,115,118,121,124,127,130,133],{"title":107,"body":108},"Crear el directorio de trabajo","Conéctese por SSH a su VPS y cree la carpeta que alojará la configuración de Glance:\n\n`mkdir -p \u002Fopt\u002Fglance && cd \u002Fopt\u002Fglance`",{"title":110,"body":111},"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):\n\n```yaml\nservices:\n  glance:\n    image: glanceapp\u002Fglance:latest\n    restart: unless-stopped\n    ports:\n      - \"8080:8080\"\n    volumes:\n      - .\u002Fglance.yml:\u002Fapp\u002Fglance.yml:ro\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n      - \u002Fproc:\u002Fproc:ro\n    environment:\n      - TZ=Europe\u002FMadrid\n```",{"title":113,"body":114},"Crear la configuración base `glance.yml`","Este archivo YAML define sus páginas, columnas y widgets:\n\n```yaml\nserver:\n  port: 8080\n\npages:\n  - name: Inicio\n    columns:\n      - size: small\n        widgets:\n          - type: clock\n            hour-format: 24h\n          - type: resource-usage\n      - size: full\n        widgets:\n          - type: hacker-news\n          - type: rss\n            feeds:\n              - url: https:\u002F\u002Fblog.servOrbit.com\u002Frss\n                title: ServOrbit Blog\n      - size: small\n        widgets:\n          - type: docker-containers\n```",{"title":116,"body":117},"Iniciar el contenedor","`docker compose up -d`\n\nVerifique que está corriendo: `docker compose ps` — el estado debe mostrar `Up`.",{"title":119,"body":120},"Abrir el firewall (si UFW está activo)","`ufw allow 8080\u002Ftcp`\n\nAbra `http:\u002F\u002F\u003CIP-VPS>:8080` en su navegador para confirmar que Glance responde.",{"title":122,"body":123},"Configurar un proxy inverso nginx con HTTPS","Para servir Glance en `https:\u002F\u002Fglance.midominio.tld`, cree un vhost nginx y obtenga el certificado con Certbot: `certbot --nginx -d glance.midominio.tld`.",{"title":125,"body":126},"Activar autenticación HTTP básica (recomendado)","Glance no tiene auth integrada. Proteja el acceso vía nginx:\n\n`htpasswd -c \u002Fetc\u002Fnginx\u002F.htpasswd admin`\n\nAñada en el bloque `location \u002F` del vhost:\n\n```nginx\nauth_basic \"Glance\";\nauth_basic_user_file \u002Fetc\u002Fnginx\u002F.htpasswd;\n```\n\nRecargue nginx: `systemctl reload nginx`.",{"title":128,"body":129},"Verificar las métricas del sistema","El widget `resource-usage` lee `\u002Fproc` — 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`.",{"title":131,"body":132},"Recargar la configuración sin reinicio","Cualquier cambio en `glance.yml` se aplica enviando `SIGHUP` al contenedor:\n\n`docker kill --signal=SIGHUP glance_glance_1`",{"title":134,"body":135},"Activar actualizaciones automáticas (opcional)","Despliegue [Watchtower](https:\u002F\u002Fcontainrrr.dev\u002Fwatchtower\u002F) para mantener la imagen Glance actualizada automáticamente, o gestiónelo manualmente:\n\n`docker compose pull && docker compose up -d`",{"type":39,"title":137},"Configuración YAML avanzada: widgets, temas y diseño",{"type":139,"body":140},"p","La potencia de Glance reside en su archivo YAML. Estas son las personalizaciones más útiles.",{"type":42,"title":142,"items":143},"Opciones de configuración avanzada",[144,145,146,147,148,149],"**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",{"type":39,"title":151},"Seguridad: el socket Docker en solo lectura",{"type":139,"body":153},"Montar `\u002Fvar\u002Frun\u002Fdocker.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.",{"type":42,"title":155,"items":156},"Riesgos y mitigaciones",[157,158,159,160,161],"**Riesgo**: un contenedor comprometido con acceso `:rw` al socket puede lanzar contenedores root, montar `\u002F`, 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:\u002F\u002Fgithub.com\u002FTecnativa\u002Fdocker-socket-proxy) para exponer solo los endpoints `GET \u002Fcontainers` y `GET \u002Fversion`","**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`",{"type":163,"body":164},"tip","Si no necesita métricas Docker, simplemente elimine el montaje `\u002Fvar\u002Frun\u002Fdocker.sock` de `docker-compose.yml` y retire el widget `docker-containers` de `glance.yml`. Glance funciona perfectamente sin acceso al daemon Docker.",{"type":39,"title":166},"Resolución de problemas: errores frecuentes",{"type":42,"title":168,"items":169},"Problemas habituales y soluciones",[170,171,172,173],"**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 \u002F spinner permanente** — verifique la conectividad de red saliente del contenedor: `docker exec glance_glance_1 curl -s https:\u002F\u002Fnews.ycombinator.com`. Si hay timeout, su VPS está detrás de un firewall saliente restrictivo — abra los puertos 80\u002F443 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 \u002Fvar\u002Frun\u002Fdocker.sock` (grupo `docker`, modo `660`).","**Métricas de `\u002Fproc` ausentes** — falta el montaje `\u002Fproc:\u002Fproc: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`.",{"type":39,"title":175},"Casos de uso reales para una agencia web",{"type":139,"body":177},"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.",{"type":42,"title":179,"items":180},"Cómo estructurar Glance para una agencia",[181,182,183,184,185],"**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. `\u002Fhealthz`) 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\u002Fframeworks de sus clientes para anticipar actualizaciones críticas","**Acceso multi-equipo**: un Glance por entorno (staging \u002F prod), cada uno protegido por una auth HTTP separada vía nginx, compartible por enlace con el equipo correspondiente",{"type":163,"body":187},"La documentación oficial de Glance (github.com\u002Fglanceapp\u002Fglance) 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.","Desplegar Glance","\u002Fapplications\u002Fmonitorizacion-observabilidad\u002Fglance",[193,216,233],{"id":194,"slug":195,"slugs":196,"title":200,"excerpt":201,"readTime":202,"views":203,"isPinned":19,"noindex":19,"publishedAt":204,"updatedAt":205,"category":206,"categories":211,"featuredImage":30,"bgImage":31,"posterImage":213,"relatedSolution":214},167,"alojar-dozzle-en-un-vps",{"fr":197,"en":198,"ar":199,"es":195},"self-host-dozzle-vps","how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer","استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا","Alojar Dozzle en un VPS: logs Docker en tiempo real","Despliegue Dozzle en su VPS: un visor de logs Docker open source y sin estado. Siga y busque en directo los logs de sus contenedores, sin SSH.",4,2,"2026-07-06T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":207,"slug":208,"color":209,"icon":210},"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[212],{"id":17,"name":207,"slug":208,"color":209,"icon":210},"\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":34,"appSlug":215},"dozzle",{"id":217,"slug":218,"slugs":219,"title":223,"excerpt":224,"readTime":23,"views":203,"isPinned":19,"noindex":19,"publishedAt":225,"updatedAt":226,"category":227,"categories":228,"featuredImage":30,"bgImage":31,"posterImage":230,"relatedSolution":231},133,"alojar-beszel-hub-monitorizacion-vps",{"fr":220,"en":221,"ar":222,"es":218},"self-host-beszel-vps","self-host-beszel-multi-server-monitoring-hub-on-your-vps","استضف-beszel-على-vps-مركز-مراقبة-متعدد-الخوادم","Beszel en VPS: monitorización multiservidor, alertas y seguridad","Supervise su parque de VPS desde un único hub Beszel: alertas por Telegram y correo, 2FA, agentes declarados automáticamente y solución de conexiones silenciosas.","2026-02-14T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[229],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-beszel-vps-poster.svg",{"categorySlug":34,"appSlug":232},"beszel",{"id":234,"slug":235,"slugs":236,"title":240,"excerpt":241,"readTime":23,"views":242,"isPinned":19,"noindex":19,"publishedAt":243,"updatedAt":244,"category":245,"categories":246,"featuredImage":30,"bgImage":31,"posterImage":248,"relatedSolution":249},105,"supervisar-vps-con-uptime-kuma",{"fr":237,"en":238,"ar":239,"es":235},"superviser-vps-uptime-kuma","monitoring-your-vps-with-uptime-kuma","مراقبة-خادمك-الافتراضي-vps-باستخدام-uptime-kuma","Supervisar su VPS con Uptime Kuma","Despliegue Uptime Kuma en su VPS para supervisar sus sitios y servicios en self-hosted, con alertas y página de estado pública.",0,"2026-03-07T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[247],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fsuperviser-vps-uptime-kuma-poster.svg",{"categorySlug":34,"appSlug":250},"uptime-kuma",true,1794270525377]