Mise à jour et désinstallation
Une mise à jour remplace deux choses — le binaire et l’unité de service — et laisse votre configuration et vos certificats tranquilles. Cette page le montre, donne l’équivalent pour un conteneur, le chemin de retour arrière quand une version doit reculer, et le démontage.
🧾 Ce qui survit à quoi
Section intitulée « 🧾 Ce qui survit à quoi »| Chemin | Une mise à jour |
|---|---|
/etc/Pingclair/Pingclairfile |
Conservé. L’installateur ne l’écrit que s’il manque. |
/etc/Pingclair/Pingclairfile.example |
Remplacé par l’exemple courant. |
/var/lib/pingclair/.local/share/pingclair |
Conservé. Certificats émis et état ACME restent en place. |
/var/lib/pingclair/html |
Conservé. |
/usr/local/bin/pingclair et pc |
Remplacés par la nouvelle version. |
/etc/systemd/system/pingclair.service |
Réécrit, puis le service est redémarré. |
⬆️ Mettre à jour avec l’installateur
Section intitulée « ⬆️ Mettre à jour avec l’installateur »curl -fsSL https://pingclair.com/install.sh | sudo bashLe script demande à GitHub le tag de la dernière version, l’affiche, vérifie la somme SHA-256 de l’archive, remplace le binaire et l’unité, puis redémarre le service. Un fichier de configuration existant n’est pas touché, ce qui fait de cette opération une mise à jour et non une remise à zéro :
Detected architecture: x86_64Fetching latest release from dorianverlaine/pingclair...Installing v0.2.0-rc.3 — a release candidate, not a final release.pingclair-linux-x86_64.tar.gz: OK✅ Installation Complete!Config: /etc/Pingclair/PingclairfileConfirmez la nouvelle version et que l’ancienne configuration sert toujours :
pingclair versionpc service statuscurl -i http://localhost/v0.2.0-rc.3L’installateur installe toujours la dernière version. Il n’existe pas d’option pour une version précise ; c’est le retour arrière ci-dessous qui s’en charge.
🐳 Mettre à jour un conteneur
Section intitulée « 🐳 Mettre à jour un conteneur »Rien n’est installé sur l’hôte : une mise à jour est un changement de tag et un pull. Épinglez la nouvelle version dans le fichier compose :
services: pingclair: image: ghcr.io/dorianverlaine/pingclair:v0.2.0-rc.3docker compose pulldocker compose up -ddocker logs pingclair 2>&1 | head -3🚀 Starting Pingclair with config: /etc/pingclair/Pingclairfile🚀 Starting Pingclair v0.2.0-rc.3📄 Loaded configuration from: /etc/pingclair/PingclairfileLa configuration et le magasin de certificats vivent dans les volumes, donc le nouveau conteneur les retrouve là où l’ancien les a laissés. Deux points à surveiller :
- Un conteneur qui publie le port 80 ne peut pas démarrer tant que le service
systemd tourne. Arrêtez l’un des deux :
sudo pc service stop, ou changez le port publié côté conteneur. latestsuit la version la plus récente. Épinglez une version en production, pour qu’une mise à jour soit une décision et non un effet de bord d’un pull.
⏪ Revenir à une version antérieure
Section intitulée « ⏪ Revenir à une version antérieure »Quand une version doit reculer, récupérez la précédente sur l’hôte de publication, vérifiez-la contre le condensé publié par cette version, et remplacez le binaire :
mkdir -p /tmp/rollback && cd /tmp/rollbackversion=0.2.0-rc.2base="https://releases.pingclair.com/pingclair/releases/$version"curl -fsSL "$base/release.json" -o release.jsontarball=pingclair-linux-x86_64.tar.gzexpected="$(jq -r ".assets[] | select(.name == \"$tarball\") | .digest" release.json | sed 's/^sha256://')"curl -fsSLO "$base/$tarball"printf '%s %s\n' "$expected" "$tarball" | sha256sum -c -mkdir -p extract && tar -xzf "$tarball" -C extractpingclair-linux-x86_64.tar.gz: OKsudo systemctl stop pingclairsudo install -m 0755 extract/pingclair /usr/local/bin/pingclairsudo systemctl start pingclairpingclair versionv0.2.0-rc.2Validez ensuite la configuration face à la version restaurée : une directive que cette version n’implémente pas est refusée par son nom plutôt qu’ignorée.
sudo pingclair validate /etc/Pingclair/Pingclairfile🧹 Le désinstaller
Section intitulée « 🧹 Le désinstaller »sudo pc service stopsudo systemctl disable pingclairsudo rm /etc/systemd/system/pingclair.servicesudo systemctl daemon-reloadsudo rm /usr/local/bin/pingclair /usr/local/bin/pcAprès cela, systemctl status pingclair répond Unit pingclair.service could not be found, la commande a disparu et rien n’écoute sur le port 80. Ce qui reste
sur le disque est volontairement vos données :
/etc/Pingclair/Pingclairfile la configuration, toujours valide/var/lib/pingclair/.local/share/pingclair certificats émis et état ACME/var/lib/pingclair/html le site d'attente/var/log/pingclair le répertoire d'une destination de journalGardez /var/lib/pingclair/.local/share/pingclair si vous prévoyez de réinstaller : les
certificats et la racine interne survivent, et les clients qui font confiance à
cette racine continuent de fonctionner. Supprimez tout, y compris le compte de
service, quand l’hôte a fini avec Pingclair :
sudo rm -rf /etc/Pingclair /var/lib/pingclair /var/log/pingclairsudo userdel pingclair⚠️ Quand cela se passe mal
Section intitulée « ⚠️ Quand cela se passe mal »- L’installateur a installé une version inattendue. Il prend toujours le
dernier tag de version. Vérifiez avec
pingclair versionet utilisez le retour arrière ci-dessus s’il vous fallait une version précise. - Le service ne démarre plus après une mise à jour. Lisez
sudo pingclair validate /etc/Pingclair/Pingclairfile. Une directive que la nouvelle version refuse échoue de façon fermée, avec son nom et l’alternative : le journal donne la ligne à changer. - Un conteneur s’arrête immédiatement.
docker logs <container>en donne la raison. Les causes habituelles sont un/etc/pingclair/Pingclairfileabsent du répertoire de configuration monté, ou un port déjà utilisé sur l’hôte. - Les clients rejettent le certificat après une reconstruction du magasin.
Si l’autorité interne a été régénérée, l’ancienne racine ne signe plus rien.
Installez la nouvelle avec
sudo PINGCLAIR_TLS_STORE=/var/lib/pingclair/.local/share/pingclair pingclair trust.
🧭 Étapes suivantes
Section intitulée « 🧭 Étapes suivantes »- Installation : l’arborescence que cette page conserve ou supprime.
- Exécution comme service : l’unité qu’une mise à jour réécrit.
- État du projet : ce que la version courante prend en charge et ce qu’elle refuse.
