Configuration File
Mango's primary configuration is controlled through the mango.properties file. This file sets database connections, web server ports, SSL settings, file paths, and module-specific options.
File location
Mango searches for its configuration file in the following order:
| Priority | Path | Notes |
|---|---|---|
| 1 | $mango_config | Environment variable, if set |
| 2 | $MA_ENV_PROPERTIES | Legacy environment variable |
| 3 | $mango_paths_data/mango.properties | Data directory |
| 4 | $mango_paths_data/env.properties | Legacy filename |
| 5 | ~/mango.properties | User home directory (all platforms) |
| 6 | $mango_paths_home/env.properties | Legacy install directory |
| 7 | $mango_paths_home/overrides/properties/env.properties | Legacy overrides |
If no file is found at any location, Mango creates a default file (with all settings commented out) at the first writable location.
Key environment variables
These environment variables control where Mango looks for its files:
| Variable | Legacy Variable | Description | Default |
|---|---|---|---|
mango_paths_home | MA_HOME | Mango installation directory | Auto-detected from runtime |
mango_paths_data | (none) | Directory for variable data (logs, filedata, database) | $mango_paths_home |
mango_config | MA_ENV_PROPERTIES | Path to mango.properties file | $mango_paths_data/mango.properties |
Separating mango_paths_data from mango_paths_home is recommended for production. This allows you to upgrade Mango without affecting your data, logs, or configuration.
Editing the file
Open mango.properties in any text editor. Lines beginning with # are comments and have no effect. To enable a setting, remove the leading # and set the value.
# This line is commented out — Mango uses the default value
#web.port=8080
# This line is active — Mango will use port 443
web.port=443
Mango must be restarted for changes to take effect.
Common settings
Web server
# HTTP port (default: 8080)
web.port=8080
# Bind address (0.0.0.0 = all interfaces)
web.host=0.0.0.0
# Enable HTTPS (requires SSL keystore configuration)
ssl.on=false
ssl.port=8443
Database
# H2 embedded database (default — good for evaluation)
db.type=h2
db.url=jdbc:h2:${mango.paths.data}/databases/mah2
db.username=sa
db.password=
# MySQL / MariaDB (recommended for production)
#db.type=mysql
#db.url=jdbc:mysql://localhost:3306/mango
#db.username=mango
#db.password=your_password
Performance tuning
# Point value cache size per data point (default: 0 = disabled)
runtime.realTimeTimer.defaultTaskQueueSize=0
# Thread pool sizes
runtime.realTimeTimer.corePoolSize=1
runtime.realTimeTimer.maxPoolSize=100
# NoSQL point value database flush period (ms)
db.nosql.flushPeriod=10000
File paths
# Override default data directory
mango.paths.data=/opt/mango-data
# Module directory
mango.paths.modules=${mango.paths.home}/web/modules
# Filedata storage directory
filedata.path=${mango.paths.data}/filedata
Full properties reference
For a complete list of all available properties with descriptions and default values, see the Mango Properties Guide.
Docker configuration
When running Mango in Docker, you can set properties via environment variables. Replace dots with underscores and use uppercase:
# docker-compose.yml
environment:
- mango_web_port=8080
- mango_db_type=mysql
- mango_db_url=jdbc:mysql://db:3306/mango
See Docker Installation for full details.
Related Pages
- Installation Overview — Platform-specific installation instructions
- Docker Installation — Container-based deployment with environment variable configuration
- Ways to Launch Mango — Different methods for starting and running Mango
- Where to Find Help — Support resources if you encounter configuration issues