This guide explains how to install and run Mango Automation as a Docker container on an Ubuntu host. It covers:
Installing Docker
Pulling and running the Mango image
Editing mango.properties inside the container
Viewing Mango log files via Docker
Configuring persistent mounts and networking
Ubuntu 18.04+ or compatible Linux distribution
Sudo privileges on the host
Internet access to download Docker and Mango images
Follow the official Docker instructions for Ubuntu:
🔗 Install Docker Engine on Ubuntu
After installation, verify Docker works by running:
- sudo docker run hello-world
You should see “Hello from Docker!” confirming a successful install.
Alt text: Docker “Hello from Docker!” verification message
Pull the latest Mango image from GitHub Container Registry (current version as of writing: enterprise-m2m2-core-5.4.1):
docker pull ghcr.io/radixiot/mango:latest
Confirm the image is available locally:
dockerimages ghcr.io/radixiot/mango:latest
Alt text: Terminal showing Mango image downloaded
Use docker run to launch Mango, exposing its HTTP, HTTPS, and internal API ports, and configuring auto-restart:
docker run -d --name mango -p 8080:8080 -p 8443:8443 -p 9090:9090 --restart unless-stopped ghcr.io/radixiot/mango:latest
-d: Run in detached mode
--name mango: Name the container “mango”
--restart unless-stopped: Automatically restart Mango if it stops or on host reboot
Alt text: Starting Mango container with Docker command
Check running containers:
docker ps
You should see the “mango” container listed with its ports.
View resource usage:
- docker stats mango
Confirm port mappings:
docker port mango
Should show 8080→8080, 8443→8443, 9090→9090.
Alt text: docker ps and docker port mango confirming container and ports
Once the container is running, open your browser and navigate to:
https://<host-ip>:8443/ui/login
Default credentials:
Username: admin
Password: admin
Alt text: Mango Automation default login page
mango.properties Inside the ContainerMango’s main configuration file, mango.properties, resides at /opt/mango-data/mango.properties in the container. If you need to modify ports, SSL, or other settings, use one of these in-container methods—no vi or nano needed.
sed for In-Place EditsTo edit a single property (e.g., change HTTP port to 8081):
- docker exec -it mango bash -c "
sed -i 's/^web.port=8080/web.port=8081/' /opt/mango-data/mango.properties
"
docker restart mango
Matches lines beginning with web.port=8080 and replaces with web.port=8081.
Restart Mango to apply changes.
To append new properties (e.g., disable SSL):
docker exec -it mango bash -c "
cat << 'EOF' >> /opt/mango-data/mango.properties
# Disable embedded SSL
ssl.enabled=false
# Custom property additions
custom.setting.example=true
EOF
"
docker restart mango
Appends everything between EOF markers to the end of mango.properties.
Restart Mango after saving.
Alt text: Appending new properties to mango.properties via here-document
To rebuild the entire file from scratch:
docker exec -it mango bash -c "
cat << 'EOF' > /opt/mango-data/mango.properties
# Mango properties rebuilt on $(date)
web.port=8081
ssl.enabled=false
# Add additional settings here...
EOF
"
docker restart mango
> mango.properties replaces the file.
Useful when applying a known-good template.
Alt text: Overwriting mango.properties in the container
Mango writes log files under /opt/mango-data/logs/ inside the container. To follow logs:
Use docker logs to view what Mango prints to stdout/stderr:
docker logs -f mango
-f (follow) streams new log lines in real time.
📸 [Insert Screenshot: Terminal running docker logs -f mango]
Alt text: docker logs streaming Mango container output
To see full log details (e.g., ma.log):
docker exec -it mango bash -c "
tail -f /opt/mango-data/logs/ma.log
"
Replace ma.log with any other logfile (e.g., hibernate.log, module-xyz.log).
Press Ctrl+C to exit tailing.
Alt text: Tailing Mango’s main log file inside container
For easier editing without repeatedly using docker exec, bind-mount a host directory into the container:
Stop and remove the existing container:
docker stop mango
docker rm mango
Start Mango again, bind-mounting a host directory (e.g., /home/ubuntu/mango-data) to /opt/mango-data:
- docker run -d --name mango -p 8080:8080 -p 8443:8443 -p 9090:9090 --restart unless-stopped -v /home/ubuntu/mango-data:/opt/mango-data ghcr.io/radixiot/mango:latest
On the host, edit /home/ubuntu/mango-data/mango.properties with any local editor:
- nano /home/ubuntu/mango-data/mango.properties
After saving, restart the container so Mango reloads the file:
docker restart mango
Alt text: Editing mango.properties on host with a text editor
To place Mango on a custom Docker network:
Create a network:
docker network create mango-net
Run Mango on that network:
docker run -d --name mango --network mango-net -p 8080:8080 -p 8443:8443 -p 9090:9090 --restart unless-stopped ghcr.io/radixiot/mango:latest
Mango is then reachable at https://<host-ip>:8443 within that network.
# Install Docker (Ubuntu)
sudo apt update
sudo apt install docker.io
sudo systemctl
enable --now docker
# Pull Mango image
docker pull ghcr.io/radixiot/mango:latest
# Run Mango container
docker run -d -p 8080:8080 -p 8443:8443 -p 9090:9090 --restart unless-stopped ghcr.io/radixiot/mango:latest
# Edit properties via sed
docker exec -it mango bash -c "sed -i 's/^web.port=8080/web.port=8081/' /opt/mango-data/mango.properties"
docker restart mango
# View logs
docker logs -f mango
docker exec -it mango bash -c "tail -f /opt/mango-data/logs/ma.log"
# Stop & remove container
docker stop mango
docker rm mango