+20
−5
outils/installer.sh
0 → 100755
+537
−0
File added.
Preview size limit exceeded, changes collapsed.
+38
−2
File changed.
Preview size limit exceeded, changes collapsed.
Loading
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:Kourser <contact@kourser.bzh> Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>
File added.
Preview size limit exceeded, changes collapsed.
File changed.
Preview size limit exceeded, changes collapsed.