Mises à jour hors ligne
Les versions de Chinaski sont traitées comme des artefacts qui voyagent sur des supports amovibles à l'intérieur des environnements air-gap : un bundle signé, sa signature, et votre clé publique de release.
Le flux documenté
- Sur une machine connectée: récupérez le bundle de la version la plus récente (un tar.gz) plus son fichier de signature
.sigdepuis l'emplacement des releases. Les signatures sont des signatures Ed25519 hex-encodées des octets bruts du bundle, produites par l'outil de signature de release contre une clé de release. - Transférez les deux fichiers vers la machine air-gap (USB, copie à sens unique, quelle que soit votre discipline de transfert).
- Exécutez le script de mise à jour :
bash scripts/apply_update.sh \
--bundle chinaski-<version>.tar.gz \
--sig chinaski-<version>.tar.gz.sig \
--pubkey keys/chinaski_release.pub \
[--prefix /opt/chinaski] Le script vérifie d'abord la signature Ed25519 (les bundles altérés sont rejetés d'emblée), sauvegarde l'application actuelle, puis applique la mise à jour, en gardant la version précédente récupérable si quelque chose se passe mal ensuite.
La variante en ligne : jamais automatique
L'application a une capacité de vérification de mise à jour, mais elle ne consulte jamais qu'une URL de manifest que vous définissez explicitement (via la variable d'environnement CHINASKI_UPDATE_MANIFEST_URL) et uniquement quand le mode air-gap est désactivé. Rien ne « téléphone à la maison » pour des mises à jour sans que les deux soient configurés. Les signatures de manifest sont vérifiées contre la clé publique de release quand une clé est disponible.
Notes d'exploitation
- La vérification de signature est obligatoire dans le chemin de mise à jour, pas seulement une recommandation.
- La clé publique de release que l'updater utilise par défaut est
keys/chinaski_release.pubdans l'installation ; gardez-la en sécurité et à jour avec les futurs bundles quand le projet annonce les nouvelles clés. - Les bundles sont basés sur la même mécanique make-bundle utilisée pour la première installation hors ligne ; le bundle transporte les tarballs CPAN, donc la mise à jour vers une version plus récente fonctionne aussi sans accès réseau.
- Avant d'appliquer une mise à jour sur un système en production, gardez une sauvegarde à jour et notez que le script d'application sauvegarde automatiquement l'application précédente ; le moment d'appliquer est une fenêtre de maintenance, comme pour tout CMS.