Portail de services OnlyHub

Avec la multiplication des applications hébergées sur mon infrastructure (stockage cloud Nextcloud, multimédia Plex/Komga, métriques Grafana, documentation), j’avais besoin d’une page d’accueil unique, claire et rapide à charger pour centraliser tous les accès. C’est l’objectif d’OnlyHub.

Pourquoi un générateur statique ?

Plutôt que d’installer un tableau de bord complexe dépendant d’une base de données ou de services tiers, j’ai choisi de concevoir ce portail avec Hugo :

  • Performance brute : le site est constitué de pages HTML/CSS pré-générées, servies instantanément avec un temps de réponse imperceptible.
  • Configuration simplifiée en YAML : chaque service, catégorie d’outils, icône et statut est déclaré dans un fichier de configuration structuré. Ajouter un nouveau conteneur ou réorganiser les liens prend moins de deux minutes.
  • Ressources minimales : l’hébergement consomme moins de 15 Mo de mémoire vive sur le serveur.

Chaîne de livraison continue (CI/CD)

flowchart TD A["1. J'ajoute un nouveau service dans un fichier simple"] --> B["2. Envoi des modifications sur GitHub"] B --> C["3. Le site se régénère automatiquement"] C --> D["4. La nouvelle tuile apparaît immédiatement sur onlymore.net"]

Le déploiement du portail est entièrement automatisé selon les principes GitOps :

  1. Commit & Push : chaque modification des fichiers de contenu ou de la configuration est poussée sur le dépôt GitHub.
  2. GitHub Actions : un workflow automatise le build avec Hugo, minifie les fichiers statiques et construit une image de conteneur minimale basée sur Nginx Alpine.
  3. Déploiement continu : l’image est publiée sur le registre de conteneurs (GHCR). Le service est ensuite mis à jour en production sans aucune interruption de service (zero-downtime).
  4. Exposition sécurisée : le trafic passe par le reverse-proxy Traefik avec terminaison TLS et renouvellement automatique des certificats SSL Let’s Encrypt.

Accès

Le portail est en ligne à cette adresse : https://onlymore.net