Как установить ERPNext с открытым исходным кодом ERP на Ubuntu 17.04

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.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше