[{"data":1,"prerenderedAt":205},["ShallowReactive",2],{"seo-verification":3,"blog-homarr-glance-panel-self-hosted-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-homarr-glance-panel-self-hosted-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":145,"ctaBody":146,"ctaButton":147,"ctaUrl":148,"relatedPosts":149},400,"homarr-glance-panel-self-hosted-vps",{"fr":12,"en":13,"ar":14,"es":10},"heberger-dashboard-selfhosted-homarr-glance","homarr-vs-glance-self-hosted-dashboard-vps","homarr-glance-لوحة-تحكم-self-hosted-vps","Homarr o Glance: panel self-hosted para tu VPS","Compara Homarr y Glance para centralizar tus servicios Docker en un VPS. Despliegue, config YAML, reverse proxy HTTPS y tabla comparativa incluidos.",8,0,false,"2026-09-30T00:00:00+00:00","2026-09-30T11:20:31+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-dashboard-selfhosted-homarr-glance-poster.svg",{"categorySlug":34,"appSlug":35},"monitorizacion-observabilidad","glance","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.",[38,42,52,55,77,80,98,132,135,139,142],{"type":39,"title":40,"body":41},"h2","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:\u002F\u002Fyour-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.\n\nUn 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.",{"type":43,"title":44,"items":45},"ul","Casos de uso concretos",[46,47,48,49,50,51],"**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\u002FPrometheus completa.",{"type":39,"title":53,"body":54},"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\u002Fhomarr-labs\u002Fhomarr`) y persiste su configuración en un volumen.\n\n**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.",{"type":56,"title":57,"steps":58},"steps","Desplegar Homarr con Docker Compose",[59,62,65,68,71,74],{"title":60,"body":61},"Crear el directorio y el archivo Compose","En tu VPS, crea un directorio dedicado y un archivo `docker-compose.yml`:\n\n```bash\nmkdir -p \u002Fopt\u002Fhomarr && cd \u002Fopt\u002Fhomarr\n```\n\nContenido del archivo `docker-compose.yml`:\n\n```yaml\nservices:\n  homarr:\n    image: ghcr.io\u002Fhomarr-labs\u002Fhomarr:latest\n    container_name: homarr\n    restart: unless-stopped\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n      - .\u002Fappdata:\u002Fappdata\n    environment:\n      - SECRET_ENCRYPTION_KEY=tu-clave-aleatoria-32-chars\n    ports:\n      - \"7575:7575\"\n```\n\n`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`.",{"title":63,"body":64},"Generar la clave de cifrado","Homarr requiere una clave hexadecimal de 64 caracteres:\n\n```bash\nopenssl rand -hex 32\n```\n\nCopia el valor en `SECRET_ENCRYPTION_KEY` del archivo Compose. Sin esta variable, el contenedor se niega a arrancar.",{"title":66,"body":67},"Iniciar el contenedor","```bash\ndocker compose up -d\n```\n\nHomarr es accesible en `http:\u002F\u002Fyour-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.",{"title":69,"body":70},"Configurar la integración Docker","El socket Docker (`\u002Fvar\u002Frun\u002Fdocker.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:\u002F\u002F\u002Fvar\u002Frun\u002Fdocker.sock`. Homarr mostrará automáticamente el estado (running\u002Fstopped) de tus contenedores en los tiles asociados.",{"title":72,"body":73},"Configurar Traefik como reverse proxy","Para exponer Homarr en HTTPS, añade estos labels a tu servicio en el archivo Compose:\n\n```yaml\nlabels:\n  - \"traefik.enable=true\"\n  - \"traefik.http.routers.homarr.rule=Host(`dashboard.your-domain.com`)\"\n  - \"traefik.http.routers.homarr.entrypoints=websecure\"\n  - \"traefik.http.routers.homarr.tls.certresolver=letsencrypt\"\n  - \"traefik.http.services.homarr.loadbalancer.server.port=7575\"\n```\n\nElimina el bloque `ports` si expones únicamente via Traefik.",{"title":75,"body":76},"Alternativa nginx","Si usas nginx, crea un vhost `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fhomarr.conf`:\n\n```nginx\nserver {\n    listen 443 ssl;\n    server_name dashboard.your-domain.com;\n\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdashboard.your-domain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdashboard.your-domain.com\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:7575;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}\n```\n\nCertificado Let's Encrypt via `certbot --nginx -d dashboard.your-domain.com`.",{"type":39,"title":78,"body":79},"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.\n\nLicencia: **AGPL-3.0** (igual que Homarr). Código fuente en GitHub.",{"type":56,"title":81,"steps":82},"Desplegar Glance con Docker",[83,86,89,92,95],{"title":84,"body":85},"Crear el directorio y el archivo de configuración","```bash\nmkdir -p \u002Fopt\u002Fglance && cd \u002Fopt\u002Fglance\n```\n\nCrea un archivo `glance.yml` mínimo con un widget Hacker News y un widget Docker:\n\n```yaml\nserver:\n  host: 0.0.0.0\n  port: 8080\n\npages:\n  - name: Inicio\n    columns:\n      - size: full\n        widgets:\n          - type: hacker-news\n            title: Hacker News\n\n      - size: small\n        widgets:\n          - type: docker-containers\n            title: Contenedores\n            collapsed-by-default: false\n```\n\nGlance expone el puerto **8080** por defecto.",{"title":87,"body":88},"Lanzar con Docker Compose","Crea un archivo `docker-compose.yml`:\n\n```yaml\nservices:\n  glance:\n    image: glanceapp\u002Fglance:latest\n    container_name: glance\n    restart: unless-stopped\n    volumes:\n      - .\u002Fglance.yml:\u002Fapp\u002Fglance.yml:ro\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n    ports:\n      - \"8080:8080\"\n```\n\nArranca con:\n\n```bash\ndocker compose up -d\n```\n\nGlance es accesible en `http:\u002F\u002Fyour-domain.com:8080`.",{"title":90,"body":91},"Añadir un widget de tiempo","El widget `weather` es uno de los más sencillos de configurar — solo requiere una ubicación:\n\n```yaml\n- type: weather\n  title: Tiempo\n  location: Madrid, Spain\n  units: metric\n  hour-format: 24h\n```\n\nAñade este bloque en la sección `widgets` de la columna que elijas.",{"title":93,"body":94},"Configurar el reverse proxy para Glance","Con Traefik, añade en tu `docker-compose.yml`:\n\n```yaml\nlabels:\n  - \"traefik.enable=true\"\n  - \"traefik.http.routers.glance.rule=Host(`glance.your-domain.com`)\"\n  - \"traefik.http.routers.glance.entrypoints=websecure\"\n  - \"traefik.http.routers.glance.tls.certresolver=letsencrypt\"\n  - \"traefik.http.services.glance.loadbalancer.server.port=8080\"\n```\n\nCon nginx, misma estructura que Homarr, reemplazando el puerto por `8080`.",{"title":96,"body":97},"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.",{"type":99,"title":100,"headers":101,"rows":105},"comparison","Homarr vs Glance: tabla comparativa",[102,103,104],"Criterio","Homarr","Glance",[106,110,114,118,122,125,128],[107,108,109],"RAM en reposo","150 – 250 MB","\u003C 50 MB",[111,112,113],"Configuración","Interfaz gráfica drag & drop","Archivo YAML únicamente",[115,116,117],"Base de datos","SQLite embebida","Ninguna",[119,120,121],"Widgets disponibles","Integraciones (Sonarr, Jellyfin, Docker…) + tiles libres","RSS, Hacker News, tiempo, Docker, GitHub, calendario…",[123,124,124],"Actualización","`docker compose pull && docker compose up -d`",[126,127,127],"Licencia","AGPL-3.0",[129,130,131],"Ideal para","Infraestructura rica, uso diario, uso en equipo","VPS ajustado, homelabs minimalistas, vista rápida",{"type":39,"title":133,"body":134},"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.\n\nDos opciones habituales:\n\n**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.\n\n**nginx** — la opción natural si tu VPS ya funciona con nginx. La estructura `proxy_pass http:\u002F\u002F127.0.0.1:\u003Cpuerto>` es idéntica para ambas herramientas; solo cambia el puerto.",{"type":136,"title":137,"body":138},"tip","Hardening: limitar el acceso al panel de control","Un panel de control self-hosted expone tus servicios internos. Algunas precauciones:\n\n**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.\n\n**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.\n\n**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.\n\n**Socket Docker en solo lectura**: ambas herramientas montan `\u002Fvar\u002Frun\u002Fdocker.sock` — móntalo como `:ro` (solo lectura) como en los ejemplos anteriores. Un contenedor comprometido no podrá lanzar nuevos contenedores via el socket.",{"type":39,"title":140,"body":141},"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.\n\n**Homarr muestra \"Docker integration error\"**: verifica que `\u002Fvar\u002Frun\u002Fdocker.sock` está montado en el contenedor (`docker inspect homarr | grep docker.sock`) y que el socket es legible.\n\n**Glance no carga el widget `docker-containers`**: el socket Docker no está montado. Añade el volumen `\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro` al Compose.\n\n**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.\n\n**Error 502 Bad Gateway detrás de nginx\u002FTraefik**: el contenedor no está en ejecución o el puerto no coincide. Verifica con `docker ps | grep homarr` o `docker ps | grep glance`.",{"type":39,"title":143,"body":144},"¿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.\n\n**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.\n\nAmbas 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.","Desplegar en VPS","\u002Fvps-cloud",[150,171,187],{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":159,"views":18,"isPinned":19,"publishedAt":160,"updatedAt":161,"category":162,"categories":167,"featuredImage":30,"bgImage":31,"posterImage":169,"relatedSolution":170},190,"alojar-glance-en-un-vps",{"fr":154,"en":155,"ar":156,"es":152},"self-host-glance-vps","self-host-glance-your-startpage-dashboard-on-a-vps","استضف-glance-ذاتيا-لوحة-بداية-على-خادم-vps","Alojar Glance en un VPS: su panel de inicio","Despliegue Glance en un VPS ServOrbit: Hacker News, RSS, estadísticas de CPU\u002FRAM\u002Fdisco y estado de contenedores Docker en una página — binario Go, sin base de datos.",4,"2026-07-24T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":163,"slug":164,"color":165,"icon":166},"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[168],{"id":17,"name":163,"slug":164,"color":165,"icon":166},"\u002Fblog\u002Fcovers\u002Fself-host-glance-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":172,"slug":173,"slugs":174,"title":178,"excerpt":179,"readTime":23,"views":180,"isPinned":19,"publishedAt":181,"updatedAt":182,"category":183,"categories":184,"featuredImage":30,"bgImage":31,"posterImage":186,"relatedSolution":30},92,"alojar-homepage-en-un-vps",{"fr":175,"en":176,"ar":177,"es":173},"heberger-homepage","hosting-homepage-on-your-own-vps","استضافة-homepage-على-خادم-vps-الخاص-بك","Alojar Homepage en su propio VPS","Despliegue Homepage, el dashboard open source, en su VPS con Docker. Guía: YAML, widgets, reverse proxy Caddy\u002FTraefik, SSL, seguridad y backups.",2,"2026-03-20T00:00:00+00:00","2026-09-19T02:00:43+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[185],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-homepage-poster.svg",{"id":188,"slug":189,"slugs":190,"title":194,"excerpt":195,"readTime":196,"views":18,"isPinned":19,"publishedAt":197,"updatedAt":161,"category":198,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":30},38,"desplegar-con-traefik",{"fr":191,"en":192,"ar":193,"es":189},"deployer-avec-traefik","deploy-your-applications-with-traefik-on-a-vps","انشر-تطبيقاتك-باستخدام-traefik-على-خادم-vps","Desplegar sus aplicaciones con Traefik en un VPS","Despliegue Traefik como reverse proxy en su VPS: enrutamiento automático de los contenedores Docker, certificados SSL Let's Encrypt y balanceo de carga.",3,"2026-05-13T00:00:00+00:00",{"id":196,"name":199,"slug":200,"color":201,"icon":200},"Despliegue","deploiement","bg-success\u002F10 text-success",[203],{"id":196,"name":199,"slug":200,"color":201,"icon":200},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-traefik-poster.svg",1790779577663]