Pourquoi héberger Homepage sur votre VPS
Homepage (gethomepage.dev) est un dashboard statique écrit en Next.js, conçu pour être la page d'accueil de votre infrastructure. Contrairement aux solutions SaaS de type start page, tout reste sous votre contrôle : la configuration vit dans de simples fichiers YAML, les widgets interrogent vos propres services (Proxmox, qBittorrent, Sonarr, Pi-hole…), et aucune donnée ne transite par un cloud externe. L'héberger sur un VPS le rend accessible partout, depuis n'importe quel navigateur, avec une latence minimale puisque la page est quasi entièrement servie en statique. C'est aussi le point d'entrée idéal pour piloter une stack Docker grandissante : un seul fichier services.yaml suffit pour cartographier des dizaines de conteneurs.
Les bénéfices concrets d'un Homepage auto-hébergé
- Configuration en YAML versionnable dans Git : vous reconstruisez votre dashboard à l'identique en quelques secondes.
- Widgets natifs pour plus de 100 services (Docker, Proxmox, Plex, Grafana, AdGuard) avec affichage de stats en temps réel.
- Détection automatique des conteneurs Docker via les labels, sans saisie manuelle des URLs.
- Empreinte mémoire minime : moins de 128 Mo de RAM, idéal sur un petit VPS.
- Aucune télémétrie ni dépendance cloud : votre page d'accueil reste 100 % privée.
- Personnalisation totale du thème, des fonds d'écran et de la barre de recherche.
Prérequis techniques
Homepage est très léger. Un VPS avec 1 vCPU et 1 Go de RAM est largement suffisant, même en cumulant d'autres conteneurs. Comptez environ 300 Mo d'espace disque pour l'image et la configuration. Vous aurez besoin de Docker et Docker Compose (v2) installés, d'un nom de domaine ou sous-domaine pointant vers l'IP du VPS (ex : home.mondomaine.ma), et d'un reverse proxy comme Traefik ou Caddy pour gérer le HTTPS. Si vous voulez exploiter les widgets Docker, montez le socket /var/run/docker.sock en lecture seule.
Déployer Homepage avec Docker en 5 étapes
Préparer l'arborescence
Connectez-vous en SSH à votre VPS et créez les dossiers : mkdir -p ~/homepage/config. Les fichiers services.yaml, widgets.yaml, settings.yaml et bookmarks.yaml seront générés au premier démarrage dans ce dossier.
Écrire le docker-compose.yml
Dans ~/homepage/docker-compose.yml, déclarez le service avec l'image ghcr.io/gethomepage/homepage:latest, montez ./config:/app/config et le socket Docker /var/run/docker.sock:/var/run/docker.sock:ro. Ajoutez la variable HOMEPAGE_ALLOWED_HOSTS=home.mondomaine.ma pour autoriser votre domaine.
Lancer le conteneur
Exécutez docker compose up -d puis vérifiez avec docker compose logs -f. Homepage écoute par défaut sur le port 3000. Testez localement avec curl http://localhost:3000.
Brancher le reverse proxy et le SSL
Avec Caddy, une seule ligne suffit : home.mondomaine.ma { reverse_proxy localhost:3000 }. Caddy génère et renouvelle automatiquement le certificat Let's Encrypt. Avec Traefik, ajoutez les labels traefik.http.routers.homepage.rule=Host(\home.mondomaine.ma\) et le resolver ACME.
Personnaliser services et widgets
Éditez config/services.yaml pour grouper vos applications, puis config/widgets.yaml pour la barre de ressources (CPU, RAM, disque). Rechargez la page : Homepage relit la configuration à chaud, sans redémarrage du conteneur.
Activez la découverte automatique en ajoutant des labels homepage.group, homepage.name et homepage.href directement sur vos autres conteneurs Docker. Homepage les détecte via le socket monté et les ajoute au dashboard sans toucher à services.yaml. Couplé à un fichier .env pour stocker vos clés d'API de widgets (jamais en clair dans le YAML versionné), vous obtenez un dashboard qui se met à jour tout seul à chaque nouveau déploiement.