Install on Docker
This guide explains how to install Mugnsoft using Docker.
You’ll find a docker-compose which you can adapt to your own requirements.
Prerequisites
- A working Docker environment
- Docker Compose installed
1. Set up a docker-compose project
Create a folder for your Docker Compose configuration:
mkdir mugnsoft && cd mugnsoft
2. Create a docker-compose .env
File
This file defines container variables. You can copy and adjust the following template: (assuming we want to use XX_VERSION 2.0)
cat > .env << 'EOF'
## Image versions
WEBSERVER_VERSION=2.0
MONITOR_VERSION=2.0
INTEGRATOR_VERSION=2.0
## Project name and version
PROJECT_NAME=mugnsoft
PROJECT_VERSION=v2
## Host ports
WEBSERVER_PORT_WEB=9092
WEBSERVER_PORT_API=8060
MONITOR_PORT=8061
INTEGRATOR_PORT=8063
## Volume paths
VOLUME_BASE=${PWD}
EOF
3. Add License Files
Copy the license files received by email into the mugnsoft folder with the following naming convention:
license_MNS_docker.dat
license_MNS_integrator_docker.dat
4. Create the docker-compose.yml
File
Docker images
Copy/Paste this docker-compose.yml
file:
cat > docker-compose.yml << 'EOF'
version: "3.8"
networks:
frontend:
driver: bridge
services:
webserver:
image: ${PROJECT_NAME}/webserver:${WEBSERVER_VERSION}
container_name: ${PROJECT_NAME}_webserver
hostname: webserver
networks:
- frontend
ports:
- "${WEBSERVER_PORT_WEB}:9090"
- "${WEBSERVER_PORT_API}:8050"
volumes:
- ${VOLUME_BASE}/webserver_dbs:/home/mugnsoft/webserver/dbs
- ${VOLUME_BASE}/webserver_data:/home/mugnsoft/webserver/data
- ${VOLUME_BASE}/webserver_config:/home/mugnsoft/webserver/config
- ${VOLUME_BASE}/license_MNS_docker.dat:/home/mugnsoft/webserver/license_MNS.dat
- /etc/machine-id:/host/etc/machine-id:ro
environment:
- SERVICE_NAME=webserver
- SERVICE_VERSION=${WEBSERVER_VERSION}
restart: unless-stopped
labels:
- "com.mugnsoft.service=webserver"
- "com.mugnsoft.version=${WEBSERVER_VERSION}"
monitor:
image: ${PROJECT_NAME}/monitor:${MONITOR_VERSION}
container_name: ${PROJECT_NAME}_monitor
hostname: monitor
networks:
- frontend
ports:
- "${MONITOR_PORT}:8051"
volumes:
- ${VOLUME_BASE}/monitor_dbs:/home/mugnsoft/monitor/dbs
- ${VOLUME_BASE}/monitor_data:/home/mugnsoft/monitor/data
- ${VOLUME_BASE}/monitor_config:/home/mugnsoft/monitor/config
cap_add:
- NET_RAW
environment:
- SERVICE_NAME=monitor
- SERVICE_VERSION=${MONITOR_VERSION}
restart: unless-stopped
labels:
- "com.mugnsoft.service=monitor"
- "com.mugnsoft.version=${MONITOR_VERSION}"
depends_on:
- webserver
integrator:
image: ${PROJECT_NAME}/integrator:${INTEGRATOR_VERSION}
container_name: ${PROJECT_NAME}_integrator
hostname: integrator
networks:
- frontend
ports:
- "${INTEGRATOR_PORT}:8053"
volumes:
- ${VOLUME_BASE}/integrator_dbs:/home/mugnsoft/integrator/dbs
- ${VOLUME_BASE}/integrator_data:/home/mugnsoft/integrator/data
- ${VOLUME_BASE}/integrator_config:/home/mugnsoft/integrator/config
- ${VOLUME_BASE}/license_MNS_integrator_docker.dat:/home/mugnsoft/integrator/license_MNS.dat
- /etc/machine-id:/host/etc/machine-id:ro
environment:
- SERVICE_NAME=integrator
- SERVICE_VERSION=${INTEGRATOR_VERSION}
restart: unless-stopped
labels:
- "com.mugnsoft.service=integrator"
- "com.mugnsoft.version=${INTEGRATOR_VERSION}"
depends_on:
- webserver
- monitor
EOF
5. Create Docker Volumes Folders
Create the local Docker volumes folder and set the correct ownership. This ensures persistent data across reboots.
mkdir ./{webserver_config,webserver_data,webserver_dbs}
mkdir ./{monitor_config,monitor_data,monitor_dbs}
mkdir ./{integrator_config,integrator_data,integrator_dbs}
mkdir ./{discovery_agent_config,discovery_agent_data,discovery_agent_dbs}
chown -R 1000:1000 ./{webserver_config,webserver_data,webserver_dbs}
chown -R 1000:1000 ./{monitor_config,monitor_data,monitor_dbs}
chown -R 1000:1000 ./{integrator_config,integrator_data,integrator_dbs}
chown -R 1000:1000 ./{discovery_agent_config,discovery_agent_data,discovery_agent_dbs}
6. Start and Verify Containers
Start:
docker-compose up -d
Check:
docker ps | grep mugnsoft
7. Minimum configuration
You can now access the Webserver WebUI in your browser at: https://<docker_host>:9092/
Please change the default pwd after logging.
Access



Enable the Integrator and Monitor components installed via docker-compose.



8. Import some dummy tests and a dummy app called demo app
First off, download the demo materials here.
You can import each csv files with the below steps:




9. Configure SMTP (optional)
Optional
To be able to send email notifications and reports, you need to configure the smtp settings. This is done as below:



10. Webdrivers for Monitor Component (optional)
Optional
On startup, the monitor downloads required webdrivers if it has internet access:
- Chrome: https://googlechromelabs.github.io/chrome-for-testing/
- Firefox: https://github.com/mozilla/geckodriver/releases/
- Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
If internet access is blocked, download and place them manually in <monitor_installDir>/drivers
.
Browser | Webdriver | Download Link |
---|---|---|
Chrome | Chromedriver | Download here |
Firefox | Geckodriver | Download here |
Edge | msedgedriver | Download here |
Safari | Built-in | No driver required |
11. Install Mugnsoft Electron App (optional)
Optional
This app enables automatic code generation for Mugnsoft scenarios.
See the Mugnsoft IDE documentation.
Type | Download Link |
---|---|
Portable App | Download here |
Setup Install | Download here |