Pour les administrateurs
← Tous les sujets

Mettre à jour en ligne de commande

./draften update sans interruption, la vérification d’un paquet, le retour à la version précédente ou plus ancienne, et une machine sans internet.

Quand l’updater tourne sur l’installation, la mise à jour dans l’interface est la plus pratique – elle est décrite dans Mettre à jour avec l’updater. Voici la même procédure en ligne de commande ; elle fonctionne toujours, avec ou sans l’updater. Toutes les commandes se lancent dans le répertoire d’installation.

Mettre à jour vers une nouvelle version

Chaque version est un nouveau paquet. Soit vous le passez directement à la commande :

./draften update --bundle /chemin/vers/draften-<nouvelle version>.tar

soit vous le copiez dans le dossier updates/ et lancez :

./draften update <nouvelle version>

La mise à jour n’entraîne aucune interruption et se déroule étape par étape :

  1. elle vérifie le paquet avec les clés de la version installée – avant d’en utiliser quoi que ce soit,
  2. elle enregistre un dump de la base de données dans backups/ (les trois derniers sont conservés ; le nombre est fixé par DRAFTEN_BACKUPS dans .env),
  3. elle exécute les migrations de la base de données,
  4. elle remplace les workers,
  5. elle démarre la nouvelle version du web à côté de celle qui sert, et bascule dessus dès qu’elle est saine.

Si la nouvelle version ne devient pas saine, rien n’est basculé et la précédente continue de servir.

Un paquet peut aussi être vérifié sans être installé :

./draften check draften-<nouvelle version>.tar

Après la mise à jour

./draften status

indique quelle couleur du web sert, la version et l’état de santé des deux couleurs et des workers, l’état HTTPS et les dumps de la base de données. Sur la page Exploitation, les workers se signalent et le verdict est « la capacité suffit ». Ce qu’a changé la version se trouve dans le fichier NOTES.md.

Revenir à la version précédente

La version qui servait avant la mise à jour continue de tourner, sans trafic. Vous basculez dessus immédiatement :

./draften rollback

C’est possible parce que la base de données reste lisible aussi pour la version précédente.

Revenir à une version encore plus ancienne

Cela ne passe que par la restauration d’un dump de la base de données. Chaque dump de backups/ porte dans son nom la version qui tournait au moment où il a été créé :

docker compose stop worker
gunzip -c backups/<heure>-<version>.sql.gz | docker compose exec -T db sh -c 'mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"'
./draften update <version> --no-backup

Tout ce qui s’est passé dans draften après la création du dump est perdu.

Un dump antérieur au remplacement de la clé de chiffrement ne s’ouvre qu’avec la clé précédente, MASTER_KEY_PREVIOUS dans .env. Voir Sauvegarde et restauration.

Une machine sans internet

L’updater télécharge les nouvelles versions avec la clé de la licence. Une machine sans internet ne télécharge rien : copiez le paquet dans updates/ et mettez à jour avec ./draften update <version> – ou bien l’updater vous le propose depuis là, dans l’interface.

Ce qui ne change pas de soi-même

Version texte