Parcours · administrateur de la plateforme
Servir une application sous le domaine du client : enregistrement DNS, certificat TLS, route du proxy, puis cache.
L'Atelier Durand a son application nextcloud-durand (parcours Installer une application pour
un client). Il veut l'ouvrir sous son propre nom : outils.atelier-durand.example.
Le domaine atelier-durand.example doit d'abord être au registre des domaines du Hub, avec sa
zone DNS. Cela se fait par les actions de domain_worker, sans écran dans ce démonstrateur :
domain_register déclare le domaine. Il naît PENDING, avec un jeton de preuve de
propriété : aucun certificat n'est demandé et aucun trafic n'est servi tant que la preuve n'est
pas faite. Le paramètre dns_zone_id donne sa zone chez le fournisseur ;domain_set_dns_token dépose le jeton d'API DNS propre à ce domaine : c'est lui qui servira
à écrire dans sa zone.Il vous faut un compte SUPERADMIN du Hub.
Rejouer tout le parcours dans le Hub
L'écran DNS › Enregistrements montre la copie que le Hub tient des zones qu'il sert. Les
onglets suivent le registre des domaines : atelier-durand.example y a le sien dès sa
déclaration.
Regardez son badge. Sans badge, le domaine est ACTIVE : on peut continuer. Avec PENDING ou
VALIDATING, la propriété n'est pas encore prouvée : le Hub ne demande aucun certificat et
refuse les requêtes sur ce nom. Un enregistrement qui « ne marche pas » sous un tel domaine
n'y est pour rien.
L'onglet entouré ici est celui d'un autre client, client-05.example, encore en attente.
Faire cette étape dans le Hub → Pour aller plus loin : dns.records.onglets dns.records.sous_titre
Le nom doit pointer vers le Hub, qui recevra les requêtes. Ouvrez Nouvel enregistrement :
atelier-durand.example. Seuls les domaines du registre qui ont une
zone connue sont proposés ; la liste montrée ici est celle d'autres clients ;A ;outils.atelier-durand.example, en entier sur l'onglet « Tous les domaines ». Sous
l'onglet du domaine, outils suffit : le Hub ajoute le suffixe ;203.0.113.10. C'est celle du Hub, résolue à
l'ouverture de la page.Cliquez sur Créer l'enregistrement. Le Hub écrit la ligne dans sa copie, puis la publie
aussitôt chez le fournisseur de la zone. Si le fournisseur ne répond pas, la ligne reste
pending et le Hub la repousse seul toutes les 5 minutes, ou tout de suite avec Pousser les
changements.
⚠ Pour un A, un AAAA ou un CNAME, un nom déjà publié est remplacé sans avertissement.
⚠ La case Proxy Cloudflare n'agit que sur une zone servie par Cloudflare. Cochée, c'est Cloudflare qui présente son certificat ; décochée, le Hub présente le sien.
⚠ Une ligne publiée par l'écran a le statut synced, qui n'a pas de badge : la colonne
Statut reste vide jusqu'à la synchronisation suivante.
Action du Hub : dns_sync_worker.create_record
Faire cette étape dans le Hub → Pour aller plus loin : dns.records.creer.zone dns.records.creer.type dns.records.creer.nom dns.records.creer.contenu dns.records.creer.proxied dns.records.creer.valider dns.records.col.statut
Pour servir outils.atelier-durand.example en HTTPS, le Hub doit présenter un certificat
pour ce nom. Il l'obtient par ACME avec une validation DNS-01 :
_acme-challenge.outils.atelier-durand.example dans la zone du client ;La page attend la fin de l'échange : de quelques secondes à quelques minutes selon le fournisseur DNS.
⚠ D'après le gabarit du Hub 3.77.0, le formulaire envoie deux champs domain, la liste et la
saisie libre : la commande part sur un nom invalide. Passez par l'action, qui reçoit un nom
propre :
{ "name": "acme_worker__request_certificate",
"arguments": { "domain": "outils.atelier-durand.example" } }
Le message « Certificate requested for outils.atelier-durand.example. » confirme. En cas d'échec, le motif précis n'est que dans le journal du Hub.
Action du Hub : acme_worker.request_certificate
Faire cette étape dans le Hub → Pour aller plus loin : dns.certs.ecran dns.certs.demander.ouvrir dns.certs.demander.domaine_saisie dns.certs.demander.valider
Le nouveau certificat prend sa ligne dans le tableau, avec ses dates et son compte à rebours : vert au-delà de 30 jours, ambre jusqu'à 7, rouge en dessous.
Le renouvellement est automatique : une fois par jour, le Hub renouvelle chaque certificat à qui il reste 30 jours ou moins. Une ligne qui reste ambre plusieurs jours signale un renouvellement qui échoue : lisez le journal du Hub, puis essayez Renouveler.
⚠ Let's Encrypt limite le nombre de certificats identiques par semaine : ne cliquez pas Renouveler en boucle.
Faire cette étape dans le Hub → Pour aller plus loin : dns.certs.col.jours dns.certs.col.statut dns.certs.renouveler
Le DNS amène les visiteurs au Hub, le certificat les accueille en HTTPS. Reste à dire au Hub
vers quelle application envoyer ce nom : c'est la route de nextcloud-durand.
L'écran montré ici est la fiche d'une autre application, agentia : celle de
nextcloud-durand est la même page.
Ouvrez Proxy & SSO. Le Hostname est la clé de la route : le proxy cherche le nom
d'hôte de chaque requête dans sa table. Il est prérempli avec outils.atelier-durand.example.
Laissez TLS activé coché, puis Sauvegarder les modifications. La règle s'applique à la
requête suivante.
⚠ Ce champ change seulement la route : il ne crée ni l'enregistrement DNS ni le certificat. D'où l'ordre de ce parcours.
⚠ La mise à jour vise toutes les routes de l'application (par app_id). Une application à
plusieurs adresses recevrait ce nom sur chacune d'elles.
Action du Hub : proxy_worker.update_route
Faire cette étape dans le Hub → Pour aller plus loin : apps.detail.route apps.detail.route.hostname apps.detail.route.tls apps.detail.route.enregistrer
Pour les routes dont le cache est activé, le Hub garde une copie des réponses et la resert lui-même. L'écran Cache montre son efficacité, et la colonne Hostname les noms publics qui ont des réponses en cache.
Après une bascule, videz le cache de cette seule application : ses visiteurs voient aussitôt le bon contenu, les autres applications gardent le leur. Rien n'est perdu : le cache ne contient que des copies.
⚠ Sur le Hub 3.77.0, le bouton Purger de cet écran envoie le nom public au lieu de l'identifiant de l'application, et la purge est refusée. Purgez depuis la fiche de l'application (Proxy & SSO › Purger le cache), ou par l'action :
{ "name": "cache_worker__cache_purge_app", "arguments": { "app_id": "nextcloud-durand" } }
La durée de vie des pages et des fichiers statiques se règle dans la même fiche, bloc Cache HTTP.
Action du Hub : cache_worker.cache_purge_app
Faire cette étape dans le Hub → Pour aller plus loin : cache.dashboard.ecran cache.dashboard.col.hostname cache.dashboard.purger_app apps.detail.cache.purger apps.detail.cache.page_ttl
A outils.atelier-durand.example vers le Hub ;nextcloud-durand qui sert ce nom, en HTTPS, derrière le SSO du Hub ;PENDING ou VALIDATING ne sert rien : ni certificat, ni trafic. Vérifiez son
badge avant de chercher ailleurs.A ou un CNAME de même nom est écrasé sans avertissement ; un TXT ou un MX
s'ajoute à côté.acme_worker.request_certificate.