Comment configurer un CRM personnel avec Monica sur Ubuntu 20.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Le modèle traditionnel de gestion des données Gestion de la relation client (CRM) est adapté aux relations entreprise-à-plusieurs-clients. Les logiciels CRM s'efforcent d'organiser et d'analyser les grandes quantités de données que les entreprises recueillent auprès des clients, tout en fournissant une assistance dans la coordination des canaux de communication. Afin d'aider les entreprises à renforcer les relations qu'elles entretiennent avec chacun de leurs nombreux clients individuels, les logiciels CRM génèrent des informations dans le but d'améliorer la satisfaction des clients, la fidélisation des clients, la croissance des ventes, etc.

L'équipe derrière Monica appelle son produit un "CRM personnel". Monica prend les principes commerciaux mentionnés précédemment et les applique aux relations personnelles entre les gens ordinaires. Tout ce dont vous voulez vous souvenir sur vos amis et votre famille peut être stocké et organisé dans Monica.

Ce didacticiel vous guidera tout au long d'une installation manuelle complète de Monica. Cette version de Monica est complète, entièrement gratuite et open-source, et vous offre le contrôle le plus granulaire sur votre configuration.

Conditions préalables

Avant de commencer, vous devez disposer des éléments suivants :

Avertissement : Si votre serveur dispose de moins de 1,5 Go de RAM, les tâches Yarn de ce didacticiel d'installation prendront non seulement beaucoup plus de temps, mais pourront également échouer. Cela rend l'installation impossible à terminer. Dans ce scénario, le passage à un serveur avec une plus grande quantité de RAM est la seule solution.


Étape 1 - Création d'une base de données MySQL et d'un utilisateur pour le stockage persistant

Monica a besoin d'un endroit pour stocker toutes vos données saisies, et l'équipe derrière Monica recommande d'utiliser MySQL. MySQL s'est avéré fiable dans de nombreux environnements de production et fait partie de la pile technologique LAMP (système d'exploitation Linux, serveur Web Apache, base de données MySQL, langage de programmation PHP) que Monica utilise.

Vous devrez créer une base de données et un utilisateur MySQL à utiliser avec Monica, puis accorder à cet utilisateur les privilèges appropriés.

Commencez par vous connecter à la console MySQL :

sudo mysql

Créez une base de données configurée pour gérer les données de Monica, en la remplaçant par le nom de votre base de données préférée :

CREATE DATABASE monicadb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Créez un nouvel utilisateur avec un nom d'utilisateur et un mot de passe de votre choix. Chaque action de base de données que vous validez avec Monica est effectuée via cet utilisateur, alors souvenez-vous du nom d'utilisateur et du mot de passe que vous choisissez :

CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'strong_mysql_password';

Accordez à ce nouvel utilisateur des privilèges sur la nouvelle base de données que vous venez de créer :

GRANT ALL ON monicadb.* TO 'sammy'@'localhost';

Pour que les nouveaux privilèges que vous venez d'accorder prennent effet, rechargez les tables de droits de MySQL :

FLUSH PRIVILEGES;

Vous pouvez maintenant quitter la console MySQL en saisissant :

exit

Vous avez fini de préparer votre base de données, en vous assurant que toutes les données que vous avez saisies dans Monica seront conservées.

Étape 2 - Clonage et configuration de Monica

L'installation de Monica nécessite que vous la cloniez à partir du dépôt de code officiel de Monica.

Tout d'abord, vous devez disposer des autorisations appropriées pour cloner Monica dans le répertoire de site Apache par défaut à l'aide de git. Utilisez chown pour définir votre utilisateur Linux actuel comme propriétaire de ce répertoire afin d'obtenir les autorisations appropriées :

sudo chown -R $USER:$USER /var/www

Par défaut sur Ubuntu, Apache sert le contenu du répertoire /var/www/html/. La commande suivante utilise git pour cloner le référentiel Monica dans un répertoire nommé /var/www/monica/. Plus loin dans ce guide, vous configurerez un hôte virtuel Apache pour servir Monica à partir de ce répertoire :

git clone https://github.com/monicahq/monica.git /var/www/monica

Après avoir exécuté cette commande, vous avez un clone du référentiel officiel de Monica sur /var/www/monica. Bien que vous ayez maintenant un clone fonctionnel, vous devez sélectionner la dernière version de Monica. Utilisez git pour fetch les dernières métadonnées, qui incluent les balises git qui pointent vers la dernière version de Monica, puis utilisez checkout pour sélectionner une version à utiliser.

Tout d'abord, accédez à votre dépôt cloné :

cd /var/www/monica

Puis fetch les dernières données de git :

git fetch

Ensuite, checkout la dernière version de Monica utilisant git, qui est marquée par les balises git que vous avez obtenues via fetch. Pour choisir la dernière version, consultez la page de publication Monica. Au moment de la rédaction de cet article, la dernière version de Monica est 3.7.0, mais remplacez-la en conséquence :

git checkout tags/v3.7.0

Maintenant que vous disposez de la dernière version, vous pouvez commencer à configurer Monica. Monica s'appuie sur les variables d'environnement pour la configuration. Un exemple de fichier de configuration est fourni par l'équipe Monica, mais vous ne le modifierez pas directement. Faites plutôt votre propre copie de ce fichier de configuration en exécutant la commande suivante :

cp .env.example .env

Ouvrez votre fichier de configuration nouvellement copié avec nano, ou votre éditeur de texte préféré :

nano .env

Dans ce fichier, définissez vos informations d'identification MySQL. Assurez-vous qu'ils correspondent à la manière dont vous avez configuré votre base de données à l'Étape 1. Faites défiler le fichier jusqu'à ce que vous trouviez les lignes suivantes et remplacez vos données en conséquence :

/var/www/monica/.env

. . .
DB_DATABASE=monicadb
DB_USERNAME=sammy
DB_PASSWORD=strong_mysql_password
. . .

Une fois inséré, enregistrez et quittez votre éditeur de texte. Si vous utilisez nano, appuyez sur CTRL+O pour enregistrer votre fichier, puis appuyez sur CTRL+X pour quitter.

Étape 3 - Installation des plugins PHP et des gestionnaires de packages

Maintenant que Monica est configurée et liée à une base de données, il est temps de configurer une interface pour interagir réellement avec Monica. PHP et Node.js sont déjà installés comme prérequis pour ce tutoriel. Vous devez également installer des plugins PHP, Composer avec le framework Laravel et Yarn pour construire une interface appropriée pour Monica.

Commencez par installer les plugins PHP requis par Monica :

sudo apt install php-bcmath php-cli php-curl php-common \
 php-fpm php-gd php-gmp php-intl php-json php-mbstring \
 php-mysql php-opcache php-redis php-xml php-zip

Ensuite, installez Composer, qui agit en tant que gestionnaire de dépendances pour PHP. Composer est également le gestionnaire de dépendances préféré de Laravel, qui est le framework Web qui alimente Monica en utilisant PHP.

Téléchargez le programme d'installation officiel de Composer dans /tmp, un dossier temporaire qui est un bon emplacement pour les fichiers d'installation jetables afin d'éviter l'encombrement sur votre serveur :

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Installez Composer, en spécifiant l'emplacement d'installation réel et la convention de dénomination avec les indicateurs --install-dir et --filename :

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin/ --filename=composer

Avec Composer installé, vous devez installer un autre gestionnaire de dépendance : Yarn. Alors que Composer est un gestionnaire de dépendances pour PHP, Yarn gère les dépendances JavaScript. Avec Node.js déjà installé dans les prérequis, vous avez accès à la méthode préférée d'installation de Yarn, qui consiste à utiliser npm.

npm est également un gestionnaire de packages JavaScript, et tandis que Yarn et npm ont des fonctionnalités qui se chevauchent, Yarn a été conçu pour répondre à des besoins différents. Cela inclut la résolution des problèmes avec npm concernant sa stabilité et sa sécurité.

La méthode conventionnelle d'installation de Yarn consiste à l'installer globalement. Cela garantit que tous les outils de test et d'automatisation d'un projet utilisent exactement la même version de Yarn, ce qui évite les incohérences. Installez Yarn en saisissant :

sudo npm install --global yarn

Une fois vos gestionnaires de packages installés, l'étape suivante consiste à faire en sorte que Composer et Yarn installent réellement les packages et les actifs qu'ils gèrent.

Étape 4 - Installation des packages de dépendance et préparation des actifs

Composer gère l'installation de tous les packages de dépendance PHP requis par Monica. Dans la commande suivante, --no-interaction ignore les invites de confirmation pendant le processus, car il y a une quantité difficile de dépendances à installer. --no-dev ignore l'installation des outils de développement dont vous n'aurez pas besoin. Pour installer Composer, entrez :

composer install --no-interaction --no-dev

Tant que la commande se termine avec succès, ce n'est pas grave si le résultat n'est pas exactement le même que cet exemple :

OutputInstalling dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 183 installs, 0 updates, 0 removals

. . .

Package manifest generated successfully.
92 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> Illuminate\Foundation\ComposerScripts::postInstall

Ensuite, utilisez Yarn pour installer les packages frontaux JavaScript requis par Monica :

yarn install

Tous les avertissements de dépendance sont normaux et non critiques tant que l'installation se déroule complètement :

Outputyarn install v1.22.18
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "@babel/[email protected]^7.15.8".

. . .

Done in 5.85s.
Done in 80.32s.

Monica est livrée avec des ressources statiques telles que des polices, des images, des fichiers JavaScript et CSS qui doivent être préparés avant de pouvoir être servis par le site frontal de Monica. Il est également livré avec un script production qui automatise ce processus pour vous. Utilisez la commande yarn run, qui prend un nom de script comme argument. Cela peut prendre beaucoup de temps, puisqu'il s'agit de préparer des assets statiques :

yarn run production

Encore une fois, il est normal d'avoir plusieurs avertissements de dépendance et d'obsolescence. Cela peut être ignoré en toute sécurité tant que la commande se termine.

Outputyarn run v1.22.18
$ php artisan lang:generate -vvv
Created: public/js/langs/vi.json
Created: public/js/langs/es.json
Created: public/js/langs/tr.json

. . .

webpack compiled successfully
Done in 79.24s.

Avec les dépendances mises en place par Composer et Yarn, il vous reste à terminer la configuration du framework Laravel. Chaque projet Laravel nécessite que la variable d'environnement APP_KEY soit définie. Cela se fait généralement automatiquement dans un projet Laravel conventionnel, mais puisque vous clonez un projet Laravel existant à partir du référentiel Monica, vous devez le faire manuellement.

Il s'agit d'une tâche très courante, c'est pourquoi l'équipe Laravel a fourni la commande suivante pour générer et définir votre clé d'application :

php artisan key:generate

Avec votre jeu de clés d'application, vous pouvez maintenant préparer Laravel pour une utilisation spécifique avec Monica. La commande suivante configure Laravel pour un environnement de production. Laravel initialise les migrations de base de données nécessaires, efface les caches, amorce la base de données, configure les liens symboliques et crée votre premier compte Monica.

Entrez ce qui suit, en remplaçant votre adresse e-mail et votre mot de passe souhaités pour votre premier compte Monica :

php artisan setup:production --email=your_email_address --password=your_password -v

Lorsque vous y êtes invité, tapez yes pour confirmer la configuration et appuyez sur ENTER pour continuer.

Output You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
 > yes

✓ Maintenance mode: on
'/usr/bin/php7.4' 'artisan' down --retry="10"

✓ Clear config cache
'/usr/bin/php7.4' 'artisan' config:clear

. . .


Setup is done. Have fun.

Les dépendances de Monica sont maintenant entièrement installées et votre premier compte Monica a été créé.

Étape 5 - Configuration d'une tâche Cron pour maintenir les processus d'arrière-plan en cours d'exécution

Monica a besoin de plusieurs processus d'arrière-plan pour s'exécuter en permanence. Cela fournit des fonctionnalités telles que des rappels programmés et des statistiques de calcul périodiques, avec une liste complète trouvée ici.

Monica gère cela grâce à l'utilisation de cron, qui se spécialise dans la gestion des tâches planifiées ou périodiques. Vous pouvez les ajouter en saisissant d'abord :

sudo crontab -u www-data -e

Si c'est la première fois que vous utilisez crontab, vous serez invité à choisir votre éditeur de texte préféré. Pour choisir nano, tapez 1 puis appuyez sur ENTER. Maintenant, vous pouvez ajouter les tâches Laravel périodiques de Monica en tant que cron planifié. Étant donné que les journaux de sortie et d'erreurs pour ces tâches planifiées ne sont pas nécessaires, vous pouvez définir /dev/null comme destination, ce qui équivaut à la suppression des données. Insérez ce qui suit à la fin du fichier :

* * * * * php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

Lorsque vous avez terminé, enregistrez et quittez votre éditeur de texte. Avec cela, vous vous êtes assuré que Monica vous fournit toujours les dernières statistiques et rappels en lui permettant d'exécuter périodiquement des tâches en arrière-plan.

Étape 6 - Configuration d'Apache pour servir votre frontend Monica

Maintenant que votre interface pour Monica est configurée, vous pouvez maintenant préparer votre serveur Web Apache en modifiant les autorisations de répertoire et en activant les modules requis.

Tout d'abord, accordez à l'utilisateur et au groupe www-data de votre serveur l'accès à vos ressources statiques afin qu'elles puissent être diffusées via Internet :

sudo chown -R www-data:www-data /var/www/monica/storage

Ensuite, vous dirigerez votre serveur Web Apache vers l'emplacement où Monica existe actuellement sur votre système. Cela nécessite la configuration d'un fichier de configuration Apache, mais ce fichier nécessite l'activation du module rewrite. Ce module vous permet de réécrire les URL dans des chemins plus clairs et lisibles en fonction des conditions que vous définissez.

Activez le module Apache rewrite en saisissant :

sudo a2enmod rewrite

Vous pouvez maintenant utiliser le module rewrite dans vos fichiers de configuration Apache. Créez votre fichier de configuration Apache principal pour Monica en saisissant :

sudo nano /etc/apache2/sites-available/monica.conf

Pour une nouvelle installation, l'équipe Monica recommande la configuration Apache suivante. Cette configuration fournit la configuration de base d'Apache, y compris la gestion des requêtes pour les pages Web de Monica, le service d'actifs statiques tels que JavaScript, CSS et les images, et la configuration des journaux d'erreurs et d'accès.

Monica est configurée pour accepter l'adresse IP de votre serveur ou, si vous en avez configuré une, le nom de domaine de votre serveur. Insérez ce qui suit dans votre fichier de configuration Apache, en remplaçant l'un d'entre eux à la place de server_domain_or_IP :

/etc/apache2/sites-available/monica.conf

<VirtualHost *:80>
    ServerName server_domain_or_IP

    ServerAdmin [email protected]
    DocumentRoot /var/www/monica/public

    <Directory /var/www/monica/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Lorsque vous avez terminé, enregistrez et quittez votre éditeur de texte.

Pour commencer à utiliser votre site Monica, activez d'abord votre nouveau site, puis désactivez le site par défaut fourni avec toutes les installations Apache.

Tout d'abord, activez votre nouveau site Monica :

sudo a2ensite monica.conf

Ensuite, désactivez la page de destination Apache par défaut :

sudo a2dissite 000-default.conf

Vous êtes maintenant prêt à démarrer votre serveur Web. Afin de servir les pages de manière plus optimale, l'équipe de Monica recommande d'utiliser le FPM (FastCGI Process Manager) de PHP qui optimise l'interaction entre PHP et votre serveur Web Apache. FPM, par rapport à l'implémentation FastCGI originale pour PHP, est beaucoup plus performant dans sa gestion des processus générés par les requêtes adressées à votre serveur Web.

Pour utiliser FastCGI, activez-le d'abord, puis définissez les variables à envoyer au module FastCGI. Entrez ce qui suit pour activer FastCGI dans Apache :

sudo a2enmod proxy_fcgi setenvif

Pour activer FPM, activez d'abord son fichier de configuration. Ce fichier existe avec un nom contenant la version de PHP que vous utilisez actuellement. Vous pouvez trouver la version actuelle de votre PHP en saisissant :

php -v

Votre version PHP est sortie en réponse. Vous n'avez qu'à noter les deux premiers chiffres du numéro de version de PHP.

OutputPHP 7.4.3 (cli) (built: Mar  2 2022 15:36:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Avec ce numéro de version, vous pouvez activer FPM en saisissant ce qui suit, en remplaçant votre version PHP en conséquence :

sudo a2enconf php7.4-fpm

FPM doit maintenant être redémarré avant de pouvoir fonctionner :

sudo systemctl restart php7.4-fpm

Une fois vos modifications en place, validez votre fichier de configuration Apache :

sudo apache2ctl configtest

Tant que la ligne Syntax OK est émise, les autres avertissements peuvent être ignorés. Enfin, redémarrez Apache pour appliquer toutes les modifications précédentes :

sudo systemctl restart apache2

Ouvrez votre navigateur Web et saisissez le nom de domaine ou l'adresse IP de votre serveur dans la barre d'adresse :

http://server_domain_or_IP

L'écran suivant de Monica se charge en réponse :

Vous pouvez maintenant vous connecter à votre compte Monica précédemment créé avec votre_adresse_email et votre_mot de passe pour accéder à la page d'accueil de Monica.

Étape 7 - Installation de Certbot et configuration des certificats TLS

Votre site Monica est maintenant opérationnel, mais si vous envisagez de rendre vos données accessibles via Internet avec un domaine de serveur, il est fortement recommandé de le sécuriser avec le cryptage TLS. Actuellement, votre site est accessible via HTTP, ce qui convient aux tests et à l'utilisation sur votre ordinateur local.

Pour le sécuriser, vous devez modifier un paramètre dans Monica pour autoriser uniquement le trafic HTTPS vers votre site Monica. HTTPS nécessite un certificat TLS, installez donc Certbot pour obtenir un certificat TLS via l'autorité de certification gratuite Let's Encrypt.

Tout d'abord, ouvrez .env :

nano .env

Le paramètre que vous devez modifier est APP_ENV. Par défaut, il est défini sur local pour autoriser le trafic HTTP. Changez-le en production pour limiter le trafic à HTTPS uniquement. Recherchez et modifiez la ligne :

/var/www/monica/.env

. . .
APP_ENV=production
. . .

Lorsque vous avez terminé, enregistrez et quittez votre éditeur de texte.

En supposant que vous ayez suivi les prérequis pour installer Apache, votre pare-feu autorise uniquement les connexions sur le port 80 pour le trafic HTTP. Afin d'autoriser également le trafic HTTPS, ajoutez cette règle de pare-feu :

sudo ufw allow 'Apache Full'

De plus, vous devez supprimer la règle de pare-feu Apache précédemment appliquée qui est désormais redondante :

sudo ufw delete allow 'Apache'

Une fois votre pare-feu prêt, installez Certbot et le plugin Certbot qui l'intègre à Apache :

sudo apt install certbot python3-certbot-apache

Ce plugin Apache permet à Certbot de regarder dans vos fichiers de configuration Apache et de vous demander de manière interactive les domaines de serveur que vous avez déjà configurés dans monica.conf. Pour démarrer le processus interactif de création d'un certificat TLS pour votre domaine, exécutez la commande suivante :

sudo certbot --apache

Entrez votre adresse e-mail valide et acceptez les conditions d'utilisation. Certbot détectera votre server_domain défini précédemment dans monica.conf et vous demandera si vous souhaitez rediriger tout le trafic HTTP vers HTTPS. Acceptez cette option de redirection, car Monica est désormais configurée pour autoriser uniquement le trafic HTTPS.

Certbot téléchargera votre certificat et rechargera automatiquement Apache avec la nouvelle configuration et les nouveaux certificats.

OutputCongratulations! You have successfully enabled https://test.do-community.com
. . .

Visitez à nouveau votre site Web et il vous redirigera automatiquement de HTTP vers HTTPS. Votre site est maintenant sécurisé avec le cryptage TLS.

Conclusion

Vous avez maintenant terminé la configuration de Monica et êtes prêt à commencer à l'utiliser. Monica est construite autour d'une interface Web qui se veut intuitive à utiliser. Pour plus d'informations sur Monica, consultez le dépôt officiel de Monica.

Si vous êtes intéressé par d'autres outils auto-hébergés destinés aux entreprises, vous pouvez consulter Comment installer Odoo sur Ubuntu 20.04 avec Docker. Odoo est un outil de planification des ressources d'entreprise (ERP) open source, répondant aux besoins des entreprises comme la comptabilité, la paie, la gestion des stocks, etc.