Установка ERP · 14 min read · Oct 24, 2025

Как установить ERPNext 14 на Debian 11

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

ERPNext — это платформа ERP для предприятий, лицензированная под GNU General Public Licence v3. Она в основном написана на Python и JavaScript и разработана компанией Frappe Technologies Pvt. ERPNext — это приложение, написанное на основе фреймворка Frappe, открытого веб-фреймворка на Python и JavaScript.

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

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

Предварительные требования

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

  • Один сервер Debian 11 — в этом примере используется сервер Debian с именем хоста ‘ erpnext-server ‘.
  • Непривилегированный пользователь с правами администратора sudo/root. Вы будете выполнять все команды в этом руководстве от имени непривилегированного пользователя.
  • Доменное имя, указывающее на IP-адрес сервера.

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

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

Первый шаг в этом руководстве — создать нового пользователя, который будет использоваться для запуска приложения ERPNext. Вы также добавите нового пользователя в группу ‘sudo’ и разрешите этому пользователю выполнять команды с правами root.

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

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

Теперь добавьте пользователя ‘ frappe ‘ в группу ‘sudo’ с помощью следующей команды.

sudo usermod -aG sudo frappe

Наконец, проверьте нового пользователя, выполнив следующую команду. Вы будете входить как пользователь ‘ frappe ‘ и получать права root через команду ‘ sudo su ‘.

su - frappe  
sudo su

Ваш терминал должен изменить приглашение на ‘root@hostname:/home/frappe..’. Теперь введите ‘exit’, чтобы выйти из оболочки root.

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

С этим вы создали нового пользователя для ERPNext. На следующих этапах вы вручную установите Python 3.10, скомпилировав его из исходного кода.

Установка Python 3.10

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

На этом этапе вы вручную установите Python 3.10 из исходного кода. Поскольку текущий репозиторий Debian 11 еще не предоставляет пакеты Python 3.10.

Перед тем как начать, убедитесь, что вы вошли на свой сервер Debian как новый пользователь ‘ frappe ‘.

su - frappe

Для начала выполните следующую команду, чтобы обновить индекс пакетов Debian.

sudo apt update

Теперь выполните следующую команду apt, чтобы установить зависимости для компиляции Python.

sudo apt install wget build-essential libncursesw5-dev libssl-dev \  
     libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

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

установка зависимостей

Далее загрузите исходный код Python 3.10 со страницы загрузки Python с помощью команды wget ниже. В этом примере вы загрузите и установите Python 3.10.9.

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

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

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

Теперь выполните следующую команду, чтобы скомпилировать Python 3.10 и установить его.

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

загрузка компиляции python

После завершения установки Python вы должны получить бинарный файл Python в каталоге ‘ /usr/local/bin/ ‘. Выполните следующую команду, чтобы проверить установку Python 3.10.

ls /usr/local/bin

Вы должны увидеть бинарные файлы пакетов Python 3.10, такие как ‘ python3.10 ‘ и ‘ pip3.10 ‘.

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

Создайте новый файл ‘/etc/profile.d/custom-path.sh’ с помощью следующей команды редактора nano.

sudo nano /etc/profile.d/custom-path.sh

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

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

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

Теперь выполните следующую команду, чтобы загрузить новый файл ‘ /etc/profile.d/custom-path.sh ‘ и проверить системный PATH.

source /etc/profile.d/custom-path.sh  
echo $PATH

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

Далее выполните следующую команду, чтобы отредактировать конфигурацию sudoers.

sudo visudo

В строке ‘ Defaults secure_path= ‘ добавьте новый бинарный secure_path ‘ /usr/local/bin ‘.

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

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

С этим вы теперь можете выполнять новый Python 3.10 через команду sudo. Выполните следующую команду, чтобы проверить Python3.10 и Pip3.10.

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

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

настройка python

Теперь, когда вы установили Python 3.10, перейдите к следующей установке зависимостей ERPNext, а именно веб-сервера Nginx и Supervisor.

Установка Nginx и Supervisor

Чтобы установить ERPNext, вам необходимо установить Nginx, который будет использоваться в качестве веб-сервера по умолчанию, и Supervisor в качестве менеджера процессов. Оба пакета Nginx и Supervisor доступны в репозитории Debian, и вы можете легко установить оба пакета через APT.

Выполните следующую команду apt, чтобы установить пакеты Nginx и Supervisor.

sudo apt install git nginx supervisor

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

установка nginx supervisor

Далее выполните следующую команду systemctl, чтобы проверить оба сервиса Nginx и Supervisor. Это обеспечит работу и включение обоих сервисов, что означает, что оба сервиса должны автоматически запускаться при загрузке.

Проверьте сервис Nginx.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Вывод:

проверка nginx

Проверьте сервис Supervisor.

sudo systemctl is-enabled supervisor  
sudo systemctl status supervisor

Вывод:

проверка supervisor

С установленными и работающими Nginx и Supervisor перейдите к следующей установке Redis Server и Fail2ban.

Установка Redis и Fail2ban

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

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

Выполните следующую команду apt, чтобы установить Redis и Fail2ban на ваш сервер Debian.

sudo apt install redis-server fail2ban

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

установка redis

установка fail2ban

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

sudo systemctl is-enabled redis-server  
sudo systemctl status redis-server
sudo systemctl is-enabled fail2ban  
sudo systemctl status fail2ban

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

проверка redis

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

проверка fail2ban

Теперь у вас установлены и работают Redis Server и Fail2ban. На следующих этапах вы установите и настроите сервер базы данных MariaDB.

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

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

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

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

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

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

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

sudo apt install mariadb-server mariadb-client default-libmysqlclient-dev

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

установка mariadb

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

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

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

проверка mariadb

Далее откройте файл конфигурации сервера MariaDB ‘/etc/alternatives/my.cnf’ с помощью следующей команды редактора nano.

sudo nano /etc/alternatives/my.cnf

Добавьте следующие строки в файл. Нижеуказанная конфигурация включит формат ‘barruca’ на вашем сервере 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  
  
[mysql]  
default-character-set = utf8mb4

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

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

sudo systemctl restart mariadb

Далее вы защитите развертывание MariaDB.

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

sudo mariadb-secure-installation

С этим вы завершили установку и настройку сервера MariaDB. На следующем этапе вы установите пакет wkhtmltopdf, который ERPNext будет использовать для генерации PDF-отчетов.

Установка пакета Wkhtmltopdf

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

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

sudo apt install xvfb libfontconfig wkhtmltopdf

установка wkhtmltopdf

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

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

Вы получите вывод, аналогичный следующему — Wkhtmltopdf v0.12 установлен на вашей системе Debian.

проверка wkhtmltopdf

На следующих этапах вы установите Node.js и менеджер пакетов Yarn, которые будут использоваться для генерации статических файлов для ERPNext.

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

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

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

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

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

добавить репозиторий nodesource

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

sudo curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null  
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

добавить репозиторий yarn

После этого обновите и обновите индекс пакетов Debian с помощью команды ‘apt update’. Затем установите Node.js и менеджер пакетов yarn с помощью команды ‘apt install’.

sudo apt update  
sudo apt install nodejs yarn

Теперь должна начаться установка Node.js и менеджера пакетов Yarn.

установка yarn и nodejs

Когда Node.js и yarn будут установлены, вы завершили установку зависимостей пакета для веб-фреймворка Frappe и приложения ERPNext.

Установка фреймворка frappe и frappe-bench

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

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

Чтобы установить bench, выполните следующую команду pip3.10.

sudo pip3.10 install frappe-bench

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

установка bench

После установки bench выполните следующую команду, чтобы проверить это. Вы получите бинарный путь команды ‘ bench ‘ и текущую версию установленного bench.

which bench  
bench --version

С установленным bench вы затем установите фреймворк frappe. Выполните следующую команду ‘bench’, чтобы установить фреймворк frappe в вашем текущем рабочем каталоге. Также вы укажете версию Python, которая будет использоваться для Python 3.10, укажете версию фреймворка frappe на v14, а целевой каталог установки — ‘ frappe-bench ‘.

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

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

установка фреймворка frappe через bench

После установки фреймворка frappe вы должны получить следующий вывод в конце установки.

фреймворк frappe установлен

Наконец, выполните следующую команду, чтобы разрешить другим пользователям читать и выполнять установочный каталог фреймворка frappe. Это необходимо, чтобы веб-сервер Nginx мог читать и выполнять фреймворк frappe.

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

С установленным фреймворком frappe вы готовы установить и настроить ERPNext.

Настройка нового сайта/проекта в фреймворке frappe

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

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

cd ~/frappe-bench

Выполните команду bench ниже, чтобы создать новый сайт/проект для ERPNext. В этом примере вы создадите новый сайт ‘ erp.howtoforge.local ‘, который является целевым доменным именем установки ERPNext. Также во время процесса настройки вам будет предложено настроить пароль администратора для вашего проекта frappe, поэтому введите свой пароль и повторите его. Этот пароль будет использоваться для входа в ваше приложение ERPNext.

bench new-site erp.howtoforge.local

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

bench use erp.howtoforge.local

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

создание нового сайта проекта

Установка ERPNext через frappe-bench

После создания нового сайта/проекта в фреймворке frappe выполните следующую команду, чтобы загрузить приложение ‘ payments ‘ и ‘ erpnext ‘. В этом примере вы загрузите ERPNext v14.

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

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

загрузка приложения payments

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

загрузка приложения erpnext

Далее выполните следующую команду, чтобы установить приложение ERPNext на сайт/проект ‘erp.howtoforge.local ‘.

bench --site erp.howtoforge.local install-app erpnext

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

установка erpnext

Наконец, выполните команду bench ниже, чтобы включить планировщик и отключить режим обслуживания на сайте/проекте ‘erp.howtoforge.local’.

bench --site erp.howtoforge.local enable-scheduler  
bench --site erp.howtoforge.local set-maintenance-mode off

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

Развертывание ERPNext для производства

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

sudo bench setup production frappe

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

установка зависимостей

Ниже приведен вывод, когда конфигурация завершена.

установка завершена

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

sudo bench setup supervisor  
sudo bench setup nginx

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

sudo bench setup production frappe

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

переустановка для обеспечения установки всех

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

sudo supervisorctl status

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

проверка supervisorctl

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

Настройка установки ERPNext

Откройте веб-браузер и перейдите по доменному имени вашей установки ERPNext (т.е.: http://erp.howtoforge.local /). Вы увидите страницу входа в фреймворк frappe.

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

вход в фреймворк frappe

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

основная настройка erpnext

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

создание администратора

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

настройка организации

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

настройка организации

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

панель управления ERPNExt

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

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

Выполните следующую команду apt, чтобы установить инструмент certbot и плагин certbot для веб-сервера Nginx. Когда будет предложено, введите y для подтверждения и нажмите ENTER, чтобы продолжить.

sudo apt install certbot python3-certbot-nginx

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

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d erp.howtoforge.local

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

Заключение

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

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

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.