Chapitre 19Exploiter
Exploitation au quotidien
Livrer un site, former le client, mettre à jour dix sites d'un coup, publier les paquets, et savoir répondre aux demandes qui arriveront de toute façon.
Livrer un site
-
Générer les accès de production
bash bash npm run create:site -- --nom "Boulangerie Martin" --depot agence/boulangerie-martinLa commande affiche deux blocs qui ne voyagent pas ensemble : ce qui part chez le client (une clé, une adresse) et ce qui part chez l'hébergeur (l'empreinte, les secrets, le jeton). Plus la liste de vérification d'avant livraison.
La clé n'est écrite nulle part. Ce qui n'est pas copié à ce moment-là est perdu — et c'est voulu.
-
Vérifier avant d'annoncer
Les quatre commandes de Déploiement, plus l'essai des cinq clés fausses. Une livraison annoncée puis rattrapée coûte plus cher qu'une heure de vérification.
-
Transmettre
- l'adresse
monsite.fr/admin; - la clé, par un canal séparé — pas dans le même message que l'adresse, idéalement pas par courriel ;
- le lien vers
/aide; - la capsule de formation.
- l'adresse
La capsule de formation
Six minutes, enregistrées en partage d'écran sur le site du client lui-même. Le client la regarde quand il en a besoin — c'est-à-dire trois semaines après la livraison, le jour où il veut changer une photo. Une formation en direct est oubliée avant d'avoir servi.
| Séquence | Durée | Ce qu'on montre |
|---|---|---|
| 1. Entrer | 30 s | /admin, la saisie, l'arrivée sur le site, la barre en bas. |
| 2. Modifier un texte | 60 s | Le clic, la frappe, la barre de variantes. |
| 3. Changer une image | 90 s | Une vraie photo d'iPhone non redimensionnée, et le champ « description ». |
| 4. Ajouter une vidéo | 30 s | Coller un lien YouTube. |
| 5. Une liste | 60 s | Dupliquer, modifier, remonter, et supprimer avec la confirmation. |
| 6. Publier et ce qui peut aller de travers | 90 s | Fermer l'onglet, le rouvrir, publier, montrer un vrai message de conflit. |
| 7. Où trouver de l'aide | 30 s | Le lien « Aide » et l'adresse de contact. |
- Zéro mot technique. Si « JSON », « commit », « déploiement » ou « repo » sort, refaire la prise.
- Ne jamais montrer la clé à l'écran. La coller depuis le presse-papier, champ masqué, puis vérifier la vidéo image par image sur cette séquence.
- Montrer les erreurs. La séquence 6 est la plus utile de la capsule : un client qui a vu le message de conflit une fois ne panique pas quand il arrive.
- Rythme lent. Une pause après chaque clic : le client suit sur son écran en même temps.
Et une phrase, une seule, sur ce qu'il ne peut pas casser : « Vous ne pouvez pas casser la mise en page, et rien n'est jamais définitivement perdu : chaque publication est conservée. En cas de doute, écrivez-nous. »
Ce qu'il ne faut pas mettre : le multilingue si le site est monolingue, le fonctionnement de la reconstruction, le nom de l'hébergeur ou du dépôt, et une liste des choses interdites — le client ne peut pas les faire, les énumérer ne fait que suggérer que l'outil est fragile.
Mettre à jour un site
npm update inline-core
npm test && npm run checkLe journal des versions dit ce qui change. Le versionnage sémantique a ici une règle qui lui est propre :
| Version | Ce que ça veut dire | À faire sur le site |
|---|---|---|
| majeure | Le contrat change : signature de configuration, forme du schéma, attributs data-cms. | Une intervention, décrite dans le journal. |
| mineure | Nouveau champ, nouveau geste d'édition. | Rien. |
| corrective | Correction sans changement de contrat. | Rien. |
Une modification du schéma qui invaliderait du contenu déjà publié est toujours une version majeure, même si le code compile : c'est le contenu du client qui casse, pas le nôtre.
Publier les paquets
-
Éprouver les archives
bash bash npm run test:packLe seul mode qui attrape un fichier oublié dans
filesou un chemin absent d'exports. Ces erreurs sont invisibles tant qu'on installe depuis un dossier, et elles cassent le premier site d'un tiers. -
Mettre à jour le journal des versions
Ce qui a changé, et surtout ce qu'un site doit faire pour suivre.
-
Publier
bash bash npm run release:core # inline-core npm run release:cli # create-inline
Essayer une archive à la main
# 1. fabriquer les archives
npm pack ./packages/inline-core --pack-destination /tmp/inline
npm pack ./packages/create-inline --pack-destination /tmp/inline
# 2. créer un site depuis l'archive de création
cd /tmp/inline && mkdir atelier && cd atelier
npm exec --yes -- "file:/tmp/inline/create-inline-1.0.0.tgz" mon-site --nom "Essai"
# 3. installer le cœur depuis son archive, puis construire
cd mon-site
npm install "file:/tmp/inline/inline-core-2.0.0.tgz"
npm run build && npm run serve:functionsnpx <archive>résout le chemin relatif depuis un dossier inattendu : passer parnpm exec --yes -- "file:<chemin absolu>".- Installer
inline-corepar son dossier impose que le projet d'essai soit sur le même disque que le dépôt : npm pose alors un lien symbolique, et Astro calcule le chemin d'une route injectée avecpath.relative, qui n'existe pas d'un disque à l'autre. Installer l'archive copie le paquet et lève la contrainte.
Suivre plusieurs sites
Au-delà de trois clients, la question n'est plus « est-ce que ça marche » mais « quelle version tourne où ». Tenir un tableau, quelque part, avec une ligne par site :
| Site | Dépôt | inline-core | Jeton expire | Clé transmise le |
|---|---|---|---|---|
| boulangerie-martin.fr | agence/boulangerie-martin | 2.0.0 | 2027-03-01 | 2026-08-12 |
| cabinet-durand.fr | agence/cabinet-durand | 2.0.0 | 2027-01-15 | 2026-06-30 |
C'est ce tableau qui rend un correctif de sécurité applicable : dix
npm update inline-core, dix npm test, dix poussées. Pas dix
modifications à retrouver dans dix bases de code différentes.
L'échéance qu'on oublie
L'expiration du jeton Git. Elle ne casse pas le site : elle casse la publication, et le client le découvre en essayant de modifier une page — souvent un vendredi. Un rappel une semaine avant, par site, coûte trente secondes à poser.
Sauvegarde et restauration
Sauvegarde
Il n'y en a pas à faire
Le contenu est dans le dépôt, déjà répliqué. Il n'y a pas de base de données, donc rien à exporter la nuit.
Restauration
Un git revert
Revenir à l'état d'avant une publication est un geste standard. Le site se reconstruit dans la minute.
Les demandes qui arriveront
| Demande du client | Réponse |
|---|---|
| « Je voudrais ajouter une page » | Développeur : un fichier de contenu, un gabarit, un lien de navigation. Une heure. |
| « Je voudrais déplacer ce bloc » | Développeur. C'est la frontière annoncée à la livraison. |
| « Je voudrais une autre couleur pour ce titre » | Dans sa charte : oui, tout de suite, lui-même. Hors charte : développeur. |
| « Ma collègue voudrait aussi pouvoir modifier » | Techniquement : lui donner la même clé — l'historique ne les distinguera pas. Proprement : passer à une authentification déléguée. À arbitrer, pas à improviser. |
| « J'ai perdu ma clé » | Rotation. Elle ne se retrouve pas, elle se régénère. |
| « Je voudrais un formulaire de contact avec les réponses enregistrées » | Hors périmètre. Un service tiers, ou un autre outil. |
| « Je voudrais un blog avec des catégories et une recherche » | Hors périmètre — et c'est le signal qu'un CMS du marché serait plus adapté. |
Passer la main
Ce qu'un développeur qui reprend le projet doit recevoir :
- L'accès aux dépôts et au compte machine.
- L'accès à l'hébergeur, et la liste des projets.
- Le tableau des sites : version, échéances, dates.
- Les trois premiers chapitres de cette documentation, dans l'ordre.
- Le fichier de consignes du dépôt — les onze règles absolues.
- Et surtout : pourquoi le périmètre est gelé. C'est ce qui se perd en premier.