FR EN

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.

6 min de lecture10 sectionsChapitre 19 / 22

Livrer un site

  1. Générer les accès de production

    bash bash
    npm run create:site -- --nom "Boulangerie Martin" --depot agence/boulangerie-martin

    La 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.

  2. 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.

  3. 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.

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équenceDuréeCe qu'on montre
1. Entrer30 s/admin, la saisie, l'arrivée sur le site, la barre en bas.
2. Modifier un texte60 sLe clic, la frappe, la barre de variantes.
3. Changer une image90 sUne vraie photo d'iPhone non redimensionnée, et le champ « description ».
4. Ajouter une vidéo30 sColler un lien YouTube.
5. Une liste60 sDupliquer, modifier, remonter, et supprimer avec la confirmation.
6. Publier et ce qui peut aller de travers90 sFermer l'onglet, le rouvrir, publier, montrer un vrai message de conflit.
7. Où trouver de l'aide30 sLe lien « Aide » et l'adresse de contact.
Règles de tournage
  • 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

bash bash
npm update inline-core
npm test && npm run check

Le journal des versions dit ce qui change. Le versionnage sémantique a ici une règle qui lui est propre :

VersionCe que ça veut direÀ faire sur le site
majeureLe contrat change : signature de configuration, forme du schéma, attributs data-cms.Une intervention, décrite dans le journal.
mineureNouveau champ, nouveau geste d'édition.Rien.
correctiveCorrection sans changement de contrat.Rien.
La règle propre au projet

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

  1. Éprouver les archives

    bash bash
    npm run test:pack

    Le seul mode qui attrape un fichier oublié dans files ou 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.

  2. Mettre à jour le journal des versions

    Ce qui a changé, et surtout ce qu'un site doit faire pour suivre.

  3. Publier

    bash bash
    npm run release:core     # inline-core
    npm run release:cli      # create-inline

Essayer une archive à la main

bash bash
# 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:functions
Deux pièges rencontrés
  • npx <archive> résout le chemin relatif depuis un dossier inattendu : passer par npm exec --yes -- "file:<chemin absolu>".
  • Installer inline-core par 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 avec path.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 :

SiteDépôtinline-coreJeton expireClé transmise le
boulangerie-martin.fragence/boulangerie-martin2.0.02027-03-012026-08-12
cabinet-durand.fragence/cabinet-durand2.0.02027-01-152026-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 clientRé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.