dram.me

metasfresh安装配置(Web版)

本文简要描述在Ubuntu 20.04中安装metasfresh的Web端的基本流程,如果需要使用Swing客户端,可以参考这里。相较于之前的安装说明,本文中没有引入Aapche HTTP服务。

注意:metasfresh当前版本只支持Java 8,不支持更高版本,以下默认系统已经安装相应版本软件包(openjdk-8-jdk-headless)。

获取代码

首先获取metasfresh-docker仓库代码,后续步骤中多有用及:

git clone https://github.com/metasfresh/metasfresh-docker.git

数据库配置

执行以下命令创建并配置PostgreSQL数据库:

% initdb -D data -U postgres -A password -W
% pg_ctl -D data -l data/data.log start
% psql postgres postgres
# create role metasfresh with login password 'metasfresh' ;
# create database metasfresh with owner metasfresh ;

https://github.com/metasfresh/metasfresh/blob/master/Jenkinsfile中找到数据库初始数据的链接并下载,如:

wget https://metasfresh.com/wp-content/releases/db_seeds/metasfresh_latest.pgdump

再执行以下命令导入初始数据:

pg_restore -j 8 -U metasfresh -d metasfresh metasfresh_latest.pgdump

基于以下命令下载数据迁移工具:

wget $(grep 'RUN curl' metasfresh-docker/docker-src/app/Dockerfile | cut -d' ' -f3 | sed -e 's/-dist.tar.gz/-sql-only.tar.gz/')

解压后,执行如下命令:

cd dist/install
cat >settings.properties <<EOF
METASFRESH_DB_SERVER=localhost
METASFRESH_DB_PORT=5432
METASFRESH_DB_NAME=metasfresh
METASFRESH_DB_USER=metasfresh
METASFRESH_DB_PASSWORD=metasfresh
EOF
java -jar lib/de.metas.migration.cli.jar -s settings.properties

RabbitMQ

安装rabbitmq-server包,然后启动服务:

service rabbitmq-server start

Web UI服务

拷贝相关文件:

cp -r metasfresh-docker/docker-src/webui/sources/dist webui
cp metasfresh-docker/docker-src/webui/sources/configs/config.js webui
cp metasfresh/frontend/favicon.png webui

调整config.js配置:

sed -i 's|http://MYDOCKERHOST:PORT||g' webui/config.js

设置404页面内容,以支持React页面跳转:

mkdir webui/error
ln webui/index.html webui/error/404.html

Web API服务

基于以下命令创建服务配置文件:

sed -e "s/FOO_APP/localhost/g" -e "s/FOO_DBMS/localhost/g" metasfresh-docker/webapi/sources/configs/metasfresh.properties >metasfresh.properties

再据以下命令获取webapi服务包(基于metasfresh-docker/docker-src/webapi/Dockerfile文件中的地址):

curl -o webapi.jar $(grep 'RUN curl' metasfresh-docker/docker-src/webapi/Dockerfile | cut -d' ' -f3)

创建application.properties,内容如下:

PropertyFile=metasfresh.properties
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.elasticsearch.ReactiveElasticsearchRestClientAutoConfiguration
spring.data.elasticsearch.repositories.enabled=false
spring.resources.static-locations=file:webui
spring.session.timeout=7200
webui.frontend.allow-cross-site-usage=true

运行服务:

/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Xmx1G -jar webapi.jar