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.



Leave a Comment

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Comment installer MODX Revolution sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i

Configurez votre propre réseau privé avec OpenVPN

Configurez votre propre réseau privé avec OpenVPN

Vultr vous offre une connectivité réseau privée impressionnante pour les serveurs fonctionnant au même endroit. Mais parfois, vous voulez deux serveurs dans des pays différents

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Comment installer et configurer CyberPanel sur votre serveur CentOS 7

Vous utilisez un système différent? Introduction CyberPanel est lun des premiers panneaux de contrôle du marché à la fois open source et utilisant OpenLiteSpeed. Quest-ce que

Installer eSpeak sur CentOS 7

Installer eSpeak sur CentOS 7

Vous utilisez un système différent? ESpeak peut générer des fichiers audio de synthèse vocale (TTS). Ceux-ci peuvent être utiles pour de nombreuses raisons, telles que la création de votre propre Turin

Comment installer Thelia 2.3 sur CentOS 7

Comment installer Thelia 2.3 sur CentOS 7

Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i

Comment déployer Google BBR sur CentOS 7

Comment déployer Google BBR sur CentOS 7

BBR (Bottleneck Bandwidth and RTT) est un nouvel algorithme de contrôle de congestion qui est contribué à la pile TCP du noyau Linux par Google. Avec BBR en place,

Comment installer YOURLS sur CentOS 7

Comment installer YOURLS sur CentOS 7

YOURLS (Your Own URL Shortener) est une application open source de raccourcissement dURL et danalyse de données. Dans cet article, nous couvrirons le processus dinstallation

Configurer Nginx-RTMP sur CentOS 7

Configurer Nginx-RTMP sur CentOS 7

Vous utilisez un système différent? RTMP est idéal pour diffuser du contenu en direct. Lorsque RTMP est associé à FFmpeg, les flux peuvent être convertis en différentes qualités. Vultr i

Comment installer LimeSurvey sur CentOS 7

Comment installer LimeSurvey sur CentOS 7

LimeSurvey est un outil de sondage en ligne gratuit et open source qui est largement utilisé pour publier des sondages en ligne et recueillir des commentaires sur les sondages. Dans cet article, je vais

Installer Java SE sur CentOS

Installer Java SE sur CentOS

Introduction Java est une plate-forme logicielle populaire qui vous permet de développer et dexécuter des applications et des applets Java dans divers environnements matériels. Il y a

Comment installer Vanilla Forum sur CentOS 7

Comment installer Vanilla Forum sur CentOS 7

Vous utilisez un système différent? Le forum Vanilla est une application de forum open source écrite en PHP. Il est entièrement personnalisable, facile à utiliser et prend en charge externa

Installation de Netdata sur CentOS 7

Installation de Netdata sur CentOS 7

Vous utilisez un système différent? Netdata est une étoile montante dans le domaine de la surveillance des métriques système en temps réel. Par rapport à dautres outils du même type, Netdata:

Comment installer le serveur Just Cause 2 (JC2-MP) sur CentOS 7

Comment installer le serveur Just Cause 2 (JC2-MP) sur CentOS 7

Dans ce didacticiel, découvrez comment configurer un serveur multijoueur Just Cause 2. Prérequis Veuillez vous assurer que le système est entièrement mis à jour avant de commencer

Comment installer Starbound Server sur CentOS 7

Comment installer Starbound Server sur CentOS 7

Vous utilisez un système différent? Dans ce tutoriel, je vais vous expliquer comment configurer un serveur Starbound sur CentOS 7. Prérequis Vous devez posséder ce jeu sur vous

Installation et configuration de ZNC sur CentOS 7

Installation et configuration de ZNC sur CentOS 7

ZNC est un videur IRC gratuit et open-source qui reste connecté en permanence à un réseau afin que les clients puissent recevoir des messages envoyés lorsquils sont hors ligne. Thi

Comment installer Django sur CentOS 7

Comment installer Django sur CentOS 7

Django est un framework Python populaire pour lécriture dapplications Web. Avec Django, vous pouvez créer des applications plus rapidement, sans réinventer la roue. Si tu veux

Comment configurer ionCube Loader sur CentOS 7

Comment configurer ionCube Loader sur CentOS 7

ionCube Loader est une extension PHP qui permet à un serveur Web dexécuter des fichiers PHP qui ont été encodés à laide dionCube Encoder et qui est requis pour exécuter e

Comment installer Reader Self 3.5 RSS Reader sur un VPS CentOS 7 LAMP

Comment installer Reader Self 3.5 RSS Reader sur un VPS CentOS 7 LAMP

Vous utilisez un système différent? Reader Self 3.5 est un lecteur RSS auto-hébergé simple et flexible, gratuit et open source et une alternative à Google Reader. Reader Sel

Comment installer PufferPanel (Panneau de configuration Minecraft gratuit) sur CentOS 7

Comment installer PufferPanel (Panneau de configuration Minecraft gratuit) sur CentOS 7

Introduction Dans ce tutoriel, installez bien PufferPanel sur notre Vultr VPS. PufferPanel est un panneau de contrôle open source et gratuit pour vous gérer

Comment installer BoltWire CMS sur CentOS 7

Comment installer BoltWire CMS sur CentOS 7

Vous utilisez un système différent? Introduction BoltWire est un système de gestion de contenu gratuit et léger écrit en PHP. Comparé à la plupart des autres gestionnaires de contenu

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.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.