Как да инсталирате ERPNext Open Source ERP на CentOS 7

ERP или Enterprise Resource Planning е пакет корпоративни приложения, използван за управление на основните бизнес процеси. ERPNext е безплатно и самостоятелно хоствано ERP приложение с отворен код, написано на Python. Той използва Node.js за предния край и MariaDB за съхраняване на своите данни. ERPNext предоставя лесен за използване уеб интерфейс, който позволява на бизнеса да управлява ежедневните задачи. Съдържа модули за счетоводство, CRM, HRM, производство, POS, управление на проекти, покупки, управление на продажбите, управление на складове и др. ERPNext може да се използва за управление на различни индустрии като доставчици на услуги, производство, търговия на дребно и училища.

В този урок ще инсталираме ERPNext на CentOS 7.

Предпоставки

За този урок ще използваме erp.example.comкато име на домейн, насочено към сървъра. Моля, не забравяйте да замените всички поява на erp.example.comс действителното ви име на домейн.

Актуализирайте базовата си система, като използвате ръководството " Как да актуализирате CentOS 7 ". След като вашата система бъде актуализирана, продължете да инсталирате Python.

Инсталирайте инструменти за разработка

ERPNext се нуждае от Python версия 2.7, за да работи. Python 2.7 е инсталиран по подразбиране във всички сървърни инстанции на CentOS. Можете да проверите дали е инсталирана версия на Python, като изпълните:

python -V

Трябва да получите подобен изход.

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

Въпреки че инсталираната версия на Python не е най-новата, тя работи безпроблемно. Промяната на версията по подразбиране на Python може да наруши YUM.

Инсталирайте пакетите в Development toolsгрупата, които са необходими за компилиране на инсталационните файлове.

sudo yum groupinstall -y "Development tools"

Инсталирайте още няколко зависимости:

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

Инсталирайте pipинструмента на Python . Pip е мениджърът на зависимости за пакетите на Python.

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

Горната команда ще инсталира Pip във вашата система. За да сте сигурни, че имате най-новата версия на pipи setuptools, стартирайте:

sudo pip install --upgrade pip setuptools

Инсталирайте Ansible с помощта на Pip. Ansible автоматизира предоставянето на софтуер, управлението на конфигурацията и внедряването на приложения.

sudo pip install ansible

Инсталирайте сървъра MariaDB

MariaDB е разклонение на MySQL сървър на база данни. Инсталирайте MariaDB, като стартирате.

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

Двигателят за съхранение на Barracuda е необходим за създаването на бази данни ERPNext, следователно ще трябва да конфигурирате MariaDB да използва механизма за съхранение на Barracuda. Редактирайте конфигурационния файл на MariaDB по подразбиране my.cnf.

sudo nano /etc/my.cnf

Добавете следните редове под symbolic-links=0реда.

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

Стартирайте MariaDB и го активирайте да стартира автоматично при стартиране.

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

Преди да конфигурирате базата данни, ще трябва да защитите MariaDB. Можете да го защитите, като стартирате mysql_secure_installationскрипта:

sudo mysql_secure_installation

Ще бъдете помолени за текущата парола за root на MariaDB. По подразбиране няма зададена root парола в MariaDB. Натиснете клавиша "Enter", за да продължите. Задайте силна парола за root потребител на вашия MariaDB сървър и отговорете с "Y" на всички други въпроси, които се задават. Зададените въпроси се разбират сами.

Инсталирайте Nginx, Nodejs и Redis

Тъй като EPEL хранилището е инсталирано по подразбиране във всички екземпляри на Vultr CentOS 7, можете директно да инсталирате Redis и Nginx. Но за да инсталирате най-новата версия на Node.js, ще трябва да добавите хранилището на Nodesource във вашата система.

Добавете хранилището на Nodesource за Node.js 8.x.

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

Инсталирайте Nginx, Nodejs и Redis:

sudo yum -y install nginx nodejs redis

Стартирайте Nginx и го активирайте да стартира при стартиране, като изпълните:

sudo systemctl start nginx
sudo systemctl enable nginx

Стартирайте Redis и го активирайте да стартира при стартиране, като изпълните:

sudo systemctl start redis
sudo systemctl enable redis

Инсталирайте PDF Converter

В wkhtmltopdfпрограмата е онлайн инструмент от командния че новопокръстените HTML в PDF с помощта на QT Webkit модул за визуализация на. Инсталирайте необходимите зависимости:

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

Изтеглете най-новата версия на wkhtmltopdf.

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

Извлечете архива, като изпълните:

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

Горната команда ще извлече архива в /opt/wkhtmltox. Създайте мека връзка, така че wkhtmltopdfи wkhtmltoimageда може да се изпълнява глобално като команда.

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

Вече можете да изпълните wkhtmltopdf -Vкоманда, за да проверите дали работи, ще видите:

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

В този момент имаме инсталирани всички необходими зависимости. Сега можете да продължите с инсталирането на Bench.

Инсталирайте Bench

Benchе помощна програма за команден ред, предоставена от Frappe за инсталиране и управление на приложението ERPNext на Unix-базирана система както за целите на разработката, така и за производството. Bench може също да създава и управлява конфигурация на Nginx и супервайзор.

Създайте нов потребител за стартиране на Bench процеси в изолирана среда.

sudo adduser bench -d /opt/bench

Променете паролата на потребителя.

sudo passwd bench

Предоставяне на sudoразрешения на benchпотребителя.

sudo usermod -aG wheel bench

Влезте като новосъздадения benchпотребител:

sudo su - bench

Клонирайте хранилището на Bench в /opt/bench:

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

Инсталирайте Bench с помощта на pip.

sudo pip install -e bench-repo

След като Bench бъде инсталиран, продължете по-нататък, за да инсталирате ERPNext с помощта на Bench.

Инсталирайте ERPNext с помощта на Bench

Инициализирайте бенч директория с инсталиран фреймворк. За да поддържаме всичко подредено, ще работим под /opt/benchдиректория. Bench също така ще настройва редовни архиви и автоматични актуализации веднъж на ден.

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

Създайте нов сайт на Frappe:

bench new-site erp.example.com

Горната команда ще ви подкани за MySQL root парола. Предоставете паролата, която сте задали за root потребителя на MySQL по-рано. Той също така ще ви помоли да зададете нова парола за администраторския акаунт. Тази парола ще ви е необходима по-късно, за да влезете в таблото за управление на администратора.

Изтеглете инсталационните файлове на ERPNext от отдалеченото хранилище на git с помощта на Bench.

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

Инсталирайте ERPNext на новосъздадения си сайт:

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

ERPNext е инсталиран на вашия сървър. Можете да стартирате приложението незабавно, за да проверите дали приложението е стартирано успешно:

bench start

Въпреки това, трябва да спрете изпълнението и да продължите по-нататък, за да настроите приложението за производствена употреба.

Надзорник за настройка и Nginx

По подразбиране приложението ERPNext слуша на порт 8000, а не на стандартния HTTP порт 80. Също така не се препоръчва стартирането на вградения уеб сървър за производствена употреба, тъй като ще изложим сървъра на света. Следователно, трябва да използвате производствен уеб сървър като обратен прокси като Apache или Nginx. В този урок ще използваме Nginx като обратен прокси, тъй като може да се конфигурира автоматично с помощта на Bench. Bench може автоматично да генерира и инсталира конфигурацията според настройката на ERPNext.

Въпреки че можем да стартираме приложението с помощта на горната команда, изпълнението на ERPNext ще спре веднага след като затворите терминала. За да се преодолее този проблем, препоръчвам да използвате Supervisor, който е много полезен при непрекъснато изпълнение на приложението в производствена среда. Supervisor е система за контрол на процесите, която ви позволява да наблюдавате и контролирате редица процеси в операционни системи Linux. След като Supervisor е конфигуриран, той автоматично ще стартира приложението по време на зареждане, както и при неуспехи. Bench може автоматично да конфигурира Supervisor за приложението ERPNext.

Инсталирайте Supervisor:

sudo yum -y install supervisor

Стартирайте Supervisor и го активирайте автоматично да стартира при стартиране:

sudo systemctl start supervisord
sudo systemctl enable supervisord

Стенд за настройка за производствена употреба:

 sudo bench setup production bench

Горната команда може да ви подкани, преди да замените съществуващия конфигурационен файл по подразбиране на Supervisor с нов. Изберете yда продължите. Bench добавя редица процеси към конфигурационния файл на Supervisor. Горната команда също ще ви попита дали искате да замените текущата конфигурация на Nginx с нова. Въведете, за yда продължите. След като Bench приключи инсталирането на конфигурацията, осигурете на други потребители да изпълнят файловете във вашата домашна директория на потребителя на Bench.

chmod o+x /opt/bench/

Ако използвате защитна стена на вашия сървър, ще трябва да конфигурирате защитната стена, за да зададе изключение за HTTP услуга. Позволете на обратния прокси на Nginx да се свързва извън мрежата.

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

Вече имате достъп до сайта на http://erp.example.com.

Можете да проверите състоянието на процесите, като изпълните:

sudo supervisorctl status all

Трябва да видите следния изход:

[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

За да спрете всички процеси на ERPNext, използвайте:

sudo supervisorctl stop all

За да стартирате всички процеси на ERPNext, използвайте:

sudo supervisorctl start all

Настройка на SSL с помощта на Let's Encrypt

Let's Encrypt предоставя безплатни SSL сертификати на потребителите. SSL може да се инсталира ръчно или автоматично чрез Bench. Bench може автоматично да инсталира клиента Let's Encrypt и да получи сертификатите. Освен това той автоматично актуализира конфигурацията на Nginx, за да използва сертификатите.

The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.

Активирайте DNS мулти-наемане за приложението ERPNext.

bench config dns_multitenant on

Стартирайте Bench, за да настроите Let's Encrypt на вашия сайт:

sudo bench setup lets-encrypt erp.example.com

По време на изпълнението на скрипта, клиентът Let's Encrypt ще ви помоли временно да спрете уеб сървъра на Nginx. Той автоматично ще инсталира необходимите пакети и клиента Let's Encrypt. Клиентът ще поиска вашия имейл адрес. Вие също ще трябва да приемете общите условия. След като сертификатите бъдат генерирани, Bench ще генерира и новата конфигурация за Nginx, която използва SSL сертификатите. Ще бъдете попитани, преди да замените съществуващата конфигурация. Bench също така създава crontabзапис за автоматично подновяване на сертификатите всеки месец.

И накрая, активирайте планировчика да изпълнява автоматично планираните задачи:

bench enable-scheduler

Трябва да видиш:

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

Обобщавайки

След като процесът приключи, можете да получите достъп до приложението си на адрес https://erp.example.com. Влезте с потребителското име Administratorи паролата, които сте задали по време на инсталацията. Ще бъдете отведени до бюрото, където ще трябва да предоставите информация, за да настроите ERPNext ERP според вашата компания. Вече можете да използвате приложението за управление на вашата компания.

Поздравления, имате напълно работещо приложение ERPNext, инсталирано на вашия CentOS 7 сървър.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече