Commit acda2f23 authored by Kourser's avatar Kourser
Browse files

Installation guidée, pour qui n'a que Docker

L'installation demandait Docker, Node et pnpm. Les deux derniers ne servaient
qu'à écrire un .env et à lancer une commande : un prérequis que l'exploitant
n'utilise jamais ensuite. outils/installer.sh pose les questions, écrit le
.env, lève la composition — et rien d'autre.

Pourquoi il n'appelle ni pnpm ni node
  L'artefact est construit dans l'image, et les migrations sont jouées par
  l'application à son démarrage. Rien, dans le chemin de la composition, ne
  réclame une chaîne Node sur l'hôte.

  Conséquence assumée : les secrets sont tirés en shell — openssl, à défaut
  /dev/urandom — et non par outils/preparer-env.mjs, qui reste la voie du
  développement. Les deux outils suivent la même règle : aucune valeur
  d'exemple ne survit, et rien n'est écrit en clair sur le terminal.

Ce que le script refuse de faire
  Il n'écrase pas un .env existant sans le dire. Ce fichier porte peut-être les
  secrets d'une instance en service : il propose de le garder, ou de le
  sauvegarder à côté avant d'en écrire un neuf.

  Il ne demande jamais la clé .p8 d'Apple. Saisie à une invite, elle resterait
  dans l'historique du shell et dans le tampon du terminal — elle se colle dans
  le .env, à la main.

  Il ne lève rien sans un dernier accord, et affiche alors la commande exacte —
  profil et liste de services compris — plutôt qu'une commande générique qui,
  recopiée, lèverait les conteneurs qu'on venait d'écarter.

Le relais est un profil, pas une variable
  Première version : vider KASTELL_RELAIS_POUSSEE pour désactiver le relais. Le
  schéma la valide comme une adresse — une valeur vide n'est donc pas
  « absente » mais invalide, et l'instance refuse de démarrer. La composition
  définit toujours la variable, y compris hors profil : le conteneur aurait reçu
  la même chaîne vide.

  L'adresse reste donc renseignée, comme dans .env.example, et c'est le profil
  docker compose qui décide si le conteneur tourne. Sans conséquence sur
  l'honnêteté du produit : la sonde d'état mesure la joignabilité réelle du
  relais plutôt que de croire une adresse.

Ce qui n'est pas résolu ici
  amorcer-root ne voyage pas dans l'image : qui installe sans Node ne peut pas
  s'accorder le droit root. Le script et la documentation le disent, au lieu de
  laisser buter dessus.

Éprouvé sous expect, dans une copie isolée du dépôt, avec un docker factice :
les deux jeux de réponses complets, les trois chemins d'un .env existant, les
boucles de validation, les avertissements production et contenu mixte, et la
commande composée. Le .env engendré passe chargerEnv(), y compris en
KASTELL_ENV=production où EX-27 refuse toute valeur d'exemple survivante.

Non éprouvé : le « docker compose up » réel — Docker n'est pas installé sur la
machine de travail. Le site se construit pour les deux locales.

Signed-off-by: default avatarKourser <contact@kourser.bzh>
Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent 3d981ac7
Loading
Loading
Loading
Loading