Mettre à jour un site auto-hébergé
Mettre à jour un site auto-hébergé
S'applique à : auto-hébergé, mise à jour dans la même version majeure (par exemple v5.48 → v5.50). Pour changer de version majeure, voir Migrer de la v4 à la v5. Sur Dokos Cloud, voir Mettre à jour un site Dokos Cloud.
Une mise à jour récupère le nouveau code des applications, installe les dépendances, exécute les patchs sur la base de données et recompile l'interface.
Avant de commencer
- Faites une sauvegarde complète et copiez-la hors du serveur. Voir Sauvegarder et restaurer.
- Si vous avez des applications personnalisées, testez la mise à jour sur un site de test d'abord.
- Prévenez les utilisateurs. Le site passe en mode maintenance pendant les patchs.
Mettre à jour avec Docker
- Si vous changez de version d'image, modifiez le numéro de version dans le fichier
compose.yaml. - Téléchargez les nouvelles images :
docker compose pull. - Arrêtez les conteneurs :
docker compose down. - Démarrez les conteneurs :
docker compose up -d. - Migrez les sites :
docker compose run backend bench --site all migrate.
Arrêtez toujours les conteneurs avec docker compose down avant de les redémarrer. Sinon, le bureau peut rester vide après la mise à jour.
Mettre à jour avec bench
- Placez-vous dans le dossier du bench, par exemple
cd ~/dokos-bench. - Lancez
bench update --restart-supervisor. Sur une installation qui utilise systemd, utilisez--restart-systemd.
Sans option, bench update fait, dans cet ordre : une sauvegarde des sites, la récupération du code, l'installation des dépendances, la compilation de l'interface, les patchs, puis le redémarrage.
Vous pouvez lancer une seule de ces étapes :
| Option | Effet |
|---|---|
--pull | Récupère le code de toutes les applications |
--apps <application> | Limite la mise à jour aux applications indiquées |
--requirements | Installe les dépendances Python et Node.js |
--build | Compile les fichiers JS et CSS |
--patch | Exécute les patchs sur tous les sites du bench |
--reset | Réinitialise les dépôts git sur la branche suivie et supprime les modifications locales |
--no-backup | Ne fait pas de sauvegarde avant la mise à jour. Déconseillé en production |
Utilisez --reset si la mise à jour s'arrête sur un conflit git. Cela arrive quand des fichiers standard ont été modifiés en mode développeur. Les modifications locales du code sont perdues.
Exemple
L'administrateur de Dokompany met à jour son bench en v5 un samedi matin :
cd ~/dokos-bench
bench --site dokompany.fr backup --with-files
bench update --restart-supervisor
La commande se termine sans erreur. Il ouvre Aide > À propos et voit la nouvelle version de Dokos.
Vérifier
- Aide > À propos affiche les versions attendues.
- Vous ouvrez une facture, un client et un article sans erreur.
- Le planificateur tourne : voir Diagnostiquer un site.
Si la mise à jour échoue
- Si le site reste en maintenance, lancez
bench --site dokompany.fr set-maintenance-mode off. - Si un patch échoue, notez le message complet. Publiez-le sur le forum de la communauté. Après la correction, relancez
bench update. - Avant de signaler un problème, refaites la mise à jour sur un bench sans application personnalisée. Cela montre si l'une d'elles bloque la mise à jour.
- Voir aussi Une mise à jour a échoué.
Pour couper les emails, les notifications et les paiements automatiques d'un site (par exemple une copie de test), voir Copier la production sur un site de test.