Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Exploitation

Mettre à jour un site auto-hébergé

Mettez à jour Dokos dans la même version majeure, avec Docker ou avec bench, puis vérifiez le site.

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

  1. Si vous changez de version d'image, modifiez le numéro de version dans le fichier compose.yaml.
  2. Téléchargez les nouvelles images : docker compose pull.
  3. Arrêtez les conteneurs : docker compose down.
  4. Démarrez les conteneurs : docker compose up -d.
  5. 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

  1. Placez-vous dans le dossier du bench, par exemple cd ~/dokos-bench.
  2. 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 :

OptionEffet
--pullRécupère le code de toutes les applications
--apps <application>Limite la mise à jour aux applications indiquées
--requirementsInstalle les dépendances Python et Node.js
--buildCompile les fichiers JS et CSS
--patchExécute les patchs sur tous les sites du bench
--resetRéinitialise les dépôts git sur la branche suivie et supprime les modifications locales
--no-backupNe 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.