Comment installer ERPNext Open Source ERP sur CentOS 7

ERP ou Enterprise Resource Planning est une suite d'applications d'entreprise utilisée pour gérer les principaux processus métier. ERPNext est une application ERP auto-hébergée gratuite et open source écrite en Python. Il utilise Node.js pour le frontal et MariaDB pour stocker ses données. ERPNext fournit une interface Web facile à utiliser qui permet aux entreprises de gérer les tâches quotidiennes. Il contient des modules pour la comptabilité, le CRM, la GRH, la fabrication, le POS, la gestion de projet, les achats, la gestion des ventes, la gestion des entrepôts, etc. ERPNext peut être utilisé pour gérer différentes industries telles que les prestataires de services, la fabrication, la vente au détail et les écoles.

Dans ce tutoriel, nous allons installer ERPNext sur CentOS 7.

Conditions préalables

Pour ce didacticiel, nous utiliserons erp.example.comle nom de domaine pointé vers le serveur. Veuillez vous assurer de remplacer toutes les occurrences de erp.example.compar votre nom de domaine réel.

Mettez à jour votre système de base à l'aide du guide " Comment mettre à jour CentOS 7 ". Une fois votre système mis à jour, installez Python.

Installer les outils de développement

ERPNext a besoin de Python version 2.7 pour fonctionner. Python 2.7 est installé par défaut dans toutes les instances de serveur CentOS. Vous pouvez vérifier si la version installée de Python en exécutant:

python -V

Vous devriez obtenir la sortie similaire.

[user@vultr ~]$ python -V
Python 2.7.5

Bien que la version installée de Python ne soit pas la dernière, elle fonctionne sans accroc. Changer la version par défaut de Python peut casser YUM.

Installez les packages dans le Development toolsgroupe requis pour la compilation des fichiers d'installation.

sudo yum groupinstall -y "Development tools"

Installez quelques dépendances supplémentaires:

sudo yum install -y redhat-lsb-core git python-setuptools python-devel openssl-devel libffi-devel

Installez l' pipoutil Python . Pip est le gestionnaire de dépendances pour les packages Python.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

La commande ci-dessus installera Pip sur votre système. Pour vous assurer que vous disposez de la dernière version de pipet setuptools, exécutez:

sudo pip install --upgrade pip setuptools

Installez Ansible à l'aide de Pip. Ansible automatise l'approvisionnement logiciel, la gestion de la configuration et le déploiement d'applications.

sudo pip install ansible

Installer le serveur MariaDB

MariaDB est un fork du serveur de base de données MySQL. Installez MariaDB en exécutant.

sudo yum -y install mariadb mariadb-server mysql-devel

Le moteur de stockage Barracuda est requis pour la création de bases de données ERPNext, vous devrez donc configurer MariaDB pour utiliser le moteur de stockage Barracuda. Modifiez le fichier de configuration MariaDB par défaut my.cnf.

sudo nano /etc/my.cnf

Ajoutez les lignes suivantes sous la symbolic-links=0ligne.

innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

Démarrez MariaDB et activez-le pour démarrer automatiquement au démarrage.

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Avant de configurer la base de données, vous devrez sécuriser MariaDB. Vous pouvez le sécuriser en exécutant le mysql_secure_installationscript:

sudo mysql_secure_installation

Le mot de passe root de MariaDB vous sera demandé. Par défaut, aucun mot de passe root n'est défini sur MariaDB. Appuyez sur la touche "Entrée" pour continuer. Définissez un mot de passe fort pour l'utilisateur root de votre serveur MariaDB et répondez "Y" à toutes les autres questions posées. Les questions posées sont explicites.

Installer Nginx, Nodejs et Redis

Comme le référentiel EPEL est installé par défaut dans toutes les instances Vultr CentOS 7, vous pouvez installer directement Redis et Nginx. Mais pour installer la dernière version de Node.js, vous devrez ajouter le référentiel Nodesource dans votre système.

Ajoutez le référentiel Nodesource pour Node.js 8.x.

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Installez Nginx, Nodejs et Redis:

sudo yum -y install nginx nodejs redis

Démarrez Nginx et activez-le pour démarrer au démarrage en exécutant:

sudo systemctl start nginx
sudo systemctl enable nginx

Démarrez Redis et activez-le pour démarrer au démarrage en exécutant:

sudo systemctl start redis
sudo systemctl enable redis

Installer PDF Converter

Le wkhtmltopdfprogramme est un outil en ligne de commande qui convertit HTML en PDF à l'aide du moteur de rendu QT Webkit. Installez les dépendances requises:

sudo yum -y install libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

Téléchargez la dernière version de wkhtmltopdf.

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Extrayez l'archive en exécutant:

sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt

La commande ci-dessus extraira l'archive vers /opt/wkhtmltox. Créez un lien logiciel afin que wkhtmltopdfet wkhtmltoimagepuisse être exécuté globalement comme une commande.

sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage

Vous pouvez maintenant exécuter la wkhtmltopdf -Vcommande pour vérifier si cela fonctionne, vous verrez:

[user@vultr ~]$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)

À ce stade, nous avons installé toutes les dépendances requises. Vous pouvez maintenant procéder à l'installation de Bench.

Installer le banc

Benchest un utilitaire de ligne de commande fourni par Frappe pour installer et gérer l'application ERPNext sur un système basé sur Unix à des fins de développement et de production. Bench peut également créer et gérer la configuration de Nginx et du superviseur.

Créez un nouvel utilisateur pour exécuter les processus Bench dans l'environnement isolé.

sudo adduser bench -d /opt/bench

Modifiez le mot de passe de l'utilisateur.

sudo passwd bench

Fournissez des sudoautorisations à l' benchutilisateur.

sudo usermod -aG wheel bench

Connectez-vous en tant benchqu'utilisateur nouvellement créé :

sudo su - bench

Clonez le référentiel Bench dans /opt/bench:

cd /opt/bench
git clone https://github.com/frappe/bench bench-repo

Installez le banc à l'aide de pip.

sudo pip install -e bench-repo

Une fois Bench installé, poursuivez l'installation d'ERPNext à l'aide de Bench.

Installer ERPNext à l'aide de Bench

Initialisez un répertoire bench avec le framework frappe installé. Pour garder tout bien rangé, nous travaillerons sous /opt/benchrépertoire. Bench configurera également des sauvegardes régulières et des mises à jour automatiques une fois par jour.

cd /opt/bench
bench init erpnext && cd erpnext

Créez un nouveau site Frappe:

bench new-site erp.example.com

La commande ci-dessus vous demandera le mot de passe root MySQL. Fournissez le mot de passe que vous avez défini précédemment pour l'utilisateur root MySQL. Il vous demandera également de définir un nouveau mot de passe pour le compte administrateur. Vous aurez besoin de ce mot de passe ultérieurement pour vous connecter au tableau de bord administrateur.

Téléchargez les fichiers d'installation d'ERPNext à partir du référentiel git distant à l'aide de Bench.

bench get-app erpnext https://github.com/frappe/erpnext

Installez ERPNext sur votre site nouvellement créé:

bench --site erp.example.com install-app erpnext

ERPNext est installé sur votre serveur. Vous pouvez démarrer l'application immédiatement pour vérifier si l'application a bien démarré:

bench start

Cependant, vous devez arrêter l'exécution et poursuivre la configuration de l'application pour une utilisation en production.

Superviseur de l'installation et Nginx

Par défaut, l'application ERPNext écoute sur le port 8000, pas sur le port HTTP standard 80. En outre, l'exécution du serveur Web intégré pour une utilisation en production n'est pas recommandée car nous allons exposer le serveur au monde. Par conséquent, vous devez utiliser un serveur Web de production comme proxy inverse tel qu'Apache ou Nginx. Dans ce tutoriel, nous utiliserons Nginx comme proxy inverse car il peut être configuré automatiquement à l'aide de Bench. Bench peut générer et installer automatiquement la configuration selon la configuration ERPNext.

Bien que nous puissions démarrer l'application à l'aide de la commande ci-dessus, l'exécution d'ERPNext s'arrêtera dès que vous fermerez le terminal. Pour surmonter ce problème, je recommande d'utiliser Supervisor qui est très utile pour exécuter l'application en continu dans un environnement de production. Supervisor est un système de contrôle de processus qui vous permet de surveiller et de contrôler un certain nombre de processus sur les systèmes d'exploitation Linux. Une fois le superviseur configuré, il démarrera automatiquement l'application au démarrage ainsi qu'en cas d'échecs. Bench peut configurer automatiquement Supervisor pour l'application ERPNext.

Installer le superviseur:

sudo yum -y install supervisor

Démarrez Supervisor et activez-le pour démarrer automatiquement au démarrage:

sudo systemctl start supervisord
sudo systemctl enable supervisord

Configuration du banc pour une utilisation en production:

 sudo bench setup production bench

La commande ci-dessus peut vous demander de remplacer le fichier de configuration par défaut de Supervisor existant par un nouveau. Choisissez yde continuer. Bench ajoute un certain nombre de processus au fichier de configuration du superviseur. La commande ci-dessus vous demandera également si vous souhaitez remplacer la configuration actuelle de Nginx par une nouvelle. Entrez ypour continuer. Une fois que Bench a terminé l'installation de la configuration, fournissez d'autres utilisateurs pour exécuter les fichiers dans votre répertoire personnel de l'utilisateur Bench.

chmod o+x /opt/bench/

Si vous exécutez un pare-feu sur votre serveur, vous devrez configurer le pare-feu pour définir une exception pour le service HTTP. Autorisez le proxy inverse Nginx à se connecter depuis l'extérieur du réseau.

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Vous pouvez maintenant accéder au site sur http://erp.example.com.

Vous pouvez vérifier l'état des processus en exécutant:

sudo supervisorctl status all

Vous devriez voir la sortie suivante:

[bench@vultr ~]$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache                 RUNNING   pid 2554, uptime 1:06:58
erpnext-redis:erpnext-redis-queue                 RUNNING   pid 2553, uptime 1:06:58
erpnext-redis:erpnext-redis-socketio              RUNNING   pid 2555, uptime 1:06:58
erpnext-web:erpnext-frappe-web                    RUNNING   pid 2559, uptime 1:06:58
erpnext-web:erpnext-node-socketio                 RUNNING   pid 2556, uptime 1:06:58
erpnext-workers:erpnext-frappe-default-worker-0   RUNNING   pid 2549, uptime 1:06:58
erpnext-workers:erpnext-frappe-long-worker-0      RUNNING   pid 2551, uptime 1:06:58
erpnext-workers:erpnext-frappe-schedule           RUNNING   pid 2550, uptime 1:06:58
erpnext-workers:erpnext-frappe-short-worker-0     RUNNING   pid 2552, uptime 1:06:58

Pour arrêter tous les processus ERPNext, utilisez:

sudo supervisorctl stop all

Pour démarrer tous les processus ERPNext, utilisez:

sudo supervisorctl start all

Configuration de SSL à l'aide de Let's Encrypt

Let's Encrypt fournit des certificats SSL gratuits aux utilisateurs. SSL peut être installé manuellement ou automatiquement via Bench. Bench peut installer automatiquement le client Let's Encrypt et obtenir les certificats. De plus, il met automatiquement à jour la configuration Nginx pour utiliser les certificats.

Le nom de domaine que vous utilisez pour obtenir les certificats de l'AC Let's Encrypt doit être dirigé vers le serveur. Le client vérifie l'autorité de domaine avant d'émettre les certificats.

Activez la mutualisation DNS pour l'application ERPNext.

bench config dns_multitenant on

Exécutez Bench pour configurer Let's Encrypt sur votre site:

sudo bench setup lets-encrypt erp.example.com

Pendant l'exécution du script, le client Let's Encrypt vous demandera d'arrêter temporairement le serveur Web Nginx. Il installera automatiquement les packages requis et le client Let's Encrypt. Le client vous demandera votre adresse e-mail. Vous devrez également accepter les termes et conditions. Une fois les certificats générés, Bench générera également la nouvelle configuration pour Nginx qui utilise les certificats SSL. Il vous sera demandé avant de remplacer la configuration existante. Bench crée également une crontabentrée pour renouveler automatiquement les certificats chaque mois.

Enfin, activez le planificateur pour exécuter automatiquement les travaux planifiés:

bench enable-scheduler

Tu devrais voir:

[bench@vultr erpnext]$ bench enable-scheduler
Enabled for erp.example.com

Emballer

Une fois le processus terminé, vous pouvez accéder à votre application à l'adresse https://erp.example.com. Connectez-vous avec le nom d'utilisateur Administratoret le mot de passe que vous avez définis lors de l'installation. Vous serez redirigé vers le bureau où vous devrez fournir des informations pour configurer ERPNext ERP en fonction de votre entreprise. Vous pouvez désormais utiliser l'application pour gérer votre entreprise.

Félicitations, vous avez une application ERPNext pleinement opérationnelle installée sur votre serveur CentOS 7.

Laisser un commentaire

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.