
ERPNext — это программное обеспечение с открытым исходным кодом для планирования ресурсов предприятия (ERP), созданное сообществом и доступное для самостоятельного размещения или в виде облачного решения (премиум-сервис). Оно предоставляет полный набор приложений для управления различными аспектами бизнес-операций, включая бухгалтерский учет, управление запасами, управление продажами и закупками, управление взаимоотношениями с клиентами (CRM), управление человеческими ресурсами (HRM) и управление проектами.
Среди ключевых особенностей ERPNext — настраиваемость, удобный интерфейс, мультивалютная и многоязыковая поддержка, а также возможность интеграции с различными сторонними приложениями и сервисами.
Системы планирования ресурсов предприятия (ERP), такие как ERPNext, играют ключевую роль в оптимизации операций, управлении данными и повышении производительности. ERPNext выгодна производителям, розничным торговцам, поставщикам услуг и образовательным учреждениям.
Пошаговое руководство по установке ERPNext 15 на систему Ubuntu 24.04.
Что нам нужно?
Прежде чем приступить к установке, убедитесь, что у вас есть все необходимые предпосылки:
1. Рекомендуется чистая установка сервера LTS Ubuntu.
2. Терминал Доступ к серверу через SSH или прямой терминальный доступ.
3. Корневой доступ для операций системного уровня.
4. Подключение к Интернету для загрузки пакетов в процессе установки.
Шаг 1: Обновление сервера Ubuntu 24.04
Хорошей практикой является запуск команды обновления системы в Linux после некоторого времени без установки нового пакета. Это позволит установить последние обновления для системных пакетов и обновить индексный кэш APT.
sudo apt update && sudo apt upgrade
Создайте нового пользователя для ErpNext вместо root. Заменить [new-user] на имя пользователя, которое вы хотите использовать: Например, здесь мы создаем пользователя с именем — erpnext; вы можете установить все, что захотите.
Создать пользователя:
sudo adduser [new-user]
Добавьте его в группу sudo:
sudo usermod -aG sudo [new-user]
Войдите в систему под вновь созданным пользователем:
su [new-user]
Переключитесь на домашний каталог:
cd /home/[new-user]
Шаг 2: Установите Python & необходимые зависимости
Чтобы установить ERPNext на Ubuntu, мы должны установить несколько зависимостей, чтобы избежать любых общих проблем, связанных с пакетами. Вот команда, которую вам нужно запустить в терминале.
Установить Python:
sudo apt install python3
Другие необходимые инструменты:
sudo apt-get install python3-dev python3-setuptools python3-pip libffi-dev libssl-dev ca-certificates curl gnupg xvfb libfontconfig wkhtmltopdf libmysqlclient-dev software-properties-common supervisor git
Установите Virtualenv
sudo apt install python3.12-venv
Шаг 3: Настройка сервера базы данных MariaDB
MariaDB — это сервер баз данных SQL с открытым исходным кодом, который мы можем установить прямо из системного репозитория Ubuntu по умолчанию. Он нужен нам для хранения данных, генерируемых ERPNext.
sudo apt install mariadb-server mariadb-client
Закрепите установку, запустив и выполнив текстовый мастер, предлагаемый данной командой:
sudo mysql_secure_installation
Вот несколько вопросов, на которые попросит ответить приведенная выше команда…
Переход на аутентификацию unix_socket [Y/n] y
Изменить пароль root? [Y/n]: Y
Удалить анонимных пользователей? [Y/n] y
Запретить удаленный вход в систему root? [Y/n] y
Удалите тестовую базу данных и доступ к ней. [Y/n] y
Перезагрузить таблицы привилегий сейчас? [Y/n] y
Отредактируйте файл конфигурации MYSQL по умолчанию
sudo nano /etc/mysql/my.cnf
Прокрутите файл до конца и добавьте следующий блок кода в точности как есть:
[[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
Сохраните файл, используя Ctrl+X, затем введите Y и ударить Введите.
Перезапустите сервер MariaDB:
sudo service mysql restart
Шаг 4: Установите Redis Server для ERPNext
Установите сервер Redis на Ubuntu для вашего ERPNext для кэширования и управления очередью задач.
sudo apt install redis-server
Шаг 5: Установите Node.js и Yarn
ERPNext использует Node.js для своего фронт-энда. Поэтому, чтобы получить последнюю доступную LTS-версию Node.js в репозитории Ubuntu по умолчанию, выполните данную команду:
sudo apt install nodejs npm
Используйте менеджер пакетов Node NPM, а также установите YARN:
sudo npm install -g yarn
Шаг 6: Получите Frappe Bench и Ansible
Теперь мы установим Frappe Bench, который является инструментом командной строки для управления установками ERPNext:
Использование виртуальной среды (рекомендуется): Создайте изолированную среду для установки пакетов, не затрагивая системные пакеты.
python3 -m venv ~/frappe-bench-env
Активируйте среду:
source ~/frappe-bench-env/bin/activate
Это создаст виртуальную среду в ~/frappe-bench-env и активируйте его, что позволит вам установить и использовать frappe-bench локально.
pip3 install frappe-bench
Установите Ansible, необходимый, когда мы захотим использовать ERPNext в производстве. -break-system-packages: флаг переопределяет поведение pip по умолчанию, чтобы избежать нарушения системных пакетов, мы использовали его, потому что в обычном режиме он выдавал ошибки.
pip install ansible --break-system-packages
Инициализация Frappe Bench
Теперь мы можем получить доступ к бенчу из любого места нашего терминала, поэтому инициализируем его. Здесь, мы собираемся версия 15, последняя версия на момент написания этой статьи. Вы можете выбрать соответствующую версию при выполнении этот учебник. Вам нужно заменить 15 на ту версию, которую вы хотите использовать.
bench init frappe-bench --frappe-branch version-15
Переключите директории в каталог Frappe Bench
cd frappe-bench
Изменение прав доступа к каталогу пользователя
Это даст пользователю bench разрешение на выполнение в домашнем каталоге. Изменить [your-use] на текущее имя пользователя, используемое для установки Frappe.
chmod -R o+rx /home/[your-user]
Создайте сайт, который вы хотите использовать для ERPnext:
Допустим, у нас есть домен — erpnext.how2hsout.com- и хотим использовать его для доступа к нашему сайту ERPnext. Итак, создайте сайт, используя это, вот пример:
bench new-site [your-site-name]
Пример:
bench new-site erpnext.how2hsout.com
Когда вы запустите вышеуказанную команду, она запросит ваш пароль корня MYSQL для создания базы данных. Кроме того, установите пароль для вашего Администратор сайта ERPNext учетная запись, , которая понадобится нам позже для доступа к панели Dashboard.

Шаг 7: Установка ERPNext на Ubuntu 24.04 LTS
Давайте загрузим приложение ERPNext для установки на нашу систему и некоторые другие необходимые приложения, которые могут потребоваться для использования ERPNext в производстве.
Чтобы получить версию 15 ERPNext:
bench get-app --branch version-15 erpnext
Создание супревизора
Необходимо запустить и перезапустить все службы Frappe с помощью одной команды.
Те, кто получает эту ошибку: supervisorctl restart frappe: frappe: ERROR (нет такой группы) также можно использовать приведенные команды…
Приведенные ниже команды создадут supervisor.conf файл под вашим ~/frappe-bench/config каталог.
cd ~/frappe-bench
bench setup supervisor
Теперь создайте необходимую симлинк.
sudo ln -s ~/frappe-bench/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
На перезапустить все службы Frappe, перезапустите свой Супервизор:
sudo service supervisor restart
——————— end here——————-
Аналогично, те, кто хочет HRMS и Платежи , желающие включить дополнительные функции в своем экземпляре ERPnext, также могут их получить:
bench get-app payments
bench get-app hrms

Теперь, установите приложения, которые мы скачали, с помощью команды bench, а это — erpnext, hrm и payment. Команды для этого следующие:
Примечание: Заменить [your-site-name] на тот, который вы созданным в Шаг 7 этой статьи. Например, здесь, мы используем local.example.com.
bench --site [your-site-name] install-app erpnext
bench --site [your-site-name] install-app hrms
bench --site [your-site-name] install-app payments
Аналогичным образом вы можете установить и другие приложения, доступные для ERPnext или Frappe.

Шаг 8: Запустите Bench для тестирования веб-сайта ERPnext
Мы успешно установили и создали сайт ERPNext на Ubuntu. Давайте проверим, работает он или нет. В терминале выполните команду:
bench start
Приведенная выше команда запустит сервер разработки для тестирования вашего сайта. Вы увидите local IP-адрес , на котором запущен ваш веб-сайт ERPNext. По умолчанию он будет работать на порту с номером 8000; однако, если она недоступна или занята другим приложением, может быть другим.

Откройте веб-браузер и наведитесь на Ip-адрес, указанный в выводе терминала сервера разработки:
Если вы получите ошибку 404 при доступе к сайт, посмотрите следующий шаг для ее решения. Мы получили это; сначала, остановить скамейку нажав Ctrl+C.

Ошибка: Получение 404 not found при запуске скамейки в браузере
Итак, как решить эту ошибку? Во-первых, остановите запущенный сервер Bench с помощью Ctrl+C в терминале, где его процесс все еще активен.
Сначала переключитесь в директорию Frappe bench, если вы этого еще не сделали.
cd ~/frappe-bench/
Настройте стенд на использование вашего сайта:
bench use (webstie-name)
Проверьте, доступен ли файл там сейчас:
Сейчас, снова выполните bench start
в терминале, после чего откройте браузер и укажите локальный IP-адрес вместе с портом. На этот раз вы увидите интерфейс входа в систему, как показано на данном скриншоте.
Как только вы получите логин интерфейс, вы можете использовать имя пользователя администратор, и пароль ибо это тот, который вы установленный Шаг 7 при создании сайта ERPNext.

После этого установка также попросит вас установить язык для панели инструментов и другую общую информацию.

На этом шаге вы можете создать еще одного пользователя для доступа к панели ERPNext Dashboard и другим настройкам в дополнение к Admin.

Создайте организацию, указав необходимые данные.

Наконец, перед вашими глазами появится панель ERPNext Dashboard, запущенная на вашей Ubuntu 24.04.


После того как вы настроили ERPNext в соответствии с вашими требованиями, давайте выключим сервер разработки Bench, чтобы сделать наш EPRNext пригодным для использования в производстве.
Перейдите в терминал, где все еще активен процесс «Запуск стенда», и нажмите кнопку Ctrl+X клавиши на клавиатуре.
Шаг 9: Настройка ERPNext для производства (необязательно)
В предыдущем шаге мы видели, что доступ к ErpNext осуществляется через браузер с использованием локального IP-адреса сервера, но с определенным номером порта. Однако в производственной среде вы хотите использовать какой-то домен без добавления определенного номера порта. Давайте посмотрим, как это сделать.
Сначала в терминале
- Включите планировщик
bench --site [your-site-name] enable-scheduler
- Отключить режим обслуживания
bench --site [your-site-name] set-maintenance-mode off
- Установка производственного конфига
sudo bench setup production [your-user]
- Настройка супервизора:
Если вы не создали супервизора с помощью команд, приведенных в Шаге 7 этой статьи, то используйте приведенные команды, в противном случае пропустите их.
Вот команды для этого:
bench setup supervisor
sudo ln -s `pwd`/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
- Установите Nginx и настройте для Bench
Nginx нужен в качестве прокси-сервера для использования HTTP-порта 80 вместо 8000 для доступа к ERPNext Dashboard.
sudo apt install nginx
Используйте Bench для автоматической настройки вашего сайта на порт 80.
bench setup nginx
Скопируйте созданный файл конфигурации Frappe Nginx в основной каталог Nginx. Если файл уже существует, пропустите эту команду.
sudo ln -s `pwd`/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf
- Отключение тестовой страницы по умолчанию
sudo unlink /etc/nginx/sites-enabled/default
sudo unlink /etc/nginx/sites-available/default
- Перезапустите Nginx, чтобы применить изменения
sudo systemctl restart nginx
——-Необязательно, используйте только в том случае, если вы получили одну из указанных ошибок.———-
(необязательно) Если в ответ вы получите ошибку, то есть:
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
Как мы получили вышеуказанную ошибку при настройке Nginx для доступа к ERPNext, поэтому мы обсуждаем ее здесь. Если это произошло и в вашем случае, то сначала отредактируйте файл конфигурации Ngnix:
sudo nano /etc/nginx/nginx.conf
Теперь в любом месте между секцией http {} добавьте следующие строки:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Чтобы получить представление, посмотрите на приведенный скриншот:

Сохраните файл с помощью Ctlr+X. Затем нажмите Y и клавишу Enter. Теперь снова попробуйте перезапустить Nginx, и на этот раз вы не столкнетесь с ошибкой:
sudo systemctl restart nginx
Если вы все еще получаете ту же ошибку, проверьте файл конфигурации Nginx с помощью :
sudo nginx -t
Те, кто попадает в него, возвращают следующую ошибку:
2024/10/13 02:05:22 [emerg] 21991#21991: open() "/etc/nginx/conf.d/frappe-bench.conf" failed (2: No such file or directory) in /etc/nginx/nginx.conf:63
Вы можете использовать приведенные команды для ее удаления:
cd /etc/nginx/conf.d
Создайте отсутствующий файл:
sudo touch frappe-bench.conf
Убедитесь в правильном разрешении:
sudo chown www-data:www-data /etc/nginx/conf.d/frappe-bench.conf
После создания файла проверьте конфигурацию Nginx:
sudo nginx -t
Если тест пройден, перезапустите Nginx:
sudo systemctl restart nginx
—————-Необязательно — конец решения ошибок————-
Используйте IP-адрес или домен вашего сервера для доступа к панели ERPNext Dashboard. Вы получите его без использования дополнительного порта, например 8000.
http://your-domain.com или http://sever-ip-address
Примечание: Если при доступе к ERPNext вы получите ошибку, как показано ниже:
Sorry!
We will be back soon.
Don’t panic. It’s not you, it’s us.
Most likely, our engineers are updating the code, and it should take a minute for the new code to load into memory.

Чтобы решить проблему, перезапустите службу Supervisor:
sudo service supervisor restart
Теперь проверьте, что все работает нормально:
systemctl status supervisor --no-page -l
После этого обновите страницу браузера, на которой вы получаете доступ к панели ERPNext Dashboard.

Дополнительная информация:
Если вы хотите использовать ERPNext с некоторыми локальный домен созданный на вашем локальном компьютере, затем укажите его в вашем /etc/hosts файл в 127.0.0.1. Чтобы упростить задачу, можно просто выполнить приведенную команду:
bench --site [your-site-name] add-to-hosts
Например, у нас есть локально созданный домен, который также был именем нашего сайта ERPnext, здесь, в этом учебнике, то есть local.example.com. Итак, чтобы использовать его для доступа к панели ERPnext только в нашей локальной сети или на ПК, мы можем воспользоваться приведенной командой:
bench --site local.example.com add-to-hosts
Как обновить Bench:
Используйте данную команду для обновления бенча и других его компонентов. Она извлекает изменения для bench-repo и всех приложений, применяет патчи, собирает JS и CSS, а затем мигрирует.
bench update

Те, кто впоследствии захочет снять права sudo со своего пользователя ERPNext, могут выполнить данную команду:
sudo usermod -G "" erpnext