Déployer sur un minihub — le catalogue du Hub, installé sur votre machine

Minihubs et mmh · 3. Déployer

Le même catalogue,
sur votre machine.

On choisit une application, on choisit une machine. Le Hub pousse l’ordre dans le tunnel ; le minihub tire l’image et démarre le conteneur, chez vous.

Installer une application sur le Hub, c’est un catalogue et quelques champs. L’installer sur une machine distante, c’est le même geste. La différence est invisible pour l’utilisateur : l’ordre voyage dans le tunnel que le minihub a ouvert, et le conteneur tourne sur sa machine.

À quoi ça sert

  • Rapprocher le calcul des données. Le programme tourne sur la machine qui a les fichiers, la base ou la carte graphique.
  • Garder un seul catalogue. Pas de procédure à part pour les machines distantes.
  • Publier sans exposer. L’adresse publique pointe vers le Hub ; la machine reste invisible.

Ce qu’on voit à l’écran

Déployer sur minihub-mini001 : le catalogue d'applications

Relevée le 2026-09-23. Le titre dit la cible : Déployer sur minihub-mini001. Dessous, l’identifiant technique de la machine, flouté.

Le cadre « Catalogue d’apps ». À droite, 32 apps disponibles. La consigne : « Cliquez sur une app pour pré-remplir le formulaire ci-dessous. » Le formulaire est plus bas, hors de la capture.

Les cartes. Chacune donne le nom, une ligne de description, l’identifiant de catalogue en gris à droite, et trois étiquettes :

  • 3rd-party ou socle : une application tierce (WordPress, Gitea, Grafana, Nextcloud, pgAdmin, phpMyAdmin, n8n, Uptime Kuma…) ou une application construite sur le Socle (Mon Espace, Suite Office, NotionSocle, DataApp, AgentIA, AppDemo, ReverseProxyTheSocle…).
  • db: postgres ou db: mysql : la base dont l’application a besoin. Grafana ou Uptime Kuma n’en déclarent pas.
  • le port du conteneur : :80, :3000, :5678, :3001, :8080.

C’est le même catalogue que celui du Hub. Le menu de gauche le rappelle : Deployer installe sur le Hub, Mini-hubs mène ici.

Comment ça marche

On choisit l’application et son exposition

Trois modes. Interne : l’application n’est joignable que par le tunnel. Publiée : elle reçoit une adresse publique. Les deux. Le Hub vérifie d’abord que le sous-domaine est libre.

Le Hub prépare l’adresse

Pour une application publiée, il crée l’entrée DNS, demande le certificat, puis la route de son proxy. Cette route ne vise pas une adresse IP : elle vise un minihub et un nom de conteneur.

Le Hub pousse l’ordre d’installation

Un InstallAppCommand part dans le flux de commandes du minihub. Chaque ordre porte un numéro de version qui ne fait que croître : un ordre rejoué est refusé.

Le minihub installe

Il publie l’ordre sur son NATS JetStream local. Son worker Docker se connecte au registre, tire l’image, crée et démarre le conteneur, et inscrit l’application dans sa base locale.

L’application est servie par le Hub

Une requête arrive sur l’adresse publique. Le proxy du Hub pousse la requête dans le tunnel ; le minihub appelle le conteneur sur son réseau Docker interne et renvoie la réponse. Sans réponse en 30 secondes, le Hub répond 504.

Elle se pilote à distance

Arrêter, redémarrer, désinstaller, lire l’état : depuis la console du Hub, par le même tunnel.

Un exemple réel. En juin 2026, une application de démonstration tournait dans un seul conteneur sur minihub-mini001, servie à la fois sous thesocle.net et sous thesocle.io. Le minihub était rattaché aux deux Hubs. Il tient un compteur : désinstaller depuis un Hub retire ce Hub ; le conteneur n’est détruit qu’au départ du dernier.

Sous le capot

Écran /hub/minihubs/<id>/deploy
API POST /api/minihub/install (minihub_id, app_id, app_version, docker_image, target_mode = internal_only, published_only ou dual, subdomain, ports, env_vars) ; GET /api/minihub/check-hostname
Pipeline publié réservation, DNS, certificat ACME, InstallAppCommand, route target_type = minihub, finalisation
Anti-rejeu version de configuration monotone par minihub
Sur la machine NATS JetStream, worker Docker, table apps_local.tr_deployed_app, volumes et commande passés par le manifeste
Multi-Hub referencing_hubs[] : une référence par Hub, destruction au dernier retrait

À savoir : les actions MCP install_app et update_app du docker_worker visent le Hub lui-même. Pour une machine distante, c’est l’API ci-dessus, ou l’écran.

Les limites, aujourd’hui

  • L’image doit être dans un registre que la machine peut lire : le minihub la tire toujours.
  • Une application lancée à la main sur la machine, hors de ce chemin, n’apparaît pas dans la console et ne se pilote pas. Elle peut être adoptée ensuite.
  • Pas d’ouverture de port sur la machine : c’est voulu, et une application ne doit pas en publier.

Un programme à installer chez vous ?

Retour en haut

Mentions légales · Confidentialité · Contact

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