-
Kernel
-
Plugins
-
Решения
Kernel
Plugins
Решения
Minimal system requirements for running server with BGERP + MySQL:
OS Linux, preferably RPM based: CentOS or RHEL, because the samples below;
CPU core equal Intel x86 500 MHz, recommended - 1 GHz;
512 MB RAM, recommended - 1 GB.
Installation from Docker image.
The Docker image is approximately 1 GB and contains the latest published build will all the required components: MySQL, Java. The actual Demo is also applied during first run.
This variant perfectly fits for following purposes:
having first look and playing with program;
running in different environment, e.g. already installed MySQL with not appropriate version.
Run this script for initial install as well as for update.
docker pull bgerp/bgerp && docker run -d --name bgerp --restart unless-stopped \
-v /srv/bgerp/data/mysql:/var/lib/mysql \
-v /srv/bgerp/data/filestorage:/opt/bgerp/filestorage \
-v /srv/bgerp/data/backup:/opt/bgerp/backup \
-v /srv/bgerp/conf:/opt/bgerp/conf \
-v /srv/bgerp/log:/opt/bgerp/log \
-p 9088:9088 \
bgerp/bgerp && docker logs --follow bgerp
The running container is available via Web-interface. Use NGINX for restricting access from outside network.
The container may also publish MySQL ports 3306, 33060, that might be create a security issue. |
For removing container, also before update.
docker stop bgerp && docker rm bgerp
Completely remove all the related data. |
rm -rf /srv/bgerp
Installation on Linux server.
Original MySQL DB Server version 8.0 or newer.
Different forks of MySQL (Maria, Percona) do not fit because of missing fulltext index support. Here is the test query to verify it:
// PzdcDoc snippet of: 'src/ru/bgcrm/plugin/fulltext/db.sql', lines: 1 - 9
CREATE TABLE IF NOT EXISTS fulltext_data (
object_type VARCHAR(100) NOT NULL,
object_id INT NOT NULL,
scheduled_dt DATETIME,
data TEXT NOT NULL,
FULLTEXT (data) WITH PARSER ngram,
KEY scheduled_dt (scheduled_dt),
UNIQUE KEY type_id (object_type, object_id)
);
Install instructions:
MySQL using Docker - in case of already installed MySQL with different version on your server.
Check the required options below in [mysqld] section in file my.cnf:
[mysqld] sql-mode=
sql-mode must be set exactly to empty string, as shown in the example. If sql-mode is not defined - add it, if missing - make value DB creation script contains correctness of it any case. |
Add missing sql-mode command:
sed -i '/\[mysqld\]/a sql-mode= ' /etc/mysql/my.cnf
You will also need a root access to the MySQL Server one time.
Required version OpenJDK 11, may be installed so:
sudo yum update sudo yum install -y java-11-openjdk-devel
Check, what commands java and javac are available after installation. |
All the operations require root user.
Check and install if needed script dependencies:
sudo yum update
sudo yum install -y epel-release
sudo yum install -y zip pwgen wget mysql-community-client unzip
Download archive and unpack it:
wget https://bgerp.org/download/3.0/bgerp.zip -O /tmp/bgerp.zip &&
unzip /tmp/bgerp.zip -d /opt &&
chmod 744 /opt/bgerp/*.sh
Generate DB password ant put it in files:
ERP_DB_PWD=`pwgen -y -c 20` && export EPR_DB_PWD &&
echo "Setting DB password: '$ERP_DB_PWD'" &&
sed -i "s/GENERATED_PASSWORD/$ERP_DB_PWD/" /opt/bgerp/bgerp.properties &&
sed -i "s/GENERATED_PASSWORD/'$ERP_DB_PWD'/" /opt/bgerp/db_create.sql
Run DB user and structure creation:
mysql --default-character-set=utf8 -h127.0.0.1 -uroot -p < /opt/bgerp/db_create.sql
mysql --default-character-set=utf8 -h127.0.0.1 -ubgerp -p$ERP_DB_PWD < /opt/bgerp/db_init.sql
Apply data from the Demo:
wget https://demo.bgerp.org/bgerp.sql -O /opt/bgerp/bgerp.sql
mysql --default-character-set=utf8 -h127.0.0.1 -uroot -p bgerp < /opt/bgerp/bgerp.sql
Change if needed in bgerp.properties DB server host, HTTP and management ports, in setenv.sh JAVA_HOME:
JAVA_HOME=/usr
if [ -z "$JAVA_HOME" ]; then
echo "The JAVA_HOME environment variable is not defined"
echo "This environment variable is needed to run this program"
exit 1
fi
java and javac are looked in $JAVA_HOME/bin/
For starting/stopping use erp_start.sh/erp_stop.sh. erp_status.sh - shows current status of the application. After starting check log/bgerp.log and log/bgerp.out on errors.
The running application is available via Web-interface.
The Demo system is running on https://demo.bgerp.org with the latest published builds of software and resets to initial state any 3rd hour.
Изучите лог обновлений, там могут содержаться важные сведения либо инструкции. |
В оснастке Пуск - Администрирование - Приложение - Статус приложения доступен просмотр текущей версии приложения, списка с логами обновлений. Для всех операций неявно используются консольные утилиты, описанные далее.
Раздел Обновление - обновление на текущую версию системы и набора библиотек. Выполняемая команда:
./backup.sh && ./installer.sh update(f) && ./erp_restart.sh
Раздел Обновление на изменение - загрузка пакетов обновления изменения по коду процесса. Выполняемая команда:
./backup.sh && ./installer.sh install update_3.0_xxxx.zip && ./erp_restart.sh
Повторное Обновление после Обновления на изменение позволит сбросить сервер в состояние последнего официального апдейта. |
Перед установкой обновления всегда делайте резервную копию программы при помощи скрипта backup.sh
|
Для обновления вызовите команду:
./installer.sh update
Для обновления системы на иную версию (не 3.0) вызовите команду:
./installer.sh update <version>
например:
./installer.sh update 3.0
Запуск скрипта без параметров выводит подсказку по дополнительным командам:
updatef - принудительное обновлении на последнюю версию без сравнения её с установленной;
update <version> - установка другой версии BGERP, версия соответствует окончанию адреса FTP;
killhash - очистка хэшей применённых SQL обновлений с последующим выполнением всех команд, рекомендуется попробовать при наличии ошибок SQL запросов в обновлении;
install <zip> - установка обновления из ZIP архива.
Рекомендованный однострочик для обновления (можете исключить db параметр для ускорения и выполнять бакап базы только эпизодически):
./backup.sh db && ./installer.sh update && ./erp_restart.sh
Для изменений структуры БД в скриптах внутри пакетов обновлении используются хранимые процедуры. Например:
CALL add_column_if_not_exists('task', 'config', 'TEXT NOT NULL');
При восстановлении БД из резервной копии они пропадают. Процедура обновления происходит с ошибками. В этом случае необходимо выполнить следующие команды:
./installer.sh killhash
./installer.sh updatef
Первая удаляет из БД информацию о уже применённых обновлениях структуры, вторая - производит повторное выполнение всех скриптов.
Плагины дополняют функционал ядра, позволяя максимально гибко сконфигурировать систему под нужды конкретной организации-пользователя. В данный момент все доступные плагины включены в общую сборку. Для отключения функций плагина необходимо удалить XML файл описания из каталога BGERP/plugin.
Typically the application is running in Intranet, access to restricted interfaces from outside as well as SSL may be organized using NGINX.
NGINX docs: http://nginx.org/en/docs/
The application is runnun on internal host erp.int.bitel.ru. Outside on host erp.bitel.ru is available only open interface http://erp.bitel.ru/open The configuration may be typically placed in file /etc/nginx/conf.d/erp.bitel.ru
server { server_name erp.bitel.ru; access_log /var/log/nginx/erp.bitel.ru.access.log; client_max_body_size 50m; # optionally close access without interface #location / { # return 404; #} # for opening user interface - add admin|login.do|user # for opening user mobile interface - add usermob location ~ ^/(open|img|images|css|lib|js)(.*)$ { if ($args = '') { proxy_pass http://erp.int.bitel.ru/$1$2; } if ($args != '') { proxy_pass http://erp.int.bitel.ru/$1$2?$args; } proxy_set_header Host $host; proxy_set_header Connection close; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 300; gzip_proxied any; } # this part has to be generated first by CertBot: # certbot --nginx -d bgerp.ru -d www.bgerp.ru -d bgerp.de -d www.bgerp.de -d bgerp.org -d www.bgerp.org listen 443 ssl; # managed by Certbot listen [::]:443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/erp.bitel.ru/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/erp.bitel.ru/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } # redirect HTTP to HTTPS server { listen 80; listen [::]:80; server_name crm.bitel.ru; server_name team.bgerp.org; return 301 https://$host$request_uri; }