تركيب نظام ERPNext 13

خطوات تركيب نظام ERPNext الاصدار 13 على Linux

daifمنذ 3 سنوات

مقدمة:

تحتاج المؤسسات والمنشآت في القطاع العام والخاص إلى أنظمة تخطيط موارد المؤسسات ويرمز لها باختصار ERP وتعني بالانجليزية Enterprise resource planning ويشير إلى مجموعة من البرامج التي تستعين بها المؤسسات لإدارة أنشطة الأعمال اليومية.

ومن أشهر هذه الأنظمة  ERPNext الاصدار 13 هو نظام مفتوح المصدر ولا يحتاج الى تراخيص لتركيبة وتشغيلة في منشأتك الخاصة , كل ماعليك حجز خادم استضافة (Server) بنظام تشغيل Ubuntu 20.04 من شركة bluvalt او اي شركة أخرى واتباع التعليمات التالية.

ملاحظة: اذا كنت تبحث عن طريقة تركيب اصدار أقدم الرجاء الاطلاع على هذا المقال تركيب نظام ERPNext v12

 

متطلبات قبل البدء:

  1. تأكد أن المستخدم الخاص بك للاتصال بالخادم هو root او لديه صلاحيات تنفيذ اوامر الروت sudo.
  2. استخدم سطر الاوامر Terminal للاتصال بالخادم, مستخدمي وندوز عليه تركيب عميل SSH مثل Putty او Bitvise SSH Client.
  3. يجب ان يكون لديك نطاق (domain) مرتبط بعنوان الانترنت (IP) الخاص بالخادم, استخدم امر ping او nslookup لتتاكد من ذلك قبل البدء.

 

تحديث النظام:

ان اول ما نقوم به عند تركيب اي نظام تشغيل هو تحديث جميع البرمجيات الى اخر اصدارة متوفرة حيث يتم اضافة بعض المميزات او اصلاح بعض الاشكاليات , سنقوم الان بتحديث قائمة البرمجيات للنظام بشكل كامل ثم تركيبها:

apt -y update
apt -y upgrade

تحديد المنطقة الزمنية للنظام, سوف نحدد منطقة الرياض

timedatectl set-timezone Asia/Riyadh

 

مرحلة تركيب متطلبات النظام:

سنقوم الان بتركيب ادوات التطوير الخاصة بلغة python3:

apt -y install git build-essential libffi-dev libssl-dev python3 python3-setuptools python3-dev python3-pip wkhtmltopdf supervisor
apt -y install fontconfig libxrender1 libxext6 libfreetype6 libx11-6 xfonts-75dpi xfonts-base zlib1g libfontconfig xvfb

انشاء اختصار للامر python و pip بحيث يشير الى python3 و pip3:

alias python=python3
alias pip=pip3

تحديث بعض الحزم عن طريق نظام ادارة الحزم pip:

pip install --upgrade setuptools cryptography ansible pip

 

مرحلة خادم الكاش Redis و Node.js:

تركيب خادم الكاش Redis و Node.js:

curl --silent --location https://deb.nodesource.com/setup_12.x | bash -
apt -y install gcc g++ make nodejs redis-server
npm install -g yarn

تشغيل خادم الكاش Redis وتفعيلة ليبدأ مع تشغيل النظام:

systemctl start redis-server
systemctl enable redis-server

 

مرحلة خادم الويب Nginx و قواعد البيانات Mariadb:

تركيب خادم الويب Nginx و قواعد البيانات Mariadb

apt -y install nginx
apt -y install mariadb-server mariadb-client libmysqlclient-dev

اعادة تشغيل خادم الويب Nginx  وتفعيل ليبدأ مع تشغيل النظام:

systemctl start nginx
systemctl enable nginx

 

مرحلة اعداد قواعد البيانات Mariadb:

اعداد قواعد البيانات Mariadb التى تخص استخدام الترميز utf8mb4

sed -i 's/\[mysqld\]/[mysqld]\ncharacter-set-client-handshake = FALSE/' /etc/mysql/mariadb.conf.d/50-server.cnf
sed -i 's/\[mysql\]/[mysql]\ndefault-character-set = utf8mb4/' /etc/mysql/mariadb.conf.d/50-server.cnf
sed -i 's/utf8mb4_general_ci/utf8mb4_unicode_ci/' /etc/mysql/mariadb.conf.d/50-server.cnf
systemctl restart mysqld

تأمين قواعد البيانات واستخدام كلمة مرور rootpass للمستخدم root

mysql -e "DELETE FROM mysql.user WHERE User='';"
mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -e "DROP DATABASE IF EXISTS test;"
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -e "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root';"
mysql -e "UPDATE mysql.user SET Password=PASSWORD('rootpass') WHERE User='root';"
mysql -e "FLUSH PRIVILEGES;"

اعادة تشغيل خادم قواعد البيانات Mariadb وتفعيل ليبدأ مع تشغيل النظام:

systemctl restart mariadb
systemctl enable mariadb

 

مرحلة Bench و Frappe:

سنقوم بانشاء مستخدم باسم frappe و كلمة مرور frappepass في النظام وتمكينة من تنفيذ امر sudo وعدم طلب كلمة مرور منه :

useradd -m -s /bin/bash frappe
echo frappe:frappepass | chpasswd
usermod -aG sudo frappe
echo "frappe ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/frappe

 

تركيب frappe bench

pip install frappe-bench

تركيب بيئة العمل frappe نسخة 13 وانشاء ملفات الاعدادات الخاصة supervisor و Nginx:

su frappe -c "cd /home/frappe/; bench init frappe-bench --frappe-branch version-13"
su frappe -c "cd /home/frappe/frappe-bench/; bench setup supervisor --yes"
su frappe -c "cd /home/frappe/frappe-bench/; bench setup nginx --yes"

انشاء اختصار لاعدادات supervisor و nginx:

ln -s /home/frappe/frappe-bench/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf
ln -s /home/frappe/frappe-bench/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf

تغيير المستخدم supervisord ليكون frappe

sed -i 's/chmod=0700/chown=frappe:frappe\nchmod=0700/' /etc/supervisor/supervisord.conf

اعادة تشغيل خدمات bench:

supervisorctl reread
supervisorctl restart all
systemctl restart supervisor
su frappe -c "cd /home/frappe/frappe-bench/; bench restart"

 

الانتقال الى اسم المستخدم frappe لتنفيذ الاوامر:

su frappe
cd /home/frappe/frappe-bench/

تفعيل خدمة تعدد الانظمة على خادم (server) واحد  مما يتيح انشاء نظام منفصل لكل نطاق (domain) او نطاق فرعي (subdomain)

bench config dns_multitenant on

تنزيل نظام ERPNext الاصدار 13 الى قائمة الأنظمة ثم تركيب المتطلبات, حتى نقوم بتركيبها في اي موقع نحدده:

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

 

مرحلة انشاء موقع جديد:

انشاء موقع جديد باسم site1.local استبد الاسم السابق بالاسم الفعلي لك وتاكد انه يشير الى IP الخاص بالخادم :

bench new-site site1.local

تركيب نظام ERPNext على موقع site1.local :

bench --site site1.local install-app erpnext

اعادة انشاء ملف اعدادات Nginx ثم اعادة تشغيلة لتفعيل الموقع الجديد   :

bench setup nginx --yes
sudo service nginx reload

لتفعيل https تأكد من اضافة سجل DNS يؤشر الى الموقع الخاص بك واستبد site1.local بالدومين الخاص بك.

sudo bench setup lets-encrypt site1.local # عنوان الموقع الخاص بك مختلف عن site1.local
sudo service nginx reload

 

الخلاصة:

جميع الاوامر السابقة تم كتابتها على شكل ملف يتم تنفيذة بالمستخدم root على خادم انترنت جديد من شركة bluvalt او هيت زنر او اي شركة أخرى.

https://gist.github.com/daif/f356ee4a40b1ca083ec8de9cb45ba174

يمكن تحميل وتنفيذ الملف بهذا الشكل , ولاكن تأكد من تعديل الملف حسب بيانات النطاق (domain) الخاص بك.

wget https://gist.githubusercontent.com/daif/f356ee4a40b1ca083ec8de9cb45ba174/raw/42b116bc6f9b36838ccc31f696d47b5f2e00d826/erpnext-installer-v13.sh
chmod +x erpnext-installer-v13.sh
./erpnext-installer-v13.sh

 

كلمات دليلية: erp erpnext
3
إعجاب
4024
مشاهدات
0
مشاركة
2
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !