Як встановити ERPNext Open Source ERP на CentOS 7

ERP або Enterprise Resource Planning — це пакет корпоративних програм, який використовується для керування основними бізнес-процесами. ERPNext — це безкоштовна програма ERP з відкритим вихідним кодом, написана на Python. Він використовує Node.js для інтерфейсу і MariaDB для зберігання своїх даних. ERPNext надає простий у використанні веб-інтерфейс, який дозволяє підприємствам керувати повсякденними завданнями. Він містить модулі для бухгалтерського обліку, CRM, HRM, виробництва, POS, управління проектами, закупівлі, управління продажами, управління складом тощо. ERPNext можна використовувати для управління різними галузями, такими як постачальники послуг, виробництво, роздрібна торгівля та школи.

У цьому підручнику ми встановимо ERPNext на CentOS 7.

Передумови

  • Примірник сервера Vultr CentOS 7.
  • Користувач sudo .

У цьому посібнику ми будемо використовувати 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

Для створення баз даних ERPNext потрібен механізм зберігання Barracuda, тому вам потрібно буде налаштувати 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. За замовчуванням у MariaDB не встановлено пароль root. Натисніть клавішу «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 , використовуючи движок рендеринга Webkit QT. Встановіть необхідні залежності:

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

Ініціалізуйте бенч-каталог із встановленим фреймворком frappe. Щоб все було в порядку, ми будемо працювати під /opt/benchкаталогом. Bench також налаштує регулярне резервне копіювання та автоматичне оновлення раз на день.

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

Створіть новий сайт Frappe:

bench new-site erp.example.com

Наведена вище команда запропонує вам ввести пароль root MySQL. Введіть пароль, який ви встановили для користувача 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 відповідно до вашої компанії. Тепер ви можете використовувати програму для керування своєю компанією.

Вітаємо, на вашому сервері CentOS 7 встановлено повністю працюючу програму ERPNext.

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

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. Прочитайте цю статтю, щоб дізнатися більше