Installation de Crème CRM 2.6
#1
Introduction

Il s'agira ici d'installer Creme 2.6 soit depuis zéro, soit depuis une installation de Creme 2.5 (notez que vous ne devriez migrer que d'une version à la fois -- donc si vous êtes en 2.4, vous devez migrer vers 2.5 avant de pouvoir migrer vers 2.6 par exemple).

Ce tutoriel d'installation parle des plateformes suivantes :
  • GNU/Linux en se concentrant sur Debian & Ubuntu ; lorsque des noms de paquets sont donnés, ce sont les noms dans ces 2 distributions, et il vous faudra chercher les équivalents sur votre propre distribution (n'hésitez pas pas à nous indiquer si vous avez des noms de paquets différents -- ils peuvent changer selon les versions de Debian par example -- ou si vous avez installé sur une autre distribution, afin que nous puissions améliorer ce tutoriel).
  • Windows ; attention l'installation sous Windows est un peu plus complexe à cause du manque par défaut d'un gestionnaire de paquets. En plus ce n'est pas la plateforme la plus testée (mais si vous avez des problèmes/retours/patches vous pouvez en parler dans les commentaires notamment).
Le code de Creme ne faisant pas spécialement de "linuxeries", l'installer sur d'autres Unix (comme MacOSX) ne devrait pas dans l'absolu poser de souci particulier. Il nous est cependant difficile pour le moment de vous indiquer une marche à suivre précise n'utilisant pas (encore) ces systèmes. Là encore, tout retour de personnes ayant essayé est le bienvenu ; nous savons par exemple que des gens font tourner Creme avec succès sur FreeBSD.

Pour ce tutoriel d'installation de Crème CRM on va faire les choses du mieux possible. On va donc installer des choses qui pourraient vous sembler inutiles mais qui à terme permettront d'avoir une installation pérenne et qui ne rentrera pas en collision avec d'autres logiciels que vous pourriez vouloir installer.

Ce tutoriel vous permet d'installer tout le nécessaire pour faire fonctionner Crème avec le serveur de développement intégré dans Django. Le serveur de développement n'est pas une façon pérenne de faire fonctionner une application Django. Mais c'est un moyen simple de vérifier que tout fonctionne et vous pouvez faire quelques tests avec pour vérifier que Crème vous convient.  Le tutoriel vous permettant d'utiliser Apache avec Crème (plus compliqué à faire fonctionner, mais c'est une façon pérenne de faire les choses) est le sujet d'un autre billet indiqué à la fin.

Une remarque très importante : si l'utilisation du serveur de développement est déconseillé pour une utilisation sur du long terme dans le cadre d'une machine personnelle, elle est par contre totalement interdite dans le cadre d'un hébergement sur un serveur. Si vous comptez installer Crème  tout de suite sur un serveur, il ne faut pas, pas une seule seconde, utiliser le serveur de développement. En effet celui-ci est fait pour le test et rien d'autre. Il n'est pas prévu, ni en terme de performance ni en terme de sécurité, pour être utilisé dans un vrai contexte de production.

Avant propos

Notre objectif est d'installer & configurer un environnement Virtualenv. Virtualenv vous permet en effet d'avoir plusieurs environnements virtuels Python. L’intérêt est de pouvoir cloisonner les dépendances par projet. Vous êtes ainsi sûr que votre Crème n’arrêtera pas de fonctionner juste parce que vous avez dû mettre à jour une librairie Python pour pouvoir installer un autre logiciel. On ne va pas se contenter d'installer Virtualenv et on va installer aussi Virtualenvwrapper qui est une surcouche à Virtualenv et qui vous simplifiera les choses.

À propos des migrations : nous allons installer Creme 2.6 en parallèle de votre installation de Creme 2.5, en dupliquant les données. Ainsi en cas de gros problèmes vous pourrez revenir à votre installation précédente, que nous n'aurons pas détruite ; les éventuelles nouvelles données rentrées dans Creme 2.6 seront évidemment absentes de votre vieille installation, mais il s'agit ici plutôt de détecter les gros dysfonctionnements que vous auriez immédiatement.

Installation de Python

Pour commencer, il vous faut avoir Python 3 (au moins 3.8) sur votre système ainsi que l'installeur 'pip' qui permet de télécharger & installer des paquets python.

Sous Windows :
Il faut vous rendre ici : https://www.python.org/downloads/windows/
L'installeur pour Windows contient l'interpréteur Python ainsi que 'pip'.
Note: il est important que vous partiez d'une installation vide de Python ; si vous avez déjà des paquets externes pour Python qui ne sont pas installés dans un Virtual Env, ces derniers prendront le pas sur les paquets du Virtual Env (et donc de mauvaises versions de paquets pourront être utilisées empêchant Creme de fonctionner) (ce problème étant spécifique à Windows).

Sous Linux :
Utilisez le gestionnaire de paquet de votre distribution ; si vous êtes sous Debian ou Ubuntu il vous suffit de faire :
Code :
sudo apt-get install python3
sudo apt-get install python-setuptools
sudo apt-get install python-pip

Installation des logiciels externes

En plus de Python il va vous falloir installer :
  • Un serveur web compatible avec Python. Il y a le choix mais le grand classique reste Apache (version 2.4 actuellement). Comme indiqué plus haut vous pouvez aussi dans un premier temps utiliser le serveur de développement (inclus avec Django) avant de passer à un serveur de production comme Apache ou NginX.
  • Un serveur de base de données: MySQL (8 ou plus), MariaDB (10.4 ou plus) ou PostGreSQL (12 ou plus) ; dans un premier temps vous pouvez aussi tester avec une base SQLite (rien besoin d'installer c'est fourni avec Python).
  • Redis ; ça fonctionne avec des versions anciennes (3.X) ou récentes (4.X +) donc cela ne devrait pas être un problème (préférez les versions plus récentes évidemment): https://redis.io/download
    Note: sous Unix il est possible de s'en passer et d'utiliser une socket Unix afin de communiquer avec le serveur de job (vous pourrez regarder, une fois votre installation globalement fonctionnelle au setting JOBMANAGER_BROKER).
Sous Windows, wampserver vous facilitera sûrement la vie si vous comptez installer Apache et MySQL.

Sous Linux, vérifiez que vous avez les paquets suivants (ce sont les noms sous Ubuntu ; ils peuvent être différents sous une autre distribution évidemment) :
  • mysql-client & mysql-server (si vous utilisez MySQL)
  • postgresql & postgresql-client-common (si vous utilisez PostGreSQL)
  • redis-server (sauf si vous utilisez une socket Unix comme indiqué plus haut)
  • language-pack-fr

(Linux) Installation des bibliothèques "système"

Pour pouvoir installer certains paquets dans votre environnement Python, il vous faudra certaines bibliothèques de développement afin de pouvoir compiler certains paquets.

Avant d'aller plus loin, il faut que vous vérifiez que les packages suivants sont bien installés, sinon, installez les :
  • python3-dev
  • libmysqlclient-dev (si vous utilisez MySQL)
  • libpq-dev  (si vous utilisez PostGreSQL)
  • libjpeg-dev (et potentiellement les autres bibliothèques de gestion d'images selon vos besoins, comme libpng*-dev, libtiff*-dev, libgif-dev...)
  • libcairo-dev

Là encore, il s'agit des noms sous Debian/Ubuntu ; sous Fedora le suffixe est plutôt"-devel", donc "libpq-dev" s’appellera par exemple "libpq-devel".

Installation de l'environnement virtuel

Ensuite, vous allez installer Virtualenvwrapper qui installera automatiquement Virtualenv en même temps.
Pour cela il vous suffit de taper :
Code :
sudo pip install virtualenvwrapper

Sous Windows, installez aussi la version Windows de virtualenvwrapper :
Code :
sudo pip install virtualenvwrapper-win

Nous allons va pouvoir créer le Virtualenv pour Crème.
À propos des migrations : créez un nouveau Virtualenv pour Creme 2.6, et gardez donc intact celui de de votre Creme 2.5 .

Il reste une dernière petite config à faire, à savoir indiquer où vous allez stocker vos différents Virtualenv (Note: Ubuntu fait cette partie toute seule et vous pouvez l'ignorer -- les autres systèmes en ont besoin en revanche). Je vais partir du principe que vous utilisez le répertoire Envs à la racine de votre home. Il va falloir que dans le fichier de configuration de votre shell (.bashrc si vous utilisez le bash) vous configuriez la variable WORKON_HOME. Cela se fait de la manière suivante (pour bash) :
Code :
export WORKON_HOME=~/Envs

Une fois cela fait et après avoir rechargé votre configuration, vous pouvez créer votre Virtualenv en tapant la commande :
Code :
mkvirtualenv creme_2_6 -p chemin/vers/python3

Par exemple, sous Ubuntu 20.04, le chemin vers python 3 est "/usr/bin/python3".

Si "mkvirtualenv" n'existe pas (Debian 10):
Ajoutez au fichier .bashrc la ligne suivante
Code :
source /usr/local/bin/virtualenvwrapper.sh
 

Une fois que votre Virtualenv est créé, il faut l'activer pour votre console. Vous allez en effet installer de nouveaux packages Python et faire des commandes Django et tout doit se faire dans votre Virtualenv. L'activation d'un Virtualenv se fait avec la commande "workon". Si vous la lancez sans argument elle vous donnera la liste des Virtualenv possibles. Avec un nom de Virtualenv, elle l'active.

Ici, vous devez donc taper
Code :
workon creme_2_6

Il y a d'autre commandes intéressantes dans Virtualenvwrapper. Vous les trouverez dans le man. Une commande qui vous sera utile est la commande "deactivate" qui permet de sortir d'un Virtualenv pour revenir à votre environnement système classique.

Maintenant que vous avez activé votre Virtualenv, il vous faut installer le paquet creme-crm, qui installera aussi les dépendances nécessaires. Il existe des variantes, principalement pour choisir votre serveur de base de données (MySQL ou PostgreSQL -- SQLite n'ayant pas de besoin particulier). Les avantages et inconvénients des différents types de base sont expliqués plus bas si vous avez des doutes.

Si vous souhaitez utiliser SQLite, il vous suffit de taper :
Code :
pip install creme-crm~=2.6

Pour MySQL :
Code :
pip install creme-crm[mysql]~=2.6

Pour PostgreSQL :
Code :
pip install creme-crm[pgsql]~=2.6

Notes sur MariaDB

Si vous avez installé MariaDB plutôt que MySQL (paquet "libmariadbclient-dev" sur Debian10), et que vous avez une erreur " /bin/sh: 1: mysql_config: not found", créez le lien symbolique suivant :

Code :
ln -s /usr/bin/mariadb_config /usr/bin/mysql_config


Notes pour Windows:

Certains paquets (comme "mysqlclient") peuvent être retords à s'installer, et le site suivant, qui contient des paquets pré-compilés, pourrait grandement vous aider: https://www.lfd.uci.edu/~gohlke/pythonlibs/

Création de votre projet

Dans Creme 2.6, une instance est bien séparée des sources de Creme elles-mêmes. Nous allons lancer une commande qui va créer un répertoire contenant entre autres la configuration de votre instance. Placez vous donc dans votre arborescence à un endroit adéquate, et faîtes :

Code :
creme creme_start_project my_project26

Un répertoire "my_project26" a normalement été créé (note: c'est lui que vous devriez mettre sous version, avec git/mercurial/svn...). Déplacez vous dans ce répertoire (les commandes qui suivront partirons du principe qu'on est resté dans ce premier répertoire "my_project26") :

Code :
cd my_project26

Il contient principalement un autre répertoire s'appelant lui aussi "my_project26", dans lequel on trouve un fichier nommé "settings.py" qui va contenir la configuration de notre instance. Si vous ouvrez ce fichier vous trouverez quelques valeurs de bases définies par défaut, et pas mal d'explications sur les quelques valeurs qu'il reste à définir pour avoir une instance  fonctionnelle. On vous y explique aussi qu'il est important pour faire les choses proprement de séparer les settings liés à votre projet, et ceux liés à une instance en particulier. Mettons que plusieurs développeurs interviennent sur le projet, avec chacun une instance du projet sur sa machine en local (chaque instance utilisant une base de données de test en local) ; on voit que certains paramètres vont être partagés au niveau du projet (la langue, les modules installés...), et certains vont être spécifiques à chaque instance (la base de données...).

Éditez le fichier "my_project26/settings.py", et changez les valeurs suivantes, pour la langue et le fuseau horaire de base :

Code :
LANGUAGE_CODE = 'fr'
TIME_ZONE = 'Europe/Paris'

(on garde la listes des apps -- les modules Creme/Django -- par défaut ; elle est contenue par le setting INSTALLED_APP pour information). 

En ce qui concerne les paramètres liés à votre instance, les commentaires dans "settings.py" expliquent les différentes approches. Les administrateurs confirmés choisiront leur méthode préférée ; ici nous allons partir sur une méthode simple, facile à expliquer et à mettre en place. À la fin du fichier "settings.py", ajoutez ces quelques lignes qui importent les paramètres venant du fichier "local_settings.py" :

Code :
try:
    from .local_settings import *
except ImportError:
    pass

Note: un fichier "my_project26/local_settings.py", que nous allons remplir juste après, a normalement déjà été créé par la commande "creme_start_project". Si vous optez pour une autre méthode pour gérer vos paramètres d'instances (comme la méthode à base de variables d'environnement), vous pourrez le supprimer.

Cas d'une nouvelle installation

Depuis le répertoire "my_project26/" (celui le plus haut niveau), lancez la commande suivante :

Code :
creme build_secret_key --settings=my_project26.settings

Celle-ci a généré votre clé secrète, qu'il faudra mettre dans votre "local_settings.py", dans la variable SECRET_KEY (entre les '', à la place de la valeur par défaut).

Cas d'une migration depuis Creme 2.5

Copiez les valeurs présentes dans les fichiers "settings.py" & "local_settings.py" de votre vieille installation dans ceux de votre projet, notamment SECRET_KEY & DATABASES (nous revenons sur cette dernière juste après évidemment).

Dans votre installation de Creme 2.5, allez dans le répertoire configuré comme MEDIA_ROOT dans les vieux settings ("my_project25/my_project25/media/upload" par défaut). Si vous avez utilisé des Documents dans Creme, ou bien exporté des factures/Devis en PDF, vous devriez avoir des sous-répertoires ("documents", "billing" etc...). Si c'est bien le cas, copier ces répertoires (et leur contenu évidemment) dans le répertoire MEDIA_ROOT du nouveau projet ("my_project26/my_project26/media/upload", par défaut).


Configuration de la base de données

Attention, en cas de migration depuis Creme 2.5:  comme nous l'avons dit en introduction, nous allons dupliquer la base de données plutôt que d'en créer une nouvelle, donc n'oublier pas de mettre le nom de votre nouvelle base dans le fichier "local_settings.py" de votre projet. En effet comme il contient le nom de votre ancienne base, c'est celle-ci qui serait migrée (mas de panique si vous avez bien dupliqué au préalable, au pire votre ancienne base n'est pas perdu elle a juste un nouveau nom).

Pour le moment, la variable DATABASES doit contenir la valeur suivante (que nous allons modifier/compléter par la suite) :

Code :
DATABASES = {
    'default': {
        # Possible backends: 'postgresql', 'mysql', 'sqlite3'.
        'ENGINE': 'django.db.backends.sqlite3',

        # Name of the database, or path to the database file if using 'sqlite3'.
        'NAME': BASE_DIR / 'db.sqlite3',

        # Not used with sqlite3.
        'USER': '',
        'PASSWORD': '',

        # Set to empty string for localhost. Not used with 'sqlite3'.
        'HOST': '',

        # Set to empty string for default. Not used with 'sqlite3'.
        'PORT': '',

        # Extra parameters for database connection.
        # Consult backend module's document for available keywords.
        # 'OPTIONS': {},
    },
}

Avant de passer au déploiement de Crème proprement dit, on va devoir configurer la base de données. Creme est testé avec trois systèmes de gestion de base de données: SQLite, MySQL & PostgreSQL. Django permet aussi d'utiliser une base Oracle, mais nous n'avons jamais eu l'occasion de tester une telle configuration (mais pourquoi utiliser un SGBDR propriétaire quand l'offre libre est aussi bonne ?). Il existe aussi des backends pour d'autres SGBDR (firebird, sqlserver ...) qui sont distribués à part de Django ; là encore nous ne les avons pas testés, et ne pouvons garantir leur fonctionnement (mais si vous avez essayé, vos retours sont évidemment les bienvenus, ne serait-ce que par curiosité technique).

SQLite

SQLite est surtout utile si vous êtes un développeur, afin de tester rapidement votre travail. C'est aussi envisageable si vous comptez utiliser Creme
en tant qu'application monoposte et avec peu de données (c'est sûrement une mauvaise idée pour des dizaines de milliers de fiches). Si vous n'êtes pas dans ces 2 cas, nous vous déconseillons vivement une telle configuration.

Si vous choisissez SQLite, la configuration est très simple (pas d'utilisateur ou de mot de passe) ; éditez la variable DATABASES de votre local_settings.py ainsi :

Code :
DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.sqlite3',
        'NAME':     '/chemin/absolu/vers/un/fichier.db',
        'HOST':     '',
        'PORT':     '',
    },
}

Vous devez évidemment mettre une chemin valide en tant que NAME (le fichier sera créé s'il n'existe pas, mais faites attention que Creme ait bien les permissions d'écrire dans le répertoire choisi).

À propos des migrations : pour dupliquer une base SQLite il suffit de copier l'ancien fichier.

MySQL

MySQL est un choix classique pour un serveur de production ; il est très répandu et facile à configurer. En revanche, il n'est pas toujours possible de le configurer aussi finement qu'on le voudrait, et a tendance à voir ses performances varier étrangement au grès des versions (la plupart du temps dans le bon sens, mais pas toujours) . C'est donc un bon choix si vous le connaissez déjà, et que vous ne visez pas des volumes importants de données (pour quelques centaines de milliers de fiches ça devrait être satisfaisant -- ça dépend de votre matériel évidemment).

Pour que Crème puisse utiliser MySQL, il faut créer une base de données et un utilisateur qui a les droits sur celle-ci. Vous pouvez bien entendu le faire en graphique grâce à un outil d'administration de BD.

Voici comment le faire en console. Notez qu'en fonction de la version de MySQL les commandes peuvent changer ; les instructions suivantes fonctionnent avec MySQL 8 ; référez vous à la documentation de votre version de MySQL si les commandes ne fonctionnent pas.

À propos de MariaDB :
- les versions 10.4 et supérieures sont officiellement gérées par Django. En revanche nous sommes tombés plusieurs fois sur des erreurs un peu ésotériques (c'est aussi vrai avec MySQL ceci dit) et ce n'est pas forcément la base que nous vous conseillerions.
- certains utilisateurs ont rencontrés des soucis en migrant depuis leur instance de Creme 2.5 (sous MariaDB donc) ; les détails dans la section "Replissage de la base données"

À propos des migrations : il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. Par exemple dans PHPMyadmin, si vous allez sur votre ancienne base, il y  a un onglet "Opérations" qui contient une section "Copier la base de données vers" (qui permet de conserver les privilèges -- normalement la case pour les conserver est cochée par défaut). N'oubliez pas plus bas de mettre le nouveau nom dans la variable 'NAME'.

D'abord logguez vous dans MySQL avec la commande suivante :
Code :
mysql -u root -p

Puis passez sur la base de configuration avec la commande :
Code :
use mysql;

Ajoutez maintenant votre utilisateur (en remplaçant les valeurs d'exemple par vos propres valeurs) avec la commande :
Code :
CREATE USER 'cremeuser'@'localhost' IDENTIFIED BY '34jkfue1dioaA';

Puis nous créons la base de données :
Code :
CREATE DATABASE cremecrmdb;

et enfin nous donnons à votre l'utilisateur toutes les permissions sur la base de données de Creme :
Code :
GRANT ALL PRIVILEGES ON cremecrmdb.* TO 'cremeuser'@'localhost' WITH GRANT OPTION;

Éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez si nécessaire remplacer les noms de la base, de l'utilisateur et son mot de passe par les valeurs que vous avez défini précédemment)  :

Code :
DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.mysql',
        'NAME':     'cremecrmdb',
        'USER':     'cremeuser',
        'PASSWORD': '34jkfue1dioaA',
        'HOST':     '',    # Une chaîne vide pour le localhost.
        'PORT':     '',    # Une chaîne vide pour le port par défaut.
    },

PostgreSQL

PostgreSQL est sûrement le meilleur choix pour les volumes de données importants ; non seulement ses performances sont excellentes, mais c'est aussi le SGBDR le plus rigoureux en terme de cohérence des données.

Les instructions du début de ce tutoriel étaient plutôt faites pour un déploiement avec MySQL ; aussi il va falloir installer des paquets supplémentaires si vous souhaitez utiliser PostgreSQL.

Comme pour MySQL, il vous faut maintenant créer un utilisateur dédié à Creme, ainsi qu'une base sur lequel l'utilisateur a tous les droits. Là encore c'est possible en console comme en graphique (en graphique, le programme "pgAdmin III" fait un très bon travail).

À propos des migrations : comme déjà dit, il ne faut pas créer pas une base depuis 0, il faut dupliquer l'ancienne, et mettre les mêmes privilèges sur la nouvelle base. N'oubliez pas ci-dessous de mettre le nouveau nom dans la variable 'NAME'.

Lorsque c'est fait, éditez la variable DATABASES de votre local_settings.py ainsi (vous devrez remplacer les noms de la base de l'utilisateur et son mot de passe par les valeurs que vous avez choisies juste avant)  :

Code :
DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.postgresql',
        'NAME':     'nom_de_la_base',
        'USER':     'nom_de_l_utilisateur',
        'PASSWORD': 'm0t_de_p4$$',
        'HOST':     '',    # Une chaîne vide pour le localhost.
        'PORT':     '',    # Une chaîne vide pour le port par défaut.
    },


Remplissage de la base de données

Toujours dans le répertoire racine "my_project26/", tapez la commande suivante pour créer les tables de la base :
Code :
creme migrate --settings=my_project26.settings

À propos de MariaDB : certains utilisateurs ont rencontrés des soucis en migrant depuis leur instance de Creme 2.5, une erreur apparaissant lors ce cette étape. Ils s'en sont sorti avec la méthode (plutôt moche, on ne va pas se le cacher) suivante. Ils relancent la commande "migrate" tant que ça fait progresser le processus (l'erreur étant différente) ; si à un moment l'erreur provoquée reste toujours la même, ils génèrent le code SQL brute avec la commande "sqlmigrate" (en donnant le nom de la migration fautive en argument), exécutent ces commandes SQL une à une dans un shell MariaDB (des erreurs sont rencontrées pour les opérations déjà faites, c'est normal), puis finissent par relancer la commande "migrate".


Puis on remplit la base avec les données initiales (utilisateur administrateur, société initiale, configuration par défaut etc…) :
Code :
creme creme_populate --settings=my_project26.settings

Ne vous inquiétez pas des messages du genre , ils indiquent juste que certaines apps n'ont pas besoin de créer des données initiales.


Génération des bundles d'assets statiques

Il s'agit de créer des fichiers optimisés pour le CSS et le JavaScript, ainsi que des images avec des noms pensés pour être mises en cache intelligemment :
Code :
creme generatemedia --settings=my_project26.settings

Voici la sortie que vous devriez avoir :
Code :
Generating l10n.js with variation {'language': 'en'}
Generating l10n.js with variation {'language': 'fr'}
Generating lib.js with variation {}
Generating main.js with variation {}
Generating testlib.js with variation {}
Generating testcore.js with variation {}
Generating icecreammain.css with variation {}
Generating chantillymain.css with variation {}

Choix des apps installées

Pour des raisons de simplicité, nous avons choisi d'installer Creme avec sa liste d'apps par défaut, qui couvre la plupart des besoins courants. Sont écartées de cette liste l'app "mobile" pour proposer en plus un ensemble de vues plus adaptées aux smartphones, et "polls" qui permet de faire des questionnaires/sondages internes.

Creme étant modulaire, vous pouvez choisir plus finement les apps installées ; même si pour une première installation, vous devriez sûrement garder la liste de base (vous pouvez passer au chapitre suivant). Pour avoir une liste personnalisée, modifiez variable INSTALLED_APPS comme indiqué dans les commentaires de "project/settings.py".

2 points importants :
- vous ne pouvez enlever (en pratique mettez plutôt en commentaire avec un '#' en début de ligne) que les apps dans la section CREME OPTIONAL APPS, qui sont optionnelles comme l'indique le nom.
- dans la liste sont indiquées des dépendances ; certaines apps nécessitent la présence d'autres apps. Cependant pas de craintes, si vous oubliez une dépendance, Creme générera une erreur assez claire à ce sujet.

Choix avant l'installation

Si vous n'avez pas encore créé la base de données, vous pouvez juste commenter/dé-commenter les noms des apps optionnelles, avant de faire les étapes des chapitres précédents (migrate, creme_populate, generatemedia).

Ajouter des apps après l'installation

Si vous souhaitez ajouter des apps après installation (ex: après plusieurs jours/mois d'utilisation un besoin apparaît), dé-commentez les apps voulues (toujours en respectant les dépendances -- ex: si vous voulez "events", "opportunities" doit aussi être dé-commenté), puis lancez les même commandes que pour l'installation initiale: migrate, creme_populate, generatemedia.

(en effet il faut bien créer les nouvelles tables, les peupler, et aussi installer le nouveau JavaScript/CSS/...)

Désinstaller une app après l'installation

Il existe plusieurs mécanismes, comme la configuration visuelle du menu ou la désactivation des type de relation, qui permettent de rendre très peu visible une app globalement inutile, et vous devriez commencer par là (car aucun risque de casser quoi que ce soit). Mais si vous le souhaitez vraiment, vous pouvez réellement désinstaller une app.

C'est une opération un peu délicate, car des données relatives à l'app que vous voulez désinstaller peuvent exister en base, et être reliées à des données qui elles ne doivent pas être supprimées (car relatives à des apps que vous garder), tout en gardant un système cohérent... Donc :

- privilégiez les apps pour lesquelles vous n'avez pas créé de données (typiquement aucune fiche).
- faites une sauvegarde avant.

La désinstallation d'une app se fait grâce à une commande, "creme_uninstall". Notez qu'il faut désinstaller une app à la fois (c'est déjà assez délicat comme ça...) ; si vous voulez désinstaller plusieurs apps, alors appliquez la méthode de désinstallation plusieurs fois, en respectant là encore les dépendances (ex: pour désinstaller "events" et "opportunities", faites le dans cet ordre, pour qu'à aucun moment une app n'ait pas ses dépendances installées). L'app que vous désinstallez doit être présente dans votre INSTALLED_APPS.

Code :
creme creme_uninstall --settings=my_project26.settings app_a_desinstaller

Si tout s'est bien déroulé, la commande vous demandera une fois finie de mettre en commentaire l'app dans votre INSTALLED_CREME_APPS.

Lancement du serveur

Une fois cela fait il ne nous reste plus qu'à lancer le serveur de test en faisant :
Code :
creme runserver --settings=my_project26.settings

Vous pouvez maintenant vous connecter sur http://localhost:8000 pour voir que votre Crème fonctionne. La commande 'creme_populate' vous a indiqué qu'elle a créé un utilisateur "root" (mot de passe "root") ; utilisez cet utilisateur pour vous connecter. Vous êtes très vivement encouragé à changer immédiatement le mot de passe  (dans le menu en haut > icône rouage > Utilisateurs).

Mais, et je vais le répéter, ce serveur de développement n'est pas fait pour être utiliser dans un contexte de production. Par exemple, pour mettre en production avec Apache et mod_wsgi, vous pouvez suivre cet autre billet: https://www.cremecrm.com/forum/showthread.php?tid=110

Lancement du gestionnaire de jobs

Certaines fonctionnalités (import des fichiers CSV/XLS, envoi des campagnes d'e-mails...) sont effectuées par des jobs tournant en parallèle du serveur Web. Ces jobs sont gérés par un gestionnaire qui s'occupent de créer ces processus lorsque c'est nécessaire.

Ce gestionnaire doit être lancé à part, et tourner en permanence  ; si ce n'est pas le cas, la majorité de Creme fonctionnera parfaitement, mais pas les fonctionnalités basées sur les jobs. Si vous allez sur la liste des jobs (menu > Outils > Jobs) un message d'erreur vous indiquera si le gestionnaire est injoignable. Pour lancer le gestionnaire :
Code :
creme creme_job_manager --settings=my_project26.settings

Mise à jour

Il est évidemment conseillé de régulièrement faire des sauvegarde de votre base de données, ainsi que des fichiers télé-versés dans "my_project26/media/upload/" ; c'est d'autant plus vrai avant une mise-à-jour.

Vous pouvez vous tenir à jour des nouvelles releases grâce par exemple à la page du paquet sur pyPI qui explique comment faire faire (par exemple en suivant le flux RSS fait pour).

Plus tard lorsque sortiront des versions de corrections pour Creme2.6, vous pourrez mettre à jour Creme et ses dépendances avec (adaptez avec le tag utilisé auparavant suivant votre SGBD -- MySQL dans cet exemple) :

Code :
pip install -U creme-crm[mysql]==2.6.XYZ

Le fichier CHANGELOG.TXT contient les nouveautés, ainsi que des notes sur les commandes. Dans le doute vous pouvez toujours mettre à jour la base de données avec les commandes "migrate" & "creme_populate"  (au pire les commandes ne feront rien) et ré-générer les assets statiques comme au dessus avec "generatemedia".
  Répondre


Messages dans ce sujet
Installation de Crème CRM 2.6 - par genglert - 05-08-2024, 15:44

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)