eMondrian Community runs as a set of Docker containers: the eMondrian server, a web front door, the OLAP Client, the Schema Editor, the Catalog Editor and — for the sample data — ClickHouse. A setup script installs Docker if needed and starts everything.
Requirements
- Git
- Windows 10/11 or a supported Linux distribution
- Administrator /
sudorights — to install Docker and start containers - Port 80 free — or choose another port (see below)
- About 2 GB free disk space; ~700 MB of downloads on the first run (container images and a ~26 MB sample dataset that expands to ~230 MB)
Install
git clone https://github.com/eMondrian/emondrian-community.git
cd emondrian-communityLinux
./setup.shIf the script has just installed Docker, your user isn’t in the docker group yet. Log out and back in (or run newgrp docker) and run the script again.
Windows (PowerShell)
powershell -ExecutionPolicy Bypass -File .\windows-setup.ps1If WSL 2 has to be installed or updated, Windows may need a restart. After restarting, open PowerShell in the project folder and run the same command again.
The script installs Docker if needed, downloads the OnTime sample (January 2022, ~537,000 flights), starts the containers and loads the data. The first run takes a few minutes. Re-running is safe — data that’s already imported is skipped.
Choose a different port
If port 80 is taken (IIS, Apache, nginx…), copy .env.example to .env before running the script and set:
EMONDRIAN_PORT=8081
Every address then uses that port — e.g. http://localhost:8081/xmla and http://localhost:8081/emondrian/mcp/sse.
.env also switches the optional services on and off:
ENABLE_SERVICE_EMONDRIAN=true
ENABLE_SERVICE_OLAP_CLIENT=true
ENABLE_SERVICE_SCHEMA_EDITOR=true
ENABLE_SERVICE_CATALOG_EDITOR=true
An .env from an earlier version keeps working: ENABLE_SERVICE_WEB_OLAP_CLIENT still switches the OLAP Client, and without its own flag the Catalog Editor follows ENABLE_SERVICE_SCHEMA_EDITOR.
Calls from web applications (CORS)
/xmla and /api answer cross-origin requests, so a web application on another address can query eMondrian from the browser. CORS_ALLOW_ORIGIN in .env sets which origin may do so:
CORS_ALLOW_ORIGIN=* # default: any origin
CORS_ALLOW_ORIGIN=https://app.example.com # one origin
CORS_ALLOW_ORIGIN= # leave CORS to the eMondrian server
The front door answers the browser’s pre-flight requests itself, including the SOAPAction header XMLA clients send; the eMondrian server’s own CORS handling rejects that header. Run docker compose up -d after changing the value. See Security before keeping * on a shared network.
Endpoints
| Address | What it is |
|---|---|
http://localhost | Main page: links to tools, installed licenses, license activation |
http://localhost/xmla | XMLA endpoint for Excel, Power BI and other clients |
http://localhost/emondrian/mcp/sse | MCP endpoint for AI agents |
http://localhost/client/ | OLAP Client (layout builder, MDX editor, pivot table) |
http://localhost/schema-editor/ | Schema Editor — cubes, dimensions, measures and roles of a schema |
http://localhost/catalog-editor/ | Catalog Editor — data sources and catalogs the server publishes |
http://localhost/logs/ | Server logs |
Project folder
| Path | Purpose |
|---|---|
datasources.xml | Catalogs and database connections — see [[config/datasources |
schema/ | Schema files (Foodmart.xml, OnTime.xml, your own) |
modules/ | eMondrian modules (DAX, MCP) and license files |
logs/ | Server logs — see [[ops/logs |
clickhouse/ | Sample ClickHouse data and scripts |
.env | Port, optional services and CORS |
docker-compose.yml | Container definitions |
Load more sample data
./clickhouse/scripts/setup-ontime.sh --year 2022 # one whole year
./clickhouse/scripts/setup-ontime.sh --year 2022 --months 1,2,3
./clickhouse/scripts/setup-ontime.sh --full # every year — very large
docker compose up -dDownloaded CSV files stay in clickhouse/datasets/ontime/; delete them after import if you need the space.
Stop, start, reset
docker compose stop # stop, keep everything
docker compose up -d # start again
docker compose restart eMondrian # restart the server after config or schema changes
docker compose down # remove containers, keep the loaded data
docker compose down -v # remove containers and the ClickHouse dataThe logs/ folder is written by the container as root; deleting it needs sudo.
Memory
For large result sets, give the server more memory: in docker-compose.yml, uncomment JAVA_TOOL_OPTIONS under the eMondrian service and adjust the values, e.g. -Xms2g -Xmx4g. Then docker compose up -d.
No authentication
Community has no authentication. Run it on
localhostor a trusted network — see Security.