Le minihub, en bref — un agent qui appelle le Hub, jamais l’inverse

Minihubs et mmh · 1. Le minihub

Une machine pilotée
sans ouvrir de porte.

Le minihub est un agent posé sur votre machine. C’est lui qui appelle le Hub, par le port 443, comme un navigateur. Le Hub n’entre jamais chez vous.

Le Hub TheSocle administre des applications. Il est installé chez vous : TheSocle ne l’héberge pas. Mais une application ne tourne pas toujours sur la machine du Hub. Elle peut devoir tourner sur un ordinateur au bureau, sur une machine de calcul, ou chez un hébergeur qui refuse toute connexion entrante. Le minihub (mh) est la pièce qui rend ces machines pilotables. Cette série l’explique écran par écran, puis passe à son petit frère, le mmh.

À quoi ça sert

  • Installer un programme sur une machine distante depuis le catalogue du Hub, comme sur le Hub lui-même.
  • Servir ce programme sur Internet à une adresse du Hub, avec la connexion unique et le certificat, sans que l’adresse de la machine soit publiée.
  • Ouvrir un terminal sur la machine, depuis le navigateur, avec une trace de chaque session.
  • Surveiller : la machine donne signe de vie toutes les 30 secondes.

Le tout sans règle de pare-feu à écrire chez vous. Le minihub sort ; rien n’entre.

Ce qu’on voit à l’écran

La liste des minihubs dans la console du Hub, le 2026-09-23

C’est la page Mini-hubs de la console du Hub thesocle.net (Hub 3.51.1), relevée le 2026-09-23. Le sous-titre dit l’essentiel : « Pilotage des mini-hubs distants connectés au HUB via tunnel gRPC (port 443 partagé) ».

Les quatre compteurs du haut. 6 minihubs enrôlés, 6 actifs, 0 dégradé, 0 injoignable. Ces trois états viennent du battement de cœur : un minihub silencieux depuis 90 secondes passe « dégradé », depuis 180 secondes « injoignable ».

Le tableau. Une ligne par machine :

  • Slug : le nom lisible. Ici minihub-ovh-phy-002, minihub-ovh-ub019, minihub-ovh-rss, minihub-mini-m4, minihub-mini001 et minihub-spark. Il y a là des serveurs loués chez un hébergeur, un Mac mini et une machine de calcul.
  • Tenant : le locataire propriétaire, ici lmvi partout.
  • Dernier heartbeat : le délai depuis le dernier signe de vie, de 2 à 25 secondes. Ce n’est pas une durée de fonctionnement. Un petit nombre veut dire « en vie ».
  • IP source : l’adresse d’où la machine appelle. Floutée ici.
  • Cert expire : la fin de validité du certificat de chaque machine. Il est signé pour 90 jours. Quatre dates sont déjà passées : le renouvellement n’est pas encore automatique.
  • Version : un tiret. Cette colonne n’est pas encore alimentée.
  • Actions : « Détails » ouvre la fiche de la machine (article suivant), « Déployer » ouvre le catalogue (troisième article).
  • Terminal : un sélecteur de compte, puis un terminal dans le navigateur.

En haut à droite, Vue galaxie ouvre le graphe de toute la flotte (dernier article). En bas, une note honnête : la page se rafraîchit à la main (F5) ; le temps réel viendra plus tard.

Comment ça marche

Le minihub s’enrôle une fois

On lui remet un jeton à usage unique, valable 15 minutes. Il génère sa propre clé, envoie une demande de certificat, et le Hub la signe par le coffre de secrets. La clé privée ne quitte pas la machine.

Il ouvre le tunnel, en sortant

Un tunnel gRPC chiffré et authentifié des deux côtés (mTLS), vers le Hub, sur le port 443. Deux canaux : un pour le contrôle, un pour les données. C’est le « pool tunnel (taille) 2 » de la fiche.

Il donne signe de vie toutes les 30 secondes

Le Hub tient ainsi la liste à jour. Sans nouvelles, il classe la machine dégradée, puis injoignable, et le journal garde chaque transition.

Il vient chercher ses commandes

Le Hub ne peut pas joindre la machine. Alors le minihub ouvre un flux que le Hub garde ouvert (PollCommand), et le Hub y pousse ses ordres. Le minihub répond par un appel séparé.

Il exécute sur place

Les ordres passent par un NATS JetStream local à la machine, qui pilote Docker. Une base PostgreSQL et un Redis locaux gardent l’état.

Il peut servir plusieurs Hubs

Un même agent se rattache à plusieurs Hubs, chacun avec son tunnel. Une application peut alors être servie sur deux domaines depuis un seul conteneur.

Sous le capot

Agent Java 21, application Socle V005 ; image socle-minihub
Services gRPC contrôle (Heartbeat, PollCommand), administration, proxy HTTP, observabilité, et un service par lequel l’agent rappelle le Hub (identité, coffre, DNS et certificats, catalogue)
Enrôlement jeton à usage unique, 15 min, conservé haché ; CSR RSA-4096 signée par la PKI du coffre du Hub ; 90 jours
Santé battement 30 s ; dégradé à 90 s, injoignable à 180 s côté Hub
Workers du Hub minihub_registry_worker, minihub_server_worker, minihub_exec_worker
Actions MCP list_minihubs, pool_stats, tick_detect_transitions, revoke_minihub, minihub_exec
Écran /hub/minihubs

Un agent IA qui a la clé voit list_minihubs comme un outil MCP : il lit le même état que cette page.

Les limites, aujourd’hui

  • Le certificat d’un minihub se renouvelle à la main, en le ré-enrôlant.
  • La page ne se rafraîchit pas seule.
  • La colonne « Version » reste vide.

Des machines à faire travailler ?

Retour en haut

Mentions légales · Confidentialité · Contact

© 2026 LMVI Conseil — SARL, SIREN 949 417 620 · [email protected]