
В современной быстро меняющейся бизнес-среде эффективное управление ресурсами предприятия имеет решающее значение для успеха. Системы планирования ресурсов предприятия (ERP), такие как ERPNext, играют ключевую роль в оптимизации операций, управлении данными и повышении производительности. Если вы собираетесь установить ERPNext на свой сервер Ubuntu Linux для эффективного управления бизнесом, то вы попали по адресу.
В этом пошаговом руководстве мы опишем важные шаги для успешной установки ERPNext на вашу систему Ubuntu 22.04.
Что нам нужно?
Прежде чем приступить к установке, убедитесь, что у вас есть все необходимые предпосылки:
1. Рекомендуется чистая установка сервера LTS Ubuntu.
2. Терминал Доступ к серверу через SSH или прямой терминальный доступ.
3. Корневой доступ для операций системного уровня.
4. Подключение к Интернету для загрузки пакетов в процессе установки.
Примечание: Это руководство не ограничивается Ubuntu 22.04 Focal Foss, но также может быть использовано для Debian, Ubuntu 20.04 и других подобных операционных систем.
Шаг 1: Обновление сервера Ubuntu 22.04
Хорошей практикой будет запуск команды обновления системы в нашем Linux перед установкой нового пакета через некоторое время. Это не только установит последние доступные обновления для ваших системных пакетов, но и обновит индексный кэш APT.
sudo apt update && sudo apt upgrade
Шаг 2: Создание выделенного пользователя для EPRNext
Вместо того чтобы использовать нашего текущего пользователя sudo для установки EPRNext, давайте создадим отдельного пользователя с правами sudo. Не волнуйтесь. Мы удалим права sudo с него позже, чтобы сделать нашу систему более безопасной.
Создайте пользователя:
sudo useradd -m erpnext -s /bin/bash
sudo usermod -aG sudo erpnext
Назначьте пароль, чтобы сделать учетную запись безопасной:
sudo passwd erpnext
Войдите в систему под пользователем ERPNext и запустите обновление системы:
sudo su - erpnext
sudo apt update

Шаг 3: Установка необходимых зависимостей
Для установки ERPNext на Ubuntu нам необходимо установить несколько зависимостей, чтобы в дальнейшем не столкнуться с проблемами, связанными с пакетами. Вот команда, которую нужно запустить в терминале:
sudo apt install python3-minimal build-essential python3-setuptools python3-pip python3-dev libffi-dev libssl-dev ca-certificates curl gnupg xvfb libfontconfig wkhtmltopdf libmysqlclient-dev software-properties-common python3-venv supervisor git
Шаг 4: Установка сервера баз данных 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 и ударить Введите.
Шаг 5: Установите Redis Server для ERPNext
Для кэширования и управления очередью задач установите сервер Redis на Ubuntu для вашего ERPNext.
sudo apt install redis-server
Шаг 6: Установите Node.js и Yarn
ERPNext использует Node.js для своего фронт-энда. Поэтому, чтобы получить последнюю LTS-версию Node.js, вручную добавьте его репозиторий с помощью команд в системе Ubuntu.
Добавьте ключ Node GPG:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
Добавьте репозиторий Node APT:
Здесь, мы устанавливаем Node LTS 18 версия. При необходимости вы можете выбрать 16 или 20 просто изменив-NODE_MAJOR= номер версии на , который вам нужен.
NODE_MAJOR=18
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
Запустите обновление системы:
sudo apt update
После добавления репозитория мы можем установить Nodejs:
sudo apt install nodejs
Используйте менеджер пакетов Node NPM, а также установите YARN:
sudo npm install -g yarn
Шаг 7: Получите скамейку для фраппе
Теперь мы установим Frappe Bench, который представляет собой инструмент командной строки для управления установками ERPNext:
Использование виртуальной среды (рекомендуется):
Создайте изолированную среду, в которой можно устанавливать пакеты, не затрагивая системные пакеты.
python3 -m venv ~/frappe-bench-env
source ~/frappe-bench-env/bin/activate
Это создаст виртуальную среду в ~/frappe-bench-env и активирует ее, что позволит вам установить и использовать frappe-bench локально.
pip3 install frappe-bench
Добавить Скамейка запасных в свой путь; для этого отредактируйте файл Bashrc:
nano ~/.bashrc
Прокрутите вниз и добавьте следующую строку в конец файла, как показано на скриншоте:
PATH=$PATH:~/.local/bin/
Сохраните и закройте файл с помощью кнопки Ctrl+X, Y, , а затем нажмите Введите.

Теперь запустите:
source ~/.bashrc
Инициализация Frappe Bench
Теперь мы можем получить доступ к бенчу из любого места нашего терминала, поэтому инициализируем его. Здесь, мы собираемся версия 14, , которая была последней на момент написания этой статьи. Вы можете выбрать соответствующую версию при выполнении этого руководства. Вам нужно заменить 14 на ту версию, которую вы хотите использовать.
bench init --frappe-branch version-14 frappe-bench
Переключите директории в каталог Frappe Bench
cd frappe-bench
Изменение прав доступа к каталогу пользователя
Это даст пользователю bench разрешение на выполнение в домашнем каталоге.
sudo chmod -R o+rx /home/[your-user]
Например, мы создали “erpnext” в качестве нашего пользователя в начале этого руководства, поэтому мы используем его. Если вы используете какой-то другой, то замените [your-user] на это в приведенной выше команде.
Создайте сайт, который вы хотите использовать для ERPnext:
Допустим, у нас есть домен – local.example.com и хотим использовать его для доступа к нашему сайту ERPnext. Итак, создайте сайт, используя это, вот пример:
bench new-site [your-site-name]
Пример:
bench new-site local.example.com
Когда вы запустите вышеуказанную команду, она запросит ваш пароль корня MYSQL для создания базы данных. Также здесь установите пароль для вашего Администратор сайта ERPNext учетная запись, , которая понадобится нам позже для доступа к панели Dashboard.

Шаг 8: Установка ERPNext на Ubuntu 22.04 LTS
Давайте загрузим приложение ERPNext для установки на нашу систему и некоторые другие необходимые приложения, которые могут потребоваться для использования ERPNext в производстве.
Чтобы получить версию 15 ERPNext:
bench get-app --branch version-15 erpnext
——————(необязательно) Дополнительная информация———————
Тем, кто получает эту ошибку: 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.

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

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

Ошибка: Получение 404 not found при запуске скамейки в браузере
Как же решить эту ошибку? Во-первых, остановите запущенный сервер Bench с помощью Ctrl+C в терминале, где его процесс все еще активен.
После этого нужно переключиться на Сайты каталог и создайте файл, давайте посмотрим, как это сделать?
cd ~/frappe-bench/sites
Создайте файл currentsite.txt:
nano currentsite.txt
Добавьте свой текущее название сайта в нем, , который вы использовали для ERPNext. Чтобы сохранить файл, нажмите Ctrl+X а затем Y, после клавиша Enter клавиша. Например, мы создали сайт с именем local.example.com, поэтому мы просто добавили это.

Проверьте, доступен ли файл там сейчас:
ls

Теперь, снова выполните bench start
в терминале, после чего откройте браузер и укажите локальный IP-адрес вместе с портом. На этот раз вы увидите интерфейс входа в систему, как показано на данном скриншоте.
Как только вы получите логин интерфейс, вы можете использовать имя пользователя администратор, и пароль ибо это тот, который вы установленный Шаг 7 при создании сайта ERPNext.

После этого установка также попросит вас установить язык для панели управления и другую общую информацию.
Кроме администратора, на этом шаге вы можете создать еще одного пользователя для доступа к панели ERPNext Dashboard и другим настройкам.
Создайте организацию, указав необходимые данные.
Наконец, перед вашими глазами появится панель ERPNext Dashboard, запущенная на вашей Ubuntu 22.04.

Теперь, когда вы настроили ERPNext в соответствии с вашими требованиями, давайте выключим сервер разработки Bench, чтобы сделать наш EPRNext живым для использования в производстве.
Зайдите в терминал, где все еще активен процесс “bench start”, и нажмите кнопку Ctrl+X клавиши на клавиатуре.
Шаг 10: Настройка ERPNext для производства
Итак, в предыдущем шаге мы видели, что получали доступ к ErpNext в браузере, используя ip-адрес локального сервера, но с определенным номером порта. Однако в производственной среде вы определенно захотите использовать какой-то домен без добавления определенного номера порта. Давайте посмотрим, как это сделать.
Сначала в вашем Temrinal
- Включите планировщик
bench --site [your-site-name] enable-scheduler
- Отключить режим обслуживания
bench --site [your-site-name] set-maintenance-mode off
- Настройка Супервизор:
Хотя мы уже обсуждали, как настроить супервизора в Шаг 8 этой статьи, если вы не выполнили его, то вот команды для повторного выполнения:
cd ~/frapper-bench
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 и нажмите кнопку Введите ключ. Теперь снова попробуйте перезапустить 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 systemctl restart supervisor.service
Теперь проверьте, что все работает нормально:
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
Конечное примечание:
Итак, это был учебник, в котором мы не только постарались подробно рассказать об установке ERPNext на сервер Ubuntu, но и о решении проблем, с которыми мы столкнулись при его настройке. Если вам нужна дополнительная информация, вы можете посмотреть официальную документацию.