This manual describes the installation of the following services according to this overview:
Minimum | Recommended | |
---|---|---|
RAM | 4 GB | 8 GB (increases with database size) |
CPU | 1 VCPU | 4 VCPU |
HDD | 10 GB | 20 GB |
OS Recommendation | Linux server | Ubuntu 22.04 |
Install Docker and then the Docker Compose plugin via the official Docker repository.
Clone the metasfresh-docker
folder and change into the newly created directory.
git clone https://github.com/metasfresh/metasfresh-docker.git
cd metasfresh-docker/
This directory contains the docker-compose.yml
file.
docker-compose.yml
and adapt it as you need it.
Note: You will find an example for this at the end of this guide.
Comment environment
and http://example.com:8080
and replace example.com:8080
with the URL and port, where the server should be reachable from the browser.
...
environment:
- WEBAPI_URL=http://example.com:8080
...
Note: Port
:8080
is only necessary if another port should be used as port 80.
See also: How do I change the WebUI ports for metasfresh-Docker?
WICHTIG: |
---|
If you are using an RPM-based distribution and/or the file /etc/timezone is not available on your Docker host, comment out or remove the line - /etc/timezone:/etc/timezone:ro from your docker-compose.yml file! |
Create the Docker containers.
docker compose build
Now you can start and stop docker with the folowing commands:
#start#
docker-compose up -d
#stop#
docker-compose down
Note: The first time you start the container, it may take a few minutes until the database is populated and the service is available.
After successful installation you can access the WebUI via:
http://example.com
or
http://example.com:PORT
(if the default port is not 80).db:
build: db
restart: always
volumes:
- ./volumes/db/data:/var/lib/postgresql/data
- ./volumes/db/log:/var/log/postgresql
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- METASFRESH_USERNAME=metasfresh
- METASFRESH_PASSWORD=metasfresh
- METASFRESH_DBNAME=metasfresh
- DB_SYSPASS=System
app:
build: app
hostname: app
links:
- db:db
- search:search
expose:
- "8282"
- "61616"
restart: always
volumes:
- ./volumes/app/log:/opt/metasfresh/log:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- METASFRESH_HOME=/opt/metasfresh
webapi:
build: webapi
links:
- app:app
- db:db
- search:search
#for accessing the api directly (eg. for debugging or connecting your
#app to the metasfresh api) uncomment following lines:
#ports:
#- "8080:8080"
restart: always
volumes:
- ./volumes/webapi/log:/opt/metasfresh-webui-api/log:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
webui:
build: webui
links:
- webapi:webapi
ports:
- "80:80"
- "443:443"
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
#uncomment and set to URL where metasfresh will be available from browsers
environment:
- WEBAPI_URL=http://myserver.com
search:
build: search
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- ./volumes/search/data:/usr/share/elasticsearch/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- "ES_JAVA_OPTS=-Xms128M -Xmx256m"
restart: always
If you want to make the reports contained in the metasfresh app Docker image editable, you first have to move them outside as a volume in the docker-compose.yml
.
# Added new reports volume to be able to
# customize the Jasper Reports files
volumes:
- ./volumes/app/reports:/opt/metasfresh/reports:rw
- ./volumes/app/log:/opt/metasfresh/log:rw
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
ATTENTION: |
---|
This is where the compiled Jasper files are located of course. So to change the reports you first have to pull the repository with the sources of the reports and then compile them with Jasper Reports. |
See this forum post about this topic for recommendations on two widely used tools.
If you have any questions or problems, feel free to ask for support in our official public forum: