Mettre à jour MIA
Une nouveauté de MIA n’arrive chez vos utilisateurs qu’avec la mise à jour de l’installation. Une commande la fait sur le serveur : elle sauvegarde MIA, récupère la dernière version, reconstruit l’application et la redémarre, en gardant la configuration et les données.
Avant de commencer
Section intitulée « Avant de commencer »- Un terminal sur le serveur, dans le dossier de MIA, et MIA en service : la sauvegarde la lit.
- L’accès au dépôt de MIA, obtenu auprès de MyAlfred en préparant le serveur : la commande le
redemande à chaque mise à jour. Un jeton d’accès GitHub ; ou, si MIA a été récupérée par SSH et non
par une adresse
https://, une clé autorisée, chargée dansssh-agent. - La version installée : le numéro affiché en bas de la conversation, et sur la page À propos. La dernière version disponible, et ce que chaque version apporte, sont dans la page Nouveautés de cette documentation.
-
Donnez le jeton d’accès, sans qu’il s’affiche ni reste dans l’historique du terminal :
Fenêtre de terminal read -rs GH_TOKEN && export GH_TOKENCollez le jeton, puis Entrée. Avec une clé chargée dans
ssh-agent, passez cette étape. -
Lancez la mise à jour :
Fenêtre de terminal ./update.sh -
Suivez-la : elle annonce chaque étape.
Elle affiche Ce qu’elle fait [update] Sauvegarde pré-déploiement…Copie la base et les fichiers de MIA dans ~/backups/, sous le nom du dossier de MIA. Si la copie échoue, tout s’arrête avant le moindre changement[update] git fetch + reset…Récupère la dernière version. Ce qui a été modifié à la main dans les fichiers de MIA est perdu ; .envet les données ne sont pas touchés[update] Build images…Reconstruit l’application : c’est l’étape la plus longue. MIA reste en service pendant ce temps [update] Recreate services…Redémarre MIA sur la nouvelle version. À son démarrage, MIA met sa base à jour elle-même [update] OKSuivi de l’état des services -
Contrôlez l’installation :
Fenêtre de terminal docker compose exec app php scripts/doctor.php
Résultat
Section intitulée « Résultat »Le numéro affiché en bas de la conversation est celui de la dernière version, et le diagnostic est au vert — le même, dans MIA : Administration → Maintenance → Diagnostic. L’application mobile suit d’elle-même : elle affiche l’interface du serveur.
Cas particuliers
Section intitulée « Cas particuliers »- Revenir en arrière tout seul si la mise à jour échoue : lancez
./safe-update.shà la place de./update.shà l’étape 2. Même sauvegarde ; puis, la nouvelle version démarrée, il vérifie qu’elle répond, que sa base est à jour et que son service de tâches de fond tourne. Sinon, il remet de lui-même la version précédente, et la base telle qu’elle était au moment de la bascule : seul ce qui a été fait pendant ces quelques minutes de vérification est perdu. Il refuse de commencer si MIA ne répond pas déjà, ou si l’espace disque manque — sans rien modifier. - Revenir à la version précédente :
./rollback.shrestaure la dernière sauvegarde — la version, la base et les fichiers../rollback.sh --listliste les sauvegardes, et./rollback.shsuivi d’un horodatage en restaure une précise. Il demande de taperoui: tout ce qui a été écrit depuis la sauvegarde est perdu, conversations, documents déposés et réglages compris. - Les trois dernières sauvegardes sont gardées ; chaque nouvelle sauvegarde supprime la plus
ancienne. Le fichier
.envn’y est jamais : gardez-en une copie hors du serveur. - L’index des bases de connaissances n’est pas sauvegardé, il se reconstruit : après un retour arrière, Réindexer remet une base d’accord avec ses documents — voir Administrer les bases.
- Une génération en cours quand MIA redémarre peut s’arrêter sur « Génération interrompue » : relancez la demande. MIA ne s’interrompt que le temps de ce redémarrage ; lancez la mise à jour à une heure creuse.
- Rafraîchir aussi les images sur lesquelles MIA est construite, pour leurs correctifs de
sécurité :
REFRESH_BASE=1 ./update.sh. La construction est alors plus longue.
La référence complète — sauvegarde planifiée, restauration, journaux — est dans le dépôt :
docs/EXPLOITATION.md.
En cas de problème
Section intitulée « En cas de problème »| Ce qui arrive | Quoi faire |
|---|---|
| « Pas d’auth GitHub disponible (ni $GH_TOKEN ni ssh-agent). » | Rien n’a été modifié. Refaites l’étape 1 dans le même terminal, puis relancez. |
| « [backup] ÉCHEC : conteneur app introuvable → abandon » | MIA ne tourne pas : la sauvegarde ne peut pas la lire. Rien n’a été modifié. Démarrez-la, docker compose up -d, puis relancez. |
| « [backup] ÉCHEC : dump MySQL vide → abandon » | La base n’a pas pu être lue. Rien n’a été modifié. docker compose logs db en dit plus. |
| « Pas un repo git (…) » | Ce dossier n’a pas été récupéré par git clone : la mise à jour ne peut pas s’y faire. Voir Installer MIA sur le serveur. |
La mise à jour s’arrête pendant [update] Build images… |
MIA tourne toujours sur l’ancienne version. Corrigez la cause affichée — l’espace disque, l’accès du serveur à Internet —, puis relancez ./update.sh. |
MIA ne répond plus après [update] OK |
docker compose logs app : une ligne [migrate] ERREUR nomme la mise à jour de la base qui a échoué. Pendant l’enquête, ./rollback.sh remet la version précédente en service. |
| Le numéro de version n’a pas changé | Rechargez la page. S’il ne bouge toujours pas, la mise à jour ne s’est pas terminée : relisez ce qu’elle a affiché. |
./safe-update.sh affiche « RETOUR ARRIÈRE AUTOMATIQUE », puis « Retour arrière terminé » |
La nouvelle version n’a pas tenu ; la précédente est de nouveau en service. La cause est dans echec-deploiement.log, dans le dossier de la sauvegarde sous ~/backups/ : transmettez-le à MyAlfred. |
./safe-update.sh annonce un retour arrière « intervention requise » |
La version précédente n’a pas pu être remise en service seule. Lancez ./rollback.sh suivi de l’horodatage affiché. |