Tutorial

Alojar Homepage en su propio VPS

Autoalojamiento7 min de lectura5 pasos

Homepage es un panel de control autoalojado que centraliza todos sus servicios, widgets y enlaces favoritos en una sola página. Desplegarlo en su propio VPS le da una página de inicio totalmente personalizable, accesible desde cualquier navegador, sin depender de un servicio externo. Esta guía cubre la instalación completa con Docker, la configuración avanzada de widgets, la seguridad y la copia de seguridad.

Contenido· Por qué alojar Homepage en su VPS1/8
  1. 01Por qué alojar Homepage en su VPS
  2. 02Los beneficios concretos de un Homepage autoalojado
  3. 03Requisitos técnicos
  4. 04Desplegar Homepage con Docker en 5 pasos
  5. 05Configurar los widgets de servicios
  6. 06Proteger el acceso a su dashboard
  7. 07Copias de seguridad y restauración de la configuración
  8. 08Instalar Homepage desde el Marketplace de ServOrbit

Por qué alojar Homepage en su VPS

Homepage (gethomepage.dev) es un dashboard estático escrito en Next.js, concebido para ser la página de inicio de su infraestructura. A diferencia de las soluciones SaaS de tipo start page, todo permanece bajo su control: la configuración vive en simples archivos YAML, los widgets consultan sus propios servicios (Proxmox, qBittorrent, Sonarr, Pi-hole…) y ningún dato pasa por una nube externa. Alojarlo en un VPS lo hace accesible desde cualquier parte y cualquier navegador, ya que la página se sirve casi por completo en estático.

Es también el punto de entrada ideal para pilotar una stack Docker en crecimiento: un solo archivo services.yaml basta para cartografiar decenas de contenedores. Conforme su infraestructura gana en complejidad — múltiples aplicaciones, múltiples subdominios, servicios en varios VPS — Homepage se convierte en el único cockpit desde el que comprueba el estado de cada uno de un vistazo, sin abrir cinco pestañas.

Los beneficios concretos de un Homepage autoalojado

  • Configuración en YAML versionable en Git: reconstruya su dashboard idéntico en segundos tras una reinstalación.
  • Widgets nativos para más de 100 servicios (Docker, Proxmox, Plex, Grafana, AdGuard, Pi-hole, Portainer…) con estadísticas en tiempo real.
  • Detección automática de los contenedores Docker mediante etiquetas, sin escribir las URL a mano.
  • Huella de memoria mínima: menos de 128 MB de RAM, ideal en un VPS pequeño que ya ejecuta otros contenedores.
  • Sin telemetría ni dependencia de la nube: su página de inicio sigue siendo 100% privada, incluso ante una interrupción de red.
  • Personalización total del tema, fondos de pantalla, barra de búsqueda y grupos de servicios.
  • Recarga en caliente de la configuración: no es necesario reiniciar el contenedor tras modificar los archivos YAML.

Requisitos técnicos

Homepage es muy ligero. Un VPS con 1 vCPU y 512 MB de RAM es suficiente en la práctica, incluso sumando otros contenedores. Cuente con unos 300 MB de espacio en disco para la imagen y la configuración. Necesitará:

- Docker y Docker Compose v2 instalados (verifique con docker compose version).
- Un nombre de dominio o subdominio apuntando a la IP pública del VPS, por ejemplo home.sudominio.com.
- Un reverse proxy — Caddy o Traefik — para gestionar el HTTPS y el certificado Let's Encrypt.
- El socket Docker /var/run/docker.sock montado en solo lectura si quiere usar los widgets Docker y el descubrimiento automático.

Si parte de un VPS limpio, instale Docker según la documentación oficial, luego active el arranque automático con systemctl enable --now docker.

Desplegar Homepage con Docker en 5 pasos

  1. Preparar la estructura de carpetas

    Conéctese por SSH a su VPS y cree las carpetas:

    mkdir -p ~/homepage/config
    cd ~/homepage

    Los archivos services.yaml, widgets.yaml, settings.yaml y bookmarks.yaml se generarán automáticamente en el primer arranque dentro de esta carpeta config/. También puede crearlos vacíos de antemano para controlar su contenido desde el inicio.

  2. Escribir el docker-compose.yml

    Cree ~/homepage/docker-compose.yml con el siguiente contenido:

    services:
      homepage:
        image: ghcr.io/gethomepage/homepage:latest
        container_name: homepage
        restart: unless-stopped
        ports:
          - 127.0.0.1:3000:3000
        volumes:
          - ./config:/app/config
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - HOMEPAGE_ALLOWED_HOSTS=home.sudominio.com

    Note el binding 127.0.0.1:3000:3000: el puerto solo es accesible desde el loopback local, nunca expuesto directamente en la IP pública. El reverse proxy es la única puerta de entrada.

  3. Arrancar el contenedor

    Inicie Homepage en segundo plano y compruebe los logs:

    docker compose up -d
    docker compose logs -f

    Homepage escucha por defecto en el puerto 3000. Pruébelo localmente antes de abrir el reverse proxy:

    curl http://localhost:3000

    Si la respuesta es un documento HTML, el contenedor funciona.

  4. Conectar el reverse proxy y el SSL

    Con Caddy — añada a su Caddyfile:

    home.sudominio.com {
        reverse_proxy localhost:3000
    }

    Caddy genera y renueva el certificado Let's Encrypt automáticamente. Recargue: systemctl reload caddy.

    Con Traefik — añada etiquetas al servicio en docker-compose.yml:

    labels:
      - traefik.enable=true
      - traefik.http.routers.homepage.rule=Host(`home.sudominio.com`)
      - traefik.http.routers.homepage.entrypoints=websecure
      - traefik.http.routers.homepage.tls.certresolver=letsencrypt

    En ambos casos, verifique que su DNS apunte a la IP del VPS antes de intentar el challenge ACME.

  5. Personalizar servicios y widgets

    Edite config/services.yaml para agrupar sus aplicaciones:

    - Herramientas:
        - Portainer:
            href: https://portainer.sudominio.com
            description: Gestión de contenedores
            icon: portainer.png

    Añada widgets de recursos del sistema en config/widgets.yaml:

    - resources:
        cpu: true
        memory: true
        disk: /

    Homepage relee la configuración en caliente: recargue simplemente la página en el navegador tras cada cambio, sin reiniciar el contenedor.

Configurar los widgets de servicios

Los widgets son el valor añadido de Homepage sobre una simple lista de enlaces. Cada widget consulta la API de su servicio objetivo y muestra métricas en tiempo real directamente en la tarjeta.

Para activar un widget, añada un bloque widget bajo la declaración del servicio en services.yaml. Ejemplo con Portainer:

- Portainer:
    href: https://portainer.sudominio.com
    widget:
      type: portainer
      url: https://portainer.sudominio.com
      env: 1
      key: su-token-api

Las claves de API nunca deben escribirse en texto plano en services.yaml si ese archivo está versionado en un repositorio público. Cree un archivo .env junto al docker-compose.yml y referencie los secretos con la notación {{PORTAINER_KEY}} en el YAML — Homepage resuelve estas variables al arrancar.

Otros widgets muy utilizados: Proxmox (CPU, RAM, almacenamiento del clúster), Pi-hole (peticiones bloqueadas, clientes activos), Sonarr / Radarr (descargas en curso), Grafana (paneles embebidos), Uptime Kuma (estado de cada monitor). La lista completa está en la documentación oficial de gethomepage.dev.

Active el descubrimiento automático añadiendo las etiquetas homepage.group, homepage.name, homepage.href y homepage.icon directamente en sus otros contenedores Docker. Homepage los detecta a través del socket montado y los añade al dashboard sin tocar services.yaml. Combinado con un archivo .env para guardar las claves de API de los widgets (nunca en claro en el YAML versionado), obtiene un dashboard que se actualiza solo con cada nuevo despliegue: ponga las etiquetas una vez, Homepage las lee continuamente.

Proteger el acceso a su dashboard

Un dashboard que lista todos sus servicios es un objetivo atractivo. Dos medidas básicas son necesarias antes de exponer Homepage en Internet.

Restringir el acceso por IP o autenticación. Si Homepage es solo para usted, la solución más sencilla es permitir solo su dirección IP en la configuración del reverse proxy. Con Caddy:

home.sudominio.com {
    @allowed remote_ip 203.0.113.42
    handle @allowed {
        reverse_proxy localhost:3000
    }
    respond 403
}

Si accede al dashboard desde varias redes, prefiera la autenticación HTTP básica o un middleware de autenticación como Authelia o Authentik delante de Homepage.

No exponga el socket Docker en modo escritura. El montaje /var/run/docker.sock:/var/run/docker.sock:ro en solo lectura es suficiente para Homepage. Nunca conceda escritura: un contenedor comprometido con acceso de escritura al socket puede crear nuevos contenedores con volúmenes arbitrarios en el host.

Actualice la imagen con regularidad. Use docker compose pull && docker compose up -d para actualizar Homepage en cuanto haya una nueva imagen disponible. Puede automatizar esto con Watchtower configurado para vigilar únicamente el contenedor homepage.

Copias de seguridad y restauración de la configuración

Toda la configuración de Homepage vive en la carpeta config/: es el único directorio que hay que respaldar. Sin base de datos, sin estado persistente fuera de estos archivos YAML.

Versionar en Git. El método más fiable es inicializar un repositorio Git en ~/homepage/config/ y hacer commit tras cada cambio. Si su configuración contiene claves de API (incluso mediante variables), añada un .gitignore para excluir el archivo .env y versionar solo los YAML.

Copia de seguridad incremental en almacenamiento de objetos. Con restic y un bucket compatible con S3 (Garage, MinIO, Backblaze B2), programe una copia de seguridad diaria desde un cron:

restic -r s3:s3.example.com/mi-bucket/homepage backup ~/homepage/config

Restauración. En caso de pérdida del VPS, recree el contenedor, restaure la carpeta config/ desde la copia de seguridad y ejecute docker compose up -d. Homepage estará operativo en menos de un minuto — una de las ventajas concretas de una configuración 100% declarativa en YAML.

Instalar Homepage desde el Marketplace de ServOrbit

Si prefiere no configurar Docker manualmente, el Marketplace de ServOrbit ofrece Homepage como instalación guiada. Unos pocos clics desde su panel de cliente aprovisionan un VPS con Homepage listo para usar: imagen oficial, puerto enlazado en loopback y HOMEPAGE_ALLOWED_HOSTS preconfigurado.

El template también incluye Caddy preinstalado con la configuración de reverse proxy mínima, de modo que su dashboard es accesible por HTTPS en cuanto termina el aprovisionamiento. Solo le queda declarar su subdominio y personalizar los archivos YAML en config/.

Encuentre la ficha completa, los requisitos mínimos y el botón de instalación en la página dedicada del Marketplace.

Instalar Homepage en un clic

Despliegue Homepage en un VPS Cloud de ServOrbit con una plantilla Docker preconfigurada. SSD, Docker listo para usar y ancho de banda generoso para servir su página de inicio.

¿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