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 / sudo rights — 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-community

Linux

./setup.sh

If 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.ps1

If 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

AddressWhat it is
http://localhostMain page: links to tools, installed licenses, license activation
http://localhost/xmlaXMLA endpoint for Excel, Power BI and other clients
http://localhost/emondrian/mcp/sseMCP 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

PathPurpose
datasources.xmlCatalogs 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
.envPort, optional services and CORS
docker-compose.ymlContainer 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 -d

Downloaded 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 data

The 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 localhost or a trusted network — see Security.

Next steps