Migrer vers la version 4 de Dokos
Si vous utilisez Dokos v3 en auto-hébergement, certaines étapes sont requises avant de mettre à jour votre installation vers la version 3 de Dokos.
Migrer vers la version 4 de Dokos
La version 4 de Dokos nécessite Python 3.10 ou Python 3.11 et NodeJS 18 pour fonctionner.
Si vous avez précédemment installé Dokos v3, une mise à jour de certains paquets logiciels et une migration du dossier bench est nécessaire avant d'installer Dokos v4.
📄 Ce guide est destiné aux installations de Dokos auto-hébergées sous Ubuntu.
Prérequis (Node 18, Python 3.10)
Installer NodeJS 18
Pour installer NodeJS 18 sur Ubuntu, vous pouvez utiliser le gestionnaire de versions nvm
, ou alternativement utiliser les commandes suivantes :
wget -qO- https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
node --version
Puis vérifiez l'installation avec node --version
.
Installer Python 3.10
apt
.Pour installer Python 3.10 sur Ubuntu, il est recommandé d'utiliser le paquet deadsnakes/ppa
. L'installation peut s'effectuer comme ci-dessous :
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.10
sudo apt-get install python3.10-dev
sudo apt-get install python3.10-distutils
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --config python3
python3 -V
Vous pouvez vérifier que Python 3.10 est installé avec python3 -V
, avant de poursuivre comme suit :
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
pip install dokos-cli --upgrade
Finaliser la migration
Migration de l'environnement virtuel de votre bench
Une fois Python 3.10 et Node 18 correctement installés, vous pouvez poursuivre avec la migration du dossier de bench vers la nouvelle version de Python.
bench
est déjà sous Python 3.10, vous pouvez passer cette étape..bench migrate-env python3.10
dokos-cli
utilise la version de Python par défaut du système.Ajout des nouvelles applications
Certains modules de Dokos sont désormais publiés dans des modules séparés. Si vous utilisez certaines de leurs fonctionnalités, commencez par les ajouter dans votre bench.
Webhsop
Cette application est à installer uniquement si vous utilisez les fonctionnalités eCommerce de Dokos.
bench get-app https://gitlab.com/dokos/webshop --branch v4
Montée de version de Dodock/Dokos
Après la récupération des nouvelles applications, changez de branche pour passer sur la version 4 de Dodock/Dokos.
bench switch-to-branch v4 frappe erpnext hrms payments --upgrade
Installation des nouvelles applications sur votre site
Installez les nouvelles applications sur votre site
bench install-app webshop
Relancez une mise à jour
Enfin, mettez à jour Dokos/Dodock normalement.
bench update --reset
Dépannage
python3 --version
pip --version
node --version
yarn --version
docli --version / bench --version
La migration du bench échoue
Si les prérequis sont correctement installés, il est normalement possible de migrer un bench d'une version de Python à une autre avec la commande bench migrate-env python3.10
.
Si jamais cela ne fonctionne pas, il peut être plus simple de créer un nouveau bench puis d'y déplacer un site depuis l'ancien bench.
Tout d'abord, créez un nouveau bench sous Python 3.10 avec la commande bench init bench-nouveau --python python3.10
Déplacez-y le dossier contenant votre site dans ce nouveau bench mv ~/bench-ancien/sites/mon_site ~/bench-nouveau/sites/
, puis exécutez la commande bench setup production {votre utilisateur} && bench update
dans le nouveau bench.
Vous aurez peut-être besoin d'installer de nouveau les applications tierces que vous avez pu installer. Vous pouvez consulter la liste de ces applications avec la commande cat ~/bench-ancien/sites/apps.txt
.
Python/apt-get
ne fonctionne plus
Si jamais votre installation globale de Python (Python 3.4 sous Ubuntu 18) ne fonctionne plus, vous pouvez réinstaller la version système de Python en suivant ce lien : https://askubuntu.com/questions/1196401/how-to-fix-python3-after-messing-it-up/1200793#1200793
ModuleNotFoundError: No module named virtualenv
Si cette erreur se produit, il suffit de reinstaller virtualenv avec la commande pip install virtualenv
.
Activer les scripts serveur si besoin
Pour des raisons de sécurité, les scripts serveur sont maintenant désactivés par défaut. Pour les activer, il faut configurer la clé server_script_enabled
dans les paramètres du bench avec bench set-config -g server_script_enabled 1
. Il n'est pas possible d'activer les scripts serveur au niveau d'un site.