ERP или Enterprise Resource Planning - это пакет корпоративных приложений, используемый для управления основными бизнес-процессами. ERPNext - это бесплатное ERP-приложение с открытым исходным кодом, написанное на Python Он использует Node.js для внешнего интерфейса и MariaDB для хранения своих данных. ERPNext предоставляет простой в использовании веб-интерфейс, который позволяет предприятиям управлять повседневными задачами. Он содержит модули для учета, CRM, HRM, производства, POS, управления проектами, закупок, управления продажами, управления складом и многое другое. ERPNext может использоваться для управления различными отраслями, такими как поставщики услуг, производство, розничная торговля и школы.
Предпосылки
Примечание. В этом руководстве мы будем использовать erp.example.com
имя домена, указывающее на сервер. Пожалуйста, не забудьте заменить все вхождения erp.example.com
с вашим фактическим доменным именем .
Прежде чем мы начнем, убедитесь, что ваш сервер обновлен.
sudo apt update
sudo apt -y upgrade
ERPNext требует Python версии 2.7 для работы. Установите Python 2.7.
sudo apt -y install python-minimal
Вы должны быть в состоянии проверить его версию.
python -V
Вы увидите следующий вывод.
user@vultr:~$ python -V
Python 2.7.13
Установите еще несколько зависимостей.
sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev
Установите pip
инструмент Python . Pip - менеджер зависимостей для пакетов Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Убедитесь, что у вас последняя версия pip
и setuptools
.
sudo pip install --upgrade pip setuptools
Установите Ansible с помощью Pip. Ansible автоматизирует предоставление программного обеспечения, управление конфигурацией и развертывание приложений.
sudo pip install ansible
Установите сервер MariaDB
Добавьте репозиторий MariaDB в систему.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Установите MariaDB.
sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev
Укажите надежный пароль для пользователя root MariaDB при запросе.
Механизм хранения Barracuda необходим для создания баз данных ERPNext, поэтому вам необходимо настроить MariaDB для использования механизма хранения Barracuda. Отредактируйте файл конфигурации MariaDB по умолчанию my.cnf
.
sudo nano /etc/mysql/my.cnf
Добавьте следующие строки под [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
Перезапустите MariaDB и включите его для автоматического запуска во время загрузки.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Перед настройкой базы данных вам необходимо обезопасить MariaDB. Вы можете защитить его, запустив mysql_secure_installation
скрипт.
sudo mysql_secure_installation
Вам будет предложено ввести текущий пароль root для MariaDB. Укажите пароль, который вы установили во время установки. Вам будет задан вопрос, хотите ли вы изменить существующий пароль корневого пользователя вашего сервера MariaDB. Вы можете пропустить установку нового пароля, так как вы уже указали надежный пароль во время установки. Ответьте «Y» на все остальные вопросы.
Установите Nginx, Node.js и Redis
Добавьте репозиторий Nodesource для Node.js 8.x.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Установите Nginx, Node.js и Redis.
sudo apt -y install nginx nodejs redis-server
Запустите Nginx и включите его во время загрузки.
sudo systemctl start nginx
sudo systemctl enable nginx
Запустите Redis и включите его во время загрузки.
sudo systemctl start redis-server
sudo systemctl enable redis-server
Установить PDF Converter
wkhtmltopdf
Программа представляет собой линию инструмента команды , которая преобразует HTML в PDF , используя движок рендеринга Webkit QT. Установите необходимые зависимости.
sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base
Загрузите последнюю версию 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
утилита командной строки, предоставляемая Frappe для установки и управления приложением ERPNext в Unix-системах как для целей разработки, так и для производства. Bench также может создавать и управлять конфигурациями Nginx и supervisor.
Создайте нового пользователя для запуска процессов Bench в изолированной среде.
sudo adduser bench --home /opt/bench
Предоставьте sudo
разрешения bench
пользователю.
sudo usermod -aG sudo 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
Инициализируйте стендовый каталог с установленным фреймворком. Чтобы сохранить все в порядке, мы будем работать в /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
Вы можете сразу запустить приложение, чтобы проверить, успешно ли установлено приложение.
bench start
Однако вы должны остановить выполнение и перейти к настройке приложения для производственного использования.
Мастер настройки и Nginx
По умолчанию приложение ERPNext прослушивает порт 8000
, а не стандартный порт HTTP 80
. Кроме того, запуск встроенного веб-сервера для производственного использования не рекомендуется, поскольку мы будем показывать сервер всему миру. Вы должны использовать производственный веб-сервер в качестве обратного прокси-сервера, такого как Apache или Nginx. Мы будем использовать Nginx в качестве обратного прокси, так как он может быть автоматически настроен с помощью Bench. Bench может автоматически генерировать и устанавливать конфигурацию в соответствии с настройкой ERPNext.
Хотя мы можем запустить приложение с помощью команды «Стенд запуска», выполнение ERPNext остановится, как только вы закроете терминал. Чтобы преодолеть эту проблему, вы должны использовать Supervisor, который очень полезен для непрерывной работы приложения в производственной среде. Supervisor - это система управления процессами, которая позволяет вам контролировать и контролировать ряд процессов в операционных системах Linux. После настройки Supervisor оно автоматически запустит приложение как во время загрузки, так и при сбоях. Bench может автоматически настраивать Supervisor для приложения ERPNext.
Установите Supervisor.
sudo apt -y install supervisor
Запустите Supervisor и включите его автоматический запуск во время загрузки.
sudo systemctl start supervisor
sudo systemctl enable supervisor
Установка скамейки для производственного использования.
sudo bench setup production bench
Приведенная выше команда может запросить у вас запрос о замене существующего файла конфигурации Supervisor по умолчанию на новый. Выберите, y
чтобы продолжить. Bench добавляет ряд процессов в файл конфигурации Supervisor. Приведенная выше команда также спросит вас, хотите ли вы заменить текущую конфигурацию Nginx новой. Войдите, y
чтобы продолжить. Когда Bench закончит установку конфигурации, предоставьте другим пользователям возможность выполнять файлы в вашем домашнем каталоге пользователя Bench.
chmod o+x /opt/bench/
Теперь вы можете получить доступ к сайту на http://erp.example.com
.
Вы можете проверить состояние процессов, запустив.
sudo supervisorctl status all
Вы должны увидеть следующий вывод.
bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache RUNNING pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue RUNNING pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio RUNNING pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web RUNNING pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio RUNNING pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0 RUNNING pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0 RUNNING pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule RUNNING pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0 RUNNING pid 13875, uptime 0:00:54
Чтобы остановить все процессы 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 для использования сертификатов.
Доменное имя, которое вы используете для получения сертификатов от Let's Encrypt CA, должно быть указано на сервер. Клиент проверяет полномочия домена перед выдачей сертификатов .
Включите многопользовательский режим 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 в соответствии с вашей компанией. Теперь вы можете использовать приложение для управления вашей компанией.
Поздравляем, на вашем сервере Ubuntu 17.04 установлено полностью работающее приложение ERPNext.