Поиск по сайту:

Как установить ERPNext на Rocky Linux 9


На этой странице

  1. Предпосылки
  2. Настройка пользователя
  3. Установка Python 3.10
  4. Установка и настройка сервера MariaDB
  5. Установка зависимостей из репозитория Rocky Linux
  6. Установка Nodejs 16 и Yarn
  7. Установка Wkhtmltopdf
  8. Установка Frappeframework с помощью стенда
  9. Настройка нового приложения во Frappe
  10. Установка ERPNext через настольную версию
  11. Настройка развертывания для ERPNext
  12. Настройка ERPNext
  13. Защита с помощью сертификатов SSL/TLS с помощью Certbot и Letsencrypt
  14. Заключение

ERPNext — это система Enterprise ERP (планирование ресурсов предприятия) с открытым исходным кодом, которую можно внедрить в вашем бизнесе. ERPNext может быть реализован в различных отраслях, таких как производство, дистрибуция, розничная торговля, торговля, услуги, образование, некоммерческие организации и здравоохранение. Кроме того, он предоставляет такие модули, как бухгалтерский учет, CRM, продажи, закупки, веб-сайт, электронная коммерция, точка продаж, производство, склад, управление проектами, запасы и услуги.

ERPNext — это корпоративная платформа ERP, лицензированная по Стандартная общественная лицензия GNU v3. Он в основном написан на Python и JavaScript, разработан Frappe Technologies Pvt. ERPNext — это приложение, написанное в рамках frappe framework, веб-фреймворка с открытым исходным кодом на Python и Javascript.

ERPNext создан как альтернатива таким сервисам, как NetSuite от Oracle, QAD, Tython, OpenBrave и Odoo. По функциональности ERPNext похож на Odoo (ранее OpenERP).

В этом руководстве вы установите ERPNext на сервер Rocky Linux 9, а затем защитите свою установку с помощью сертификатов SSL/TLS через Certbot и Letsencrypt. Вы также узнаете, как установить зависимости для ERPNext, такие как Python 3.10 из исходного кода, Redis, который будет использоваться в качестве диспетчера сеансов, Nginx в качестве веб-сервера и обратного прокси-сервера, Supervisor в качестве диспетчера процессов, Fail2ban для защиты от перебора, MariaDB в качестве сервер базы данных, Node.js и Yarn для создания и компиляции статических файлов.

ERPNext — это приложение, созданное поверх фреймворка frappe, поэтому вы также установите фреймворк frappe в процессе через frappe-bench.

Предпосылки

Для выполнения этого руководства вам потребуются следующие требования:

  • Один сервер Debian 11. В этом примере используется сервер Debian с именем хоста erpnext-rocky.
  • Пользователь без полномочий root с правами администратора sudo/root. Вы будете запускать все команды в этом руководстве как пользователь без полномочий root.
  • Доменное имя указывало на IP-адрес сервера.
  • SELinux, работающий в разрешительном режиме.

Теперь давайте начнем и установим ERPNext.

Настройка пользователя

Первая задача в этом руководстве — создать нового выделенного пользователя, который будет использоваться для запуска приложения ERPNext. Вы также будете использовать этого нового пользователя для выполнения всех команд по установке и настройке пакетов.

Выполните приведенную ниже команду, чтобы создать нового пользователя frappe. Затем установите пароль для пользователя frappe, введите новый надежный пароль и повторите пароль.

sudo useradd -m -s /bin/bash frappe
sudo passwd frappe

Теперь выполните приведенную ниже команду, чтобы добавить пользователя frappe в группу wheel. Это позволит пользователю frappe выполнить команду sudo, став пользователем root, или запустить команду с привилегиями root.

sudo usermod -aG wheel frappe

Наконец, войдите в систему как пользователь frappe, чтобы проверить и убедиться, что ваш пользователь создан. Затем запустите команду sudo su, чтобы получить привилегии root.

sudo - frappe
sudo su

Введите свой пароль для пользователя frappe. В случае успеха ваше приглашение станет таким, как [email :/home/frappe....

Теперь введите exit или нажмите Ctrl+d, чтобы выйти из корневой оболочки.

Установка Python 3.10

ERPNext — это веб-приложение, созданное с использованием веб-фреймворка frappe на основе Python. На момент написания этой статьи последняя версия фреймворка frappe и ERPNext требовала как минимум Python 3.10.

На этом этапе вы установите Python 3.10 вручную из исходного кода на сервер Rocky Linux 9.

Для начала запустите приведенную ниже команду dnf, чтобы установить некоторые основные зависимости для компиляции Python 3.10.

sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make

Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

Затем загрузите исходный код Python 3.10 с помощью команды wget ниже.

wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

После загрузки Python 3.10 извлеките исходный код Python и переместите в него свой рабочий каталог.

tar xzf Python-3.10.9.tgz
cd Python-*/

Затем выполните приведенную ниже команду, чтобы начать компиляцию Python 3.10. Затем установите его в свою систему. Это установит двоичные файлы Python 3.10 в каталог /usr/local/bin.

./configure --enable-optimizations
nproc
sudo make -j2
sudo make altinstall

Запустите приведенную ниже команду, чтобы проверить двоичные файлы Python 3.10. Вы должны увидеть несколько двоичных файлов Python, включая Pip3.10.

ls /usr/local/bin

Затем, чтобы убедиться, что вы можете запускать новую версию команд Python, вы должны добавить каталог /usr/local/bin в системный PATH и visudo secure_path.

Запустите приведенную ниже команду редактора nano, чтобы открыть новый файл /etc/bashrc.

sudo nano /etc/bashrc

Добавьте следующую строку в файл.

export PATH=$PATH:/usr/local/bin/

Сохраните и выйдите, когда закончите.

Теперь запустите приведенную ниже команду, чтобы перезагрузить файл конфигурации /etc/bashrc. Затем проверьте системный ПУТЬ.

source /etc/bashrc
echo $PATH

Теперь вы должны увидеть, что каталог /usr/local/bin добавлен в системную переменную среды PATH.

Затем выполните приведенную ниже команду, чтобы добавить и изменить файл конфигурации sudoers.

sudo visudo

Добавьте каталог /usr/local/bin в параметр secure_path по умолчанию:, как показано ниже.

Defaults secure_path=....:/usr/local/bin

Сохраните файл и выйдите из редактора, когда закончите.

Теперь запустите двоичный файл Python3.10 и Pip3.10 с помощью команды sudo, как показано ниже.

sudo python3.10 --version
sudo pip3.10 --version

Вы должны получить примерно такой вывод: Python 3.10 установлен из исходного кода на ваш сервер Rocky Linux.

На следующем шаге вы установите и настроите сервер MariaDB для ERPNext.

Установка и настройка сервера MariaDB

При установке по умолчанию ERPNext будет использовать MySQL/MariaDB в качестве сервера базы данных. Для установки ERPNext требуется определенная версия MySQL/MariaDB. И на момент написания этой статьи последняя версия ERPNext требовала MariaDB 10.6.

На этом шаге вы установите сервер MariaDB 10.6 из официального репозитория MariaDB. Затем вы добавите конфигурации на свой сервер MariaDB и защитите развертывание сервера MariaDB.

Выполните приведенную ниже команду, чтобы добавить репозиторий MariaDB версии 10.6.

sudo curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.6"

Вы получите что-то вроде этого.

Затем выполните приведенную ниже команду dnf, чтобы установить пакеты MariaDB. Введите y, когда будет предложено подтверждение, и нажмите ENTER, чтобы продолжить.

sudo dnf install MariaDB-server MariaDB-client

Кроме того, когда вас попросят принять ключ GPG репозитория MariaDB, введите y и нажмите ENTER.

После установки сервера MariaDB запустите приведенную ниже командную утилиту systemctl, чтобы запустить и включить службу MariaDB.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Теперь проверьте службу MariaDB с помощью приведенной ниже команды. Вы должны увидеть, что служба MariaDB запущена и должна быть включена, что означает, что она будет запускаться автоматически при загрузке.

sudo systemctl status mariadb

Когда сервер MariaDB запущен, вы затем начнете настраивать MariaDB в соответствии с требованиями ERPNext.

Откройте файл конфигурации MariaDB /etc/my.cnf.d/server.cnf, используя приведенную ниже команду редактора nano.

sudo nano /etc/my.cnf.d/server.cnf

Добавьте следующие строки в раздел [mysqld]. Это включит формат барракуды в вашей базе данных MariaDB. Кроме того, вы установите набор символов по умолчанию на utf8mb4.

[mysqld]
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

Сохраните и закройте файл, когда закончите.

Затем откройте другой файл конфигурации MariaDB /etc/my.cnf.d/mysql-clients.cnf, используя приведенную ниже команду редактора nano.

sudo nano /etc/my.cnf.d/mysql-clients.cnf

Добавьте следующую строку в раздел [mysql]. Это всегда будет устанавливать набор символов для клиента на utf8mb4.

[mysql]
default-character-set = utf8mb4

Сохраните файл и выйдите из редактора.

Теперь запустите приведенную ниже команду systemctl, чтобы перезапустить службу MariaDB и применить изменения.

sudo systemctl restart mariadb

Выполните приведенную ниже команду mariadb-secure-installation, чтобы защитить развертывание MariaDB. Затем вам будет предложено настроить пароль root для MariaDB, поэтому обязательно введите и повторите новый пароль. Для остальных конфигураций введите Y для подтверждения и нажмите ENTER.

sudo mariadb-secure-installation

На этом вы завершили установку и настройку сервера MariaDB. На следующем шаге вы установите Redis, Nginx и Supervisor на свой компьютер с Rocky Linux.

Установка зависимостей из репозитория Rocky Linux

На этом этапе у вас будут некоторые зависимости для установки ERPNxt, в том числе установка Redis, которая будет использоваться для управления сеансом, Nginx в качестве веб-сервера, Supervisor в качестве управления процессами и Fail2ban, который защищает ваш ERPNext от атак грубой силы. .

Большинство пакетов, которые вы будете здесь устанавливать, по умолчанию доступны в репозитории Rocky Linux AppStream. Но также вы должны убедиться, что сторонний репозиторий, такой как EPEL, доступен в вашей системе.

Запустите приведенную ниже команду dnf, чтобы установить Redis, Nginx, Supervisor и Fail2ban в вашей системе Rocky Linux.

sudo dnf install redis nginx supervisor fail2ban

При запросе подтверждения введите Y и нажмите ENTER, чтобы продолжить.

Теперь, после завершения установки пакета, запустите приведенные ниже команды systemctl, чтобы запустить и включить службы. Затем проверьте каждую службу, чтобы убедиться, что она работает.

Запустите и включите службу Redis, затем проверьте Redis, чтобы убедиться, что она работает.

sudo systemctl start redis
sudo systemctl enable redis

sudo systemctl status redis

Вы получите вывод, подобный этому.

Затем запустите и включите службу Nginx, затем проверьте Nginx, чтобы убедиться, что служба работает.

sudo systemctl start nginx
sudo systemctl enable nginx

sudo systemctl status nginx

Вы получите что-то вроде этого.

После этого запустите службу Supervisor и включите ее. Затем проверьте службу Supervisor, чтобы убедиться, что она работает.

sudo systemctl start supervisord
sudo systemctl enable supervisord

sudo systemctl status supervisord

Ниже приведен вывод, который вы должны получить на экране терминала.

И, наконец, для службы Fail2ban запустите и включите ее с помощью командной утилиты systemctl ниже. Затем проверьте службу Fail2ban, чтобы убедиться, что она работает.

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

sudo systemctl status fail2ban

Теперь вы должны увидеть, что статус службы Fail2ban запущен.

Теперь, после заполнения этого раздела и проверки работы служб Redis, Nginx, Supervisor и Fail2ban. Перейдите к следующему разделу для установки диспетчера пакетов Node.js и Yarn.

Установка Nodejs 16 и Yarn

Последняя версия ERPNext — v14, для которой требуется как минимум Node.js 16 и менеджер пакетов Yarn. На этом шаге вы настроите репозиторий Nodesource для Node.js v16 и добавите репозиторий Yarn для дистрибутива RHEL. Затем вы установите Node.js и yarn через DNF.

Сначала выполните приведенную ниже команду, чтобы добавить репозиторий Nodesource для Node.js v16 для дистрибутивов RHEL.

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -

Вы должны получить что-то вроде этого: скрипт автоматически определит версию текущего дистрибутива RHEL и добавит репозиторий Nodesource.

Для репозитория Yarn выполните приведенную ниже команду, чтобы загрузить репозиторий и добавить его в свою систему.

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

Ниже приведен вывод, который вы должны получить на своем терминале.

Теперь, когда в вашу систему Rocky Linux добавлены репозиторий Nodesource и Yarn, пришло время установить менеджер пакетов Node.js и Yarn через DNF.

Запустите приведенную ниже команду dnf, чтобы установить Node.js и Yarn в вашу систему. Введите y, когда будет предложено подтверждение, и нажмите ENTER, чтобы продолжить.

sudo dnf install gcc-c++ make nodejs yarn

Должна начаться установка Node.js и Yarn.

Кроме того, при появлении запроса о ключе GPG для обоих репозиториев введите y и нажмите ENTER, чтобы добавить ключ GPG в вашу систему.

Теперь, когда менеджер пакетов Node.js и Yarn установлен, вам нужно установить пакет Wkhtmltopdf через RPM-файл.

Установка Wkhtmltopdf

На этом шаге вы установите пакет Wkhtmltopdf, который будет использоваться ERPNext для создания отчетов в формате PDF. Wkhtmltopdf можно загрузить и установить вручную через файл .deb или файл .rpm.

Сначала запустите приведенную ниже команду dnf, чтобы установить зависимости для пакета Wkhtmltopdf.

sudo dnf install fontconfig freetype libX11 libXext libXrender libjpeg libpng xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.

Затем запустите приведенную ниже команду rpm, чтобы загрузить и установить пакет Wkhtmltopdf в вашу систему Rocky Linux.

sudo rpm -Uvh https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm

После установки Wkhtmltopdf выполните приведенные ниже команды, чтобы проверить установку.

Пакет Wkhtmltopdf предоставляет два инструмента командной строки: команда wkhtmltopdf используется для преобразования страницы HTML в формат PDF, а команда wkhtmltoimage преобразует страницу HTML в различные форматы изображений.

which wkhtmltopdf
which wkhtmltoimage
wkhtmltopdf --version
wkhtmltoimage --version

Вы получите примерно такой вывод: пакет Wkhtmltopdf версии 0.12 установлен в вашей системе Rocky Linux.

На этом вы закончили установку зависимостей пакетов для ERPNext и frappeframework. Сюда входят пакеты Python3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server и Wkhtmltopdf.

В следующем разделе вы начнете установку ERPNext. Но сначала вы установите и настроите frappeframework.

Установка Frappeframework через стенд

ERPNext — это программное обеспечение ERP с открытым исходным кодом, созданное с помощью frappeframework, написанного на Python и JavaScript. ERPNext будет работать в рамках frappeframework, поэтому вы должны установить frappeframework в своей системе, а затем установить ERPNext.

Итак, сначала необходимо установить скамейку. Затем установите каркас фраппе через скамейку. Наконец, вы установите приложение ERPNext в frappeframework.

Запустите приведенную ниже команду pip3.10, чтобы установить стенд из репозитория PyPI.

sudo pip3.10 install frappe-bench

Вы получите вывод, аналогичный этому, во время установки стенда.

После установки стенда выполните приведенную ниже команду, чтобы проверить его.

which bench
bench --version

Вы получите команду двоичного пути bench и текущую версию установленного вами стенда.

Установив скамейку, вы затем установите структуру фраппе с помощью команды скамейки.

Запустите приведенную ниже команду bench, чтобы установить структуру frappe в текущий рабочий каталог. Кроме того, вы должны указать версию Python, которая будет использоваться для Python 3.10, указать версию фреймворка frappe для версии v14. Целевой каталог установки — frappe-bench.

bench init --python python3.10 --frappe-branch version-14 frappe-bench

Вы получите подобный вывод во время установки frappeframework.

После завершения установки frappe framework вы должны получить следующий вывод.

Наконец, запустите приведенную ниже команду, чтобы другие пользователи могли читать и выполнять в каталоге установки frappe framework /home/frappe/frappe-bench. Это необходимо для того, чтобы веб-сервер Nginx мог читать и выполнять структуру закрылков.

sudo chmod -R o+rx /home/frappe/frappe-bench
or
sudo chmod -R o+rx /home/frappe

Установив структуру frappe, вы будете готовы к установке и настройке ERPNext.

Настройте новое приложение во Frappe

Перед установкой ERPNext необходимо создать новый сайт/проект на фреймворке frappe. На этом шаге вы создадите новый сайт/проект и переключите среду в новый проект через стенд.

Сначала переместите свой рабочий каталог в frappe-bench с помощью команды cd.

cd ~/frappe-bench

Запустите приведенную ниже команду стенда, чтобы создать новый сайт/проект для ERPNext. В этом примере вы создадите новый сайт erp.hwdomain.io, который является целевым доменным именем установки ERPNext. Кроме того, в процессе установки вам будет предложено настроить пароль администратора для вашего проекта, поэтому введите свой пароль и повторите. Этот пароль будет использоваться для входа в ваше приложение ERPNext.

bench new-site erp.hwdomain.io

Наконец, выполните приведенную ниже команду, чтобы переключиться на новый сайт/проект erp.hwdomain.io.

bench use erp.hwdomain.io

Ниже приведен вывод во время создания сайта/проекта и после того, как вы переключились на новый сайт/проект.

Установка ERPNext через стенд

На этом шаге вы начнете установку ERPNext внутри созданного вами проекта frappe framework.

Сначала выполните приведенную ниже команду, чтобы загрузить приложения payments и erpnext. В этом примере вы загрузите файл ERPNexxt v14.

bench get-app payments
bench get-app --branch version-14 erpnext

Ниже приведен аналогичный вывод, который вы получите в процессе загрузки платежей.

А ниже процесс загрузки приложения ERPNext.

Затем выполните приведенную ниже команду, чтобы установить приложение ERPNext на сайт/проект erp.hwdomain.io.

bench --site erp.hwdomain.io install-app erpnext

Вы получите вывод, аналогичный этому. Также вы должны увидеть, что приложение payments автоматически устанавливается как зависимость для приложения ERPNext.

Наконец, запустите команду Bench ниже, чтобы включить планировщик и отключить режим обслуживания на сайте/проекте ERPNext erp.hwdomain.io.

bench --site erp.hwdomain.io enable-scheduler
bench --site erp.hwdomain.io set-maintenance-mode off

На этом установка ERPNext завершена. На следующих шагах вы настроите веб-сервер Nginx и Supervisor для развертывания ERPNext в рабочей среде, которые можно настроить с помощью команды Bench.

Настройка развертывания для ERPNext

Сначала выполните приведенную ниже команду, чтобы начать настройку инфраструктуры frappe и ERPNext для производственной среды. Это установит Ansible и автоматически настроит развертывание ERPNext через Ansible.

sudo bench setup production frappe

Ниже приведен вывод во время установки Ansible.

Ниже приведен вывод после завершения настройки.

Затем выполните приведенную ниже команду стенда, чтобы настроить Nginx и Supervisor для ERPNext. Когда вас попросят перезаписать текущие настройки, введите y для подтверждения и нажмите ENTER.

sudo bench setup supervisor
sudo bench setup nginx

После этого снова запустите команду Bench, чтобы убедиться, что конфигурации Supervisor и Nginx установлены.

sudo bench setup production frappe

Введите y, чтобы перезаписать текущие настройки, и нажмите ENTER, чтобы продолжить.

Затем откройте конфигурацию супервизора /etc/supervisor.conf с помощью следующей команды редактора nano.

sudo nano /etc/supervisor.conf

Убедитесь, что в разделе [include] есть следующая строка. Если нет, вы можете изменить формат на *.conf, как показано ниже.

[include]
file = /etc/supervisord.d/*.conf

Сохраните и закройте файл, когда закончите.

Теперь запустите приведенную ниже командную утилиту systemctl, чтобы перезапустить службу Supervisor и применить изменения.

sudo systemctl restart supervisord

Наконец, запустите приведенную ниже команду supervisorctl с привилегиями sudo. Это проверит все процессы и службы, используемые инфраструктурой frappe и ERPNext.

sudo supervisorctl status

Если ваша установка ERPNext прошла успешно, вы должны получить вывод, аналогичный следующему: Все службы для ERPNext запущены.

К этому моменту у вас завершена установка ERPNext и она работает с Nginx в качестве веб-сервера и супервизора для диспетчера процессов. Теперь вы можете получить доступ к своей установке ERPNext через свое доменное имя и веб-браузер.

Настройка ERPNext

Откройте веб-браузер и перейдите на доменное имя вашей установки ERPNext (например, http://erp.hwdomain.io/). Затем вы увидите страницу входа в систему frappe framework.

Введите администратора пользователя по умолчанию и введите пароль, который вы использовали при создании сайта/проекта.

Теперь выберите язык по умолчанию, часовой пояс и валюту. Затем нажмите Далее.

Введите нового администратора для вашей установки ERPNext. Введите свое полное имя, адрес электронной почты и пароль, затем нажмите «Далее».

Введите название компании и загрузите логотип своей компании, затем нажмите «Далее».

Введите сведения о своей организации и нажмите «Завершить настройку».

Теперь вы должны увидеть панель администрирования вашей установки ERPNext.

Защита с помощью сертификатов SSL/TLS через Certbot и Letsencrypt

На этом последнем шаге вы защитите ERPNext с помощью сертификатов SSL/TLS с помощью инструмента Certbot и Letsencrypt. Прежде чем начать, убедитесь, что ваше доменное имя указывает на IP-адрес вашего сервера, и убедитесь, что у вас есть действующий адрес электронной почты, который будет использоваться для регистрации в Letsencrypt.

Установите инструмент Certbot и плагин Certbot Nginx с помощью приведенной ниже команды dnf. При появлении запроса введите y для подтверждения и нажмите ENTER для продолжения.

sudo dnf install certbot python3-certbot-nginx

После установки certbot выполните приведенную ниже команду certbot, чтобы сгенерировать SSL-сертификаты для вашего доменного имени ERPNext. Обязательно измените доменное имя и адрес электронной почты в приведенной ниже команде.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email  -d erp.hwdomain.io

Благодаря этому установка ERPNext теперь защищена сертификатами SSL/TLS через Certbot и Letsencrypt. Вы также настроили автоматическое перенаправление с HTTP на HTTPS для вашего доменного имени ERPNext, которое Certbot обрабатывает автоматически.

Заключение

В этом руководстве вы узнали, как установить ERPNext, программное обеспечение ERP с открытым исходным кодом, на сервер Rocky Linux 9. Вы также узнали об установке некоторых зависимостей, таких как Python 3.10, который устанавливается вручную путем компиляции исходного кода и его установки. Другие зависимости, которые вы также установили, — это MariaDB Server, Nginx, Supervisor, Redis и Fail2ban.

Вы также узнали, как установить структуру frappe и установить ERPNext поверх нее. Затем вы изучили базовую настройку ERPNext как программного обеспечения ERP.

Наконец, вы также развернули ERPNext для производства, настроив Nginx в качестве веб-сервера и Supervisor в качестве диспетчера процессов. Вы также обеспечили безопасное развертывание ERPNext через Certbot и Letsencrypt.