[{"data":1,"prerenderedAt":1013},["ShallowReactive",2],{"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fmigration-v4-vers-v5":3,"section:\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fmigration-v4-vers-v5":1012},{"id":4,"title":5,"body":6,"description":992,"extension":993,"meta":994,"navigation":995,"path":1008,"seo":1009,"stem":1010,"__hash__":1011},"docs\u002F1.v5\u002F5.administrer\u002F03.exploitation\u002F13.migration-v4-vers-v5.md","Migrer un site auto-hébergé de la v4 à la v5",{"type":7,"value":8,"toc":972},"minimark",[9,13,26,29,111,118,121,126,129,134,159,163,217,224,228,390,405,411,415,421,425,428,432,444,502,506,526,579,588,592,602,665,674,678,685,743,753,757,790,810,814,859,863,877,881,899,903,911,915,968],[10,11,5],"h1",{"id":12},"migrer-un-site-auto-hébergé-de-la-v4-à-la-v5",[14,15,16],"blockquote",{},[17,18,19,20,25],"p",{},"S'applique à : auto-hébergé, Dokos v4 → v5. Sur Dokos Cloud, voir ",[21,22,24],"a",{"href":23},"\u002Fv5\u002Fadministrer\u002Fcloud\u002Fmettre-a-jour-un-site","Mettre à jour un site Dokos Cloud",".",[17,27,28],{},"La v5 change les prérequis du serveur. Le bench existant ne peut pas simplement être mis à jour.",[30,31,32,47],"table",{},[33,34,35],"thead",{},[36,37,38,41,44],"tr",{},[39,40],"th",{},[39,42,43],{},"Dokos v4",[39,45,46],{},"Dokos v5",[48,49,50,62,73,89,100],"tbody",{},[36,51,52,56,59],{},[53,54,55],"td",{},"Python",[53,57,58],{},"3.10 à 3.12",[53,60,61],{},"3.14",[36,63,64,67,70],{},[53,65,66],{},"Node.js",[53,68,69],{},"18 ou plus",[53,71,72],{},"24 ou plus",[36,74,75,78,84],{},[53,76,77],{},"Branche des applications",[53,79,80],{},[81,82,83],"code",{},"v4",[53,85,86],{},[81,87,88],{},"v5",[36,90,91,94,97],{},[53,92,93],{},"Sortie de la version",[53,95,96],{},"décembre 2023",[53,98,99],{},"mars 2026",[36,101,102,105,108],{},[53,103,104],{},"Ubuntu LTS à cette date",[53,106,107],{},"22.04 (Python 3.10)",[53,109,110],{},"24.04 (Python 3.12)",[17,112,113,114,25],{},"Ubuntu 24.04 ne fournit pas Python 3.14. Installez-le à côté du Python du système (voir plus bas), ou utilisez Docker. Pour les étapes plus anciennes, voir ",[21,115,117],{"href":116},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fmigration-v2-v3-vers-v5","Migrer de la v2 ou de la v3 à la v5",[17,119,120],{},"Deux chemins existent. L'équipe Dokos recommande le premier.",[122,123,125],"h2",{"id":124},"chemin-recommandé-nouvelle-machine-docker-et-restauration","Chemin recommandé : nouvelle machine Docker et restauration",[17,127,128],{},"Vous installez la v5 avec Docker sur une nouvelle machine, puis vous y restaurez la sauvegarde du site v4. L'ancien serveur reste intact : c'est votre retour arrière.",[130,131,133],"h3",{"id":132},"prérequis","Prérequis",[135,136,137,145,151],"ul",{},[138,139,140,141,25],"li",{},"Une nouvelle machine Linux avec Docker. Voir ",[21,142,144],{"href":143},"\u002Fv5\u002Fadministrer\u002Finstallation\u002Fdocker","Installation Docker",[138,146,147,148,25],{},"La liste des applications installées sur le site v4 : ",[81,149,150],{},"bench --site dokompany.fr list-apps",[138,152,153,154,158],{},"L'image Docker par défaut installe Payments, Dokos, HRMS et Webshop. Si votre site utilise d'autres applications, construisez une ",[21,155,157],{"href":156},"\u002Fv5\u002Fadministrer\u002Finstallation\u002Fplus\u002Fdocker-personnalise","image personnalisée"," qui les contient, en version v5.",[130,160,162],{"id":161},"sauvegarder-le-site-v4","Sauvegarder le site v4",[164,165,170],"pre",{"className":166,"code":167,"language":168,"meta":169,"style":169},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cd ~\u002Fdokos-bench\nbench --site dokompany.fr backup --with-files\ncat sites\u002Fdokompany.fr\u002Fsite_config.json   # notez la valeur encryption_key\n","bash","",[81,171,172,185,204],{"__ignoreMap":169},[173,174,177,181],"span",{"class":175,"line":176},"line",1,[173,178,180],{"class":179},"s2Zo4","cd",[173,182,184],{"class":183},"sfazB"," ~\u002Fdokos-bench\n",[173,186,188,192,195,198,201],{"class":175,"line":187},2,[173,189,191],{"class":190},"sBMFI","bench",[173,193,194],{"class":183}," --site",[173,196,197],{"class":183}," dokompany.fr",[173,199,200],{"class":183}," backup",[173,202,203],{"class":183}," --with-files\n",[173,205,207,210,213],{"class":175,"line":206},3,[173,208,209],{"class":190},"cat",[173,211,212],{"class":183}," sites\u002Fdokompany.fr\u002Fsite_config.json",[173,214,216],{"class":215},"sHwdD","   # notez la valeur encryption_key\n",[17,218,219,220,223],{},"Copiez les quatre fichiers de ",[81,221,222],{},"sites\u002Fdokompany.fr\u002Fprivate\u002Fbackups\u002F"," vers la nouvelle machine.",[130,225,227],{"id":226},"restaurer-sur-la-v5","Restaurer sur la v5",[164,229,231],{"className":166,"code":230,"language":168,"meta":169,"style":169},"docker compose up -d\ndocker compose cp .\u002Fbackups backend:\u002Fhome\u002Ffrappe\u002Ffrappe-bench\u002Fsites\u002Ffrontend\u002Fprivate\u002F\nB=\u002Fhome\u002Ffrappe\u002Ffrappe-bench\u002Fsites\u002Ffrontend\u002Fprivate\u002Fbackups\ndocker compose exec backend bench --site frontend restore \\\n  $B\u002F20261029_020000-dokompany_fr-database.sql.gz \\\n  --with-public-files $B\u002F20261029_020000-dokompany_fr-files.tar \\\n  --with-private-files $B\u002F20261029_020000-dokompany_fr-private-files.tar\ndocker compose exec backend bench --site frontend set-config encryption_key \"\u003Cclé de l'ancien site>\"\ndocker compose exec backend bench --site frontend migrate\n",[81,232,233,247,262,275,302,313,327,338,370],{"__ignoreMap":169},[173,234,235,238,241,244],{"class":175,"line":176},[173,236,237],{"class":190},"docker",[173,239,240],{"class":183}," compose",[173,242,243],{"class":183}," up",[173,245,246],{"class":183}," -d\n",[173,248,249,251,253,256,259],{"class":175,"line":187},[173,250,237],{"class":190},[173,252,240],{"class":183},[173,254,255],{"class":183}," cp",[173,257,258],{"class":183}," .\u002Fbackups",[173,260,261],{"class":183}," backend:\u002Fhome\u002Ffrappe\u002Ffrappe-bench\u002Fsites\u002Ffrontend\u002Fprivate\u002F\n",[173,263,264,268,272],{"class":175,"line":206},[173,265,267],{"class":266},"sTEyZ","B",[173,269,271],{"class":270},"sMK4o","=",[173,273,274],{"class":183},"\u002Fhome\u002Ffrappe\u002Ffrappe-bench\u002Fsites\u002Ffrontend\u002Fprivate\u002Fbackups\n",[173,276,278,280,282,285,288,291,293,296,299],{"class":175,"line":277},4,[173,279,237],{"class":190},[173,281,240],{"class":183},[173,283,284],{"class":183}," exec",[173,286,287],{"class":183}," backend",[173,289,290],{"class":183}," bench",[173,292,194],{"class":183},[173,294,295],{"class":183}," frontend",[173,297,298],{"class":183}," restore",[173,300,301],{"class":266}," \\\n",[173,303,305,308,311],{"class":175,"line":304},5,[173,306,307],{"class":266},"  $B",[173,309,310],{"class":183},"\u002F20261029_020000-dokompany_fr-database.sql.gz",[173,312,301],{"class":266},[173,314,316,319,322,325],{"class":175,"line":315},6,[173,317,318],{"class":183},"  --with-public-files",[173,320,321],{"class":266}," $B",[173,323,324],{"class":183},"\u002F20261029_020000-dokompany_fr-files.tar",[173,326,301],{"class":266},[173,328,330,333,335],{"class":175,"line":329},7,[173,331,332],{"class":183},"  --with-private-files",[173,334,321],{"class":266},[173,336,337],{"class":183},"\u002F20261029_020000-dokompany_fr-private-files.tar\n",[173,339,341,343,345,347,349,351,353,355,358,361,364,367],{"class":175,"line":340},8,[173,342,237],{"class":190},[173,344,240],{"class":183},[173,346,284],{"class":183},[173,348,287],{"class":183},[173,350,290],{"class":183},[173,352,194],{"class":183},[173,354,295],{"class":183},[173,356,357],{"class":183}," set-config",[173,359,360],{"class":183}," encryption_key",[173,362,363],{"class":270}," \"",[173,365,366],{"class":183},"\u003Cclé de l'ancien site>",[173,368,369],{"class":270},"\"\n",[173,371,373,375,377,379,381,383,385,387],{"class":175,"line":372},9,[173,374,237],{"class":190},[173,376,240],{"class":183},[173,378,284],{"class":183},[173,380,287],{"class":183},[173,382,290],{"class":183},[173,384,194],{"class":183},[173,386,295],{"class":183},[173,388,389],{"class":183}," migrate\n",[17,391,392,393,396,397,400,401,404],{},"Si ",[81,394,395],{},"restore"," demande le mot de passe root de MariaDB, saisissez la valeur ",[81,398,399],{},"MYSQL_ROOT_PASSWORD"," du service ",[81,402,403],{},"db"," de votre fichier Compose. Changez cette valeur par défaut avant la mise en production.",[17,406,407,410],{},[81,408,409],{},"migrate"," exécute les patchs qui passent la base de la v4 à la v5. Lisez sa sortie jusqu'au bout. Une erreur de patch arrête la migration : notez le message complet.",[130,412,414],{"id":413},"basculer-le-domaine","Basculer le domaine",[17,416,417,418,420],{},"Configurez Nginx et le certificat sur la nouvelle machine (voir ",[21,419,144],{"href":143},"), puis changez l'enregistrement DNS du domaine vers la nouvelle machine. Arrêtez l'ancien site seulement après vos vérifications.",[122,422,424],{"id":423},"chemin-en-place-mettre-à-jour-le-bench-existant","Chemin en place : mettre à jour le bench existant",[17,426,427],{},"Ce chemin modifie l'environnement Python du bench en place. Faites une sauvegarde complète et, si possible, un instantané de la machine avant de commencer. Ce guide concerne les installations sous Ubuntu.",[130,429,431],{"id":430},"installer-nodejs-24","Installer Node.js 24",[17,433,434,435,443],{},"Utilisez ",[21,436,440],{"href":437,"rel":438},"https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm",[439],"nofollow",[81,441,442],{},"nvm"," ou le dépôt NodeSource :",[164,445,449],{"className":446,"code":447,"language":448,"meta":169,"style":169},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","wget -qO- https:\u002F\u002Fdeb.nodesource.com\u002Fsetup_24.x | sudo -E bash -\nsudo apt install -y nodejs\nnode --version\n","sh",[81,450,451,477,494],{"__ignoreMap":169},[173,452,453,456,459,462,465,468,471,474],{"class":175,"line":176},[173,454,455],{"class":190},"wget",[173,457,458],{"class":183}," -qO-",[173,460,461],{"class":183}," https:\u002F\u002Fdeb.nodesource.com\u002Fsetup_24.x",[173,463,464],{"class":270}," |",[173,466,467],{"class":190}," sudo",[173,469,470],{"class":183}," -E",[173,472,473],{"class":183}," bash",[173,475,476],{"class":183}," -\n",[173,478,479,482,485,488,491],{"class":175,"line":187},[173,480,481],{"class":190},"sudo",[173,483,484],{"class":183}," apt",[173,486,487],{"class":183}," install",[173,489,490],{"class":183}," -y",[173,492,493],{"class":183}," nodejs\n",[173,495,496,499],{"class":175,"line":206},[173,497,498],{"class":190},"node",[173,500,501],{"class":183}," --version\n",[130,503,505],{"id":504},"installer-python-314","Installer Python 3.14",[17,507,508,509,513,514,517,518,521,522,525],{},"Installez Python 3.14 ",[510,511,512],"strong",{},"à côté"," du Python du système, sans le remplacer. Sinon, des outils comme ",[81,515,516],{},"apt"," peuvent cesser de fonctionner. Ne changez donc pas la commande ",[81,519,520],{},"python3"," par défaut (pas de ",[81,523,524],{},"update-alternatives",").",[164,527,529],{"className":446,"code":528,"language":448,"meta":169,"style":169},"sudo add-apt-repository ppa:deadsnakes\u002Fppa\nsudo apt-get update\nsudo apt-get install python3.14 python3.14-dev python3.14-venv libmariadb-dev\npython3.14 -V\n",[81,530,531,541,551,571],{"__ignoreMap":169},[173,532,533,535,538],{"class":175,"line":176},[173,534,481],{"class":190},[173,536,537],{"class":183}," add-apt-repository",[173,539,540],{"class":183}," ppa:deadsnakes\u002Fppa\n",[173,542,543,545,548],{"class":175,"line":187},[173,544,481],{"class":190},[173,546,547],{"class":183}," apt-get",[173,549,550],{"class":183}," update\n",[173,552,553,555,557,559,562,565,568],{"class":175,"line":206},[173,554,481],{"class":190},[173,556,547],{"class":183},[173,558,487],{"class":183},[173,560,561],{"class":183}," python3.14",[173,563,564],{"class":183}," python3.14-dev",[173,566,567],{"class":183}," python3.14-venv",[173,569,570],{"class":183}," libmariadb-dev\n",[173,572,573,576],{"class":175,"line":277},[173,574,575],{"class":190},"python3.14",[173,577,578],{"class":183}," -V\n",[17,580,581,582,584,585,25],{},"Mettez ensuite à jour docli, l'outil qui fournit la commande ",[81,583,191],{}," : ",[81,586,587],{},"pip install dokos-cli --upgrade",[130,589,591],{"id":590},"créer-un-bench-en-python-314","Créer un bench en Python 3.14",[17,593,594,597,598,601],{},[81,595,596],{},"bench migrate-env python3.14"," échoue tant que Dodock est en v4, avec un message du type ",[81,599,600],{},"Package 'frappe' requires a different Python: 3.14.x not in '\u003C3.13,>=3.10'",". La v4 n'est pas compatible avec Python 3.14. Créez donc un nouveau bench :",[164,603,605],{"className":446,"code":604,"language":448,"meta":169,"style":169},"bench init ~\u002Fdokos-bench-v5 --python python3.14 --frappe-branch v5\ncd ~\u002Fdokos-bench-v5\nbench get-app https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdokos --branch v5    # puis hrms, payments, webshop… selon ~\u002Fdokos-bench\u002Fsites\u002Fapps.txt\nmv ~\u002Fdokos-bench\u002Fsites\u002Fdokompany.fr sites\u002F\n",[81,606,607,628,635,654],{"__ignoreMap":169},[173,608,609,611,614,617,620,622,625],{"class":175,"line":176},[173,610,191],{"class":190},[173,612,613],{"class":183}," init",[173,615,616],{"class":183}," ~\u002Fdokos-bench-v5",[173,618,619],{"class":183}," --python",[173,621,561],{"class":183},[173,623,624],{"class":183}," --frappe-branch",[173,626,627],{"class":183}," v5\n",[173,629,630,632],{"class":175,"line":187},[173,631,180],{"class":179},[173,633,634],{"class":183}," ~\u002Fdokos-bench-v5\n",[173,636,637,639,642,645,648,651],{"class":175,"line":206},[173,638,191],{"class":190},[173,640,641],{"class":183}," get-app",[173,643,644],{"class":183}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdokos",[173,646,647],{"class":183}," --branch",[173,649,650],{"class":183}," v5",[173,652,653],{"class":215},"    # puis hrms, payments, webshop… selon ~\u002Fdokos-bench\u002Fsites\u002Fapps.txt\n",[173,655,656,659,662],{"class":175,"line":277},[173,657,658],{"class":190},"mv",[173,660,661],{"class":183}," ~\u002Fdokos-bench\u002Fsites\u002Fdokompany.fr",[173,663,664],{"class":183}," sites\u002F\n",[17,666,667,668,670,671,25],{},"Ajoutez au nouveau bench, en branche ",[81,669,88],{},", chaque application listée dans ",[81,672,673],{},"~\u002Fdokos-bench\u002Fsites\u002Fapps.txt",[130,675,677],{"id":676},"ajouter-les-applications-sorties-de-dodock","Ajouter les applications sorties de Dodock",[17,679,680,681,684],{},"Plusieurs modules sont sortis de Dodock en v5. Si votre site les utilise, ajoutez leur application au bench avec ",[81,682,683],{},"bench get-app \u003Cdépôt>",", en choisissant la branche compatible avec Dodock v5 indiquée dans le dépôt :",[30,686,687,697],{},[33,688,689],{},[36,690,691,694],{},[39,692,693],{},"Module",[39,695,696],{},"Dépôt",[48,698,699,710,721,732],{},[36,700,701,704],{},[53,702,703],{},"Blog",[53,705,706],{},[21,707,708],{"href":708,"rel":709},"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Fblog",[439],[36,711,712,715],{},[53,713,714],{},"Energy Points",[53,716,717],{},[21,718,719],{"href":719,"rel":720},"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Feps",[439],[36,722,723,726],{},[53,724,725],{},"Newsletter",[53,727,728],{},[21,729,730],{"href":730,"rel":731},"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Fnewsletter",[439],[36,733,734,737],{},[53,735,736],{},"Sauvegardes externes (S3, Google Drive, Dropbox)",[53,738,739],{},[21,740,741],{"href":741,"rel":742},"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Foffsite_backups",[439],[17,744,745,746,749,750,25],{},"Installez ensuite chaque application ajoutée sur le site : ",[81,747,748],{},"bench --site dokompany.fr install-app \u003Capplication>",". Le nom de l'application est celui de son dossier dans ",[81,751,752],{},"apps\u002F",[130,754,756],{"id":755},"mettre-à-jour-et-passer-en-production","Mettre à jour et passer en production",[164,758,760],{"className":446,"code":759,"language":448,"meta":169,"style":169},"bench setup production \u003Cutilisateur>\nbench update\n",[81,761,762,784],{"__ignoreMap":169},[173,763,764,766,769,772,775,778,781],{"class":175,"line":176},[173,765,191],{"class":190},[173,767,768],{"class":183}," setup",[173,770,771],{"class":183}," production",[173,773,774],{"class":270}," \u003C",[173,776,777],{"class":183},"utilisateu",[173,779,780],{"class":266},"r",[173,782,783],{"class":270},">\n",[173,785,786,788],{"class":175,"line":187},[173,787,191],{"class":190},[173,789,550],{"class":183},[17,791,792,793,797,798,801,802,805,806,809],{},"Voir aussi ",[21,794,796],{"href":795},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fmises-a-jour","Mettre à jour Dokos",". Si ",[81,799,800],{},"ModuleNotFoundError: No module named 'virtualenv'"," apparaît, lancez ",[81,803,804],{},"pip install virtualenv",". Si Python ou ",[81,807,808],{},"apt-get"," ne fonctionne plus, le Python du système a été remplacé : réinstallez-le avant de continuer.",[122,811,813],{"id":812},"changements-à-connaître-en-v5","Changements à connaître en v5",[135,815,816,822,829,836,843],{},[138,817,818,819,25],{},"La navigation utilise une barre latérale persistante, basée sur le type de document ",[510,820,821],{},"Workspace Sidebar",[138,823,824,825,828],{},"Les vues de liste sont triées par défaut par date de création (",[81,826,827],{},"creation",") au lieu de la date de modification.",[138,830,831,832,835],{},"La ",[510,833,834],{},"Console système"," est réservée au rôle Administrateur.",[138,837,838,839,842],{},"Le code d'un ",[510,840,841],{},"Pays"," doit être un code ISO 3166 alpha-2 valide.",[138,844,845,846,850,851,854,855,858],{},"L'application ",[21,847,849],{"href":848},"\u002Fv5\u002Fintegrations\u002Fetransaction","E-transactions"," remplace l'application OCR. Si vous utilisiez OCR, installez E-transactions (",[81,852,853],{},"bench get-app https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fetransactions --branch v5",", puis ",[81,856,857],{},"install-app etransactions",") : Dokos reprend vos paramètres. Vous pouvez ensuite désinstaller OCR.",[122,860,862],{"id":861},"exemple","Exemple",[17,864,865,866,869,870,872,873,876],{},"Dokompany utilise Dokos v4 sur une machine Ubuntu 22.04 avec Dokos, HRMS, Payments et Webshop. L'administrateur loue une nouvelle machine, installe Docker et le fichier Compose par défaut. Il restaure la sauvegarde du vendredi soir, copie la clé ",[81,867,868],{},"encryption_key",", lance ",[81,871,409],{},", puis bascule le DNS de ",[81,874,875],{},"dokompany.fr"," le samedi matin.",[122,878,880],{"id":879},"vérifier","Vérifier",[135,882,883,889,892],{},[138,884,885,888],{},[510,886,887],{},"Aide > À propos"," affiche Dodock et Dokos en version 5.",[138,890,891],{},"Un compte email s'ouvre sans erreur de déchiffrement.",[138,893,894,895,25],{},"Suivez la ",[21,896,898],{"href":897},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fchecklist-apres-migration-v5","liste de contrôle après migration",[122,900,902],{"id":901},"revenir-en-arrière","Revenir en arrière",[135,904,905,908],{},[138,906,907],{},"Chemin Docker : remettez l'enregistrement DNS vers l'ancien serveur. Les saisies faites sur la v5 entre-temps sont perdues.",[138,909,910],{},"Chemin en place : restaurez l'instantané de la machine, ou la sauvegarde sur un bench v4.",[122,912,914],{"id":913},"problèmes-fréquents","Problèmes fréquents",[30,916,917,927],{},[33,918,919],{},[36,920,921,924],{},[39,922,923],{},"Problème",[39,925,926],{},"Solution",[48,928,929,945,956],{},[36,930,931,936],{},[53,932,933,934],{},"Un patch échoue pendant ",[81,935,409],{},[53,937,938,939,944],{},"Publiez le message complet sur le ",[21,940,943],{"href":941,"rel":942},"https:\u002F\u002Fcommunity.dokos.io",[439],"forum de la communauté",". Ne modifiez pas la base à la main.",[36,946,947,953],{},[53,948,949,952],{},[81,950,951],{},"ModuleNotFoundError"," pour une application au démarrage",[53,954,955],{},"Une application du site v4 manque dans le bench ou l'image v5. Ajoutez-la en version v5.",[36,957,958,961],{},[53,959,960],{},"Les scripts serveur ne fonctionnent plus",[53,962,963,964,967],{},"Activez-les au niveau du bench : ",[81,965,966],{},"bench set-config -g server_script_enabled 1",". Ce réglage n'existe pas au niveau d'un site.",[969,970,971],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":169,"searchDepth":176,"depth":187,"links":973},[974,980,987,988,989,990,991],{"id":124,"depth":187,"text":125,"children":975},[976,977,978,979],{"id":132,"depth":206,"text":133},{"id":161,"depth":206,"text":162},{"id":226,"depth":206,"text":227},{"id":413,"depth":206,"text":414},{"id":423,"depth":187,"text":424,"children":981},[982,983,984,985,986],{"id":430,"depth":206,"text":431},{"id":504,"depth":206,"text":505},{"id":590,"depth":206,"text":591},{"id":676,"depth":206,"text":677},{"id":755,"depth":206,"text":756},{"id":812,"depth":187,"text":813},{"id":861,"depth":187,"text":862},{"id":879,"depth":187,"text":880},{"id":901,"depth":187,"text":902},{"id":913,"depth":187,"text":914},"Choisissez entre une nouvelle machine Docker et une migration en place, puis passez votre site Dokos v4 en v5.","md",{"reviewed":995,"last_verified":996,"sources":997},true,"2026-11-04",[998,999,1000,1001,1002,1003,1004,1005,1006,1007],"apps\u002Ffrappe\u002Fpyproject.toml (v4, v5-dev)","apps\u002Ffrappe\u002Fpackage.json (v4, v5-dev)","apps\u002Ffrappe\u002Ffrappe\u002Fcommands\u002Fsite.py (v5-dev, backup, restore)","https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdocli\u002F-\u002Fraw\u002Fdevelop\u002Fcompose\u002Fdokos.yaml","tags Dokos v4.0.0, v5.0.0 (apps\u002Ffrappe)","https:\u002F\u002Fwiki.ubuntu.com\u002FReleases","forum:2048","apps\u002Ffrappe\u002Ffrappe\u002Fpatches\u002Fv16_0\u002Fadd_module_deprecation_warning.py","apps\u002Ffrappe\u002Ffrappe\u002Fgeo\u002Fdoctype\u002Fcountry\u002Fcountry.py","apps\u002Ffrappe\u002Ffrappe\u002Fdesk\u002Fdoctype\u002Fsystem_console\u002Fsystem_console.json","\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fmigration-v4-vers-v5",{"title":5,"description":992},"1.v5\u002F5.administrer\u002F03.exploitation\u002F13.migration-v4-vers-v5","29HcvAZ0OIi9EE_5TDPGlI_iJzg2258jl4mNxYLRGPw",{},1793871946630]