Homepage : une page d'accueil pour tous vos services self-hosted
Un dashboard unique, configuré en YAML, qui regroupe liens, statuts et widgets de tous les services que vous auto-hébergez.
Après avoir déployé Vaultwarden, Nextcloud, Gitea, Grafana et Jellyfin sur le même serveur, la liste des URLs à retenir devient vite ingérable — des favoris de navigateur dans quatre dossiers différents, jamais synchronisés entre les appareils. Homepage règle ce problème simple : une seule page qui liste tout, avec l'état de chaque service visible en un coup d'œil.
Homepage est un dashboard statique configuré entièrement en fichiers YAML — pas de base de données, pas d'interface d'administration à apprendre. Chaque service ajouté devient une tuile cliquable, avec une icône, et optionnellement un widget qui affiche des données en direct : le nombre de containers actifs, la météo, les derniers commits d'un dépôt, l'état d'un service de monitoring.
Installation avec Docker Compose
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
restart: always
ports:
- "3000:3000"
volumes:
- ./config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:roLe montage du socket Docker est optionnel — il active la détection automatique des containers en cours d'exécution pour afficher leur statut sans configuration manuelle supplémentaire.
Configurer les services
Toute la config vit dans des fichiers YAML sous ./config. Le fichier principal, services.yaml, définit les tuiles regroupées par catégorie :
- Infrastructure:
- Portainer:
href: https://portainer.mondomaine.fr
icon: portainer.png
description: Gestion des containers Docker
- Gitea:
href: https://git.mondomaine.fr
icon: gitea.png
description: Dépôts Git
- Productivité:
- Nextcloud:
href: https://cloud.mondomaine.fr
icon: nextcloud.png
description: Fichiers et calendrier
- Vaultwarden:
href: https://vault.mondomaine.fr
icon: vaultwarden.png
description: Gestionnaire de mots de passeHomepage embarque une bibliothèque de plus de 500 icônes pour les projets self-hosted connus — inutile d'héberger ses propres assets pour les services courants.
Widgets : afficher des données en direct
Au-delà du simple lien, chaque service peut exposer un widget qui interroge son API pour afficher des métriques en direct sur la tuile :
- Monitoring:
- Uptime Kuma:
href: https://status.mondomaine.fr
icon: uptime-kuma.png
widget:
type: uptimekuma
url: http://uptime-kuma:3001
slug: mon-groupe-de-status
- Grafana:
href: https://grafana.mondomaine.fr
icon: grafana.png
widget:
type: grafana
url: http://grafana:3000
username: admin
password: changemeHomepage fournit des intégrations natives pour une soixantaine de services populaires — Portainer, Uptime Kuma, Grafana, Jellyfin, Immich, Gitea, Mattermost — chacun affichant des données pertinentes (nombre de containers, statut des moniteurs, dashboards actifs) directement sur la tuile.
Widgets d'information générale
En plus des services self-hosted, widgets.yaml configure des widgets d'information générale en haut de la page : météo, horloge, recherche, ou statistiques système de la machine hôte.
- resources:
cpu: true
memory: true
disk: /
- search:
provider: duckduckgo
target: _blank
- datetime:
format:
dateStyle: long
timeStyle: shortBookmarks pour les liens externes
Tous les liens ne correspondent pas à un service auto-hébergé — bookmarks.yaml gère les raccourcis externes classiques (documentation, admin de domaine, console du VPS) séparément des services actifs, pour garder la distinction visuelle claire.
- Développement:
- GitHub:
- href: https://github.com
- Documentation Docker:
- href: https://docs.docker.comAuthentification
Homepage lui-même n'a pas de système de comptes utilisateurs — c'est un dashboard, pas une application multi-utilisateur. Pour restreindre l'accès, le placer derrière un reverse proxy avec authentification basique, ou l'intégrer à un fournisseur SSO existant si un est déjà en place.
location / {
auth_basic "Dashboard privé";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:3000;
}Homepage vs Homarr vs Heimdall
| Critère | Homepage | Homarr | Heimdall |
|---|---|---|---|
| Configuration | YAML (fichiers) | Interface web (drag & drop) | Interface web |
| Widgets services intégrés | ~90 | ~30 | ~15 |
| Poids | Léger | Léger | Léger |
| Personnalisation avancée | Élevée (YAML flexible) | Moyenne | Faible |
Homarr séduit par son édition visuelle par glisser-déposer, plus accessible pour qui n'aime pas écrire de YAML. Homepage compense par un nombre bien plus large d'intégrations natives et une configuration versionnable dans Git — un avantage réel quand le dashboard doit être reconstruit après une migration de serveur.
Homepage ne fait rien de critique — perdre le dashboard ne coupe aucun service, juste le confort d'accès. C'est justement ce qui en fait un bon premier projet self-hosted à ajouter à une infrastructure existante : zéro risque, gain de confort immédiat, et une vue d'ensemble sur tout ce qui tourne derrière Docker.