Getting started
The fastest way to see MDEO Cloud is to start the published images with Docker Compose.
Run it
git clone https://github.com/mde-optimiser/mdeo-cloud.git
cd mdeo-cloud
docker compose -f infra/docker-compose.yaml up -dOpen http://localhost:4242 in a browser and sign in.
Default credentials
The bundled setup creates an administrator with username admin and password admin. Change it before exposing the instance to anyone else, and see Deployment for a configuration that does not ship with a known password.
The quick-start compose file pulls prebuilt images and only exposes the workbench on port 4242. Everything else — the backend, the plugin services, the execution services and their databases — runs on the internal network.
First look around
- Create a project. Projects own files, plugins and executions. A new project gets every plugin that an administrator marked as default, which by default is all of the bundled ones.
- Add files. Use the file tree to create a
.mmmetamodel. The moment you save, the metamodel is parsed and validated, and a diagram view becomes available next to the text. - Run something. Files whose language supports it get a run action. Executions appear in the executions panel and stream their progress live.
The walkthrough does all of this with a concrete example.
Building from source
To run the code in your checkout rather than published images:
docker compose -f infra/docker-compose-dev.yaml up --buildThis build also exposes the internal ports, which is what you want while debugging:
| Port | Service |
|---|---|
| 4242 | Workbench |
| 8080 | Backend API |
| 3001–3008 | Plugin services (metamodel, model, script, model-transformation, config, config-optimization, model-csv, config-mdeo) |
| 5432–5435 | PostgreSQL instances (backend, script, model-transformation, optimizer) |
For iterating on the frontend without Docker, see Local development.
Upgrading
After upgrading
An administrator has to refresh all plugins (Settings → Plugins → Refresh) after moving to a new version. Plugin manifests point at versioned static assets; without a refresh the workbench keeps asking for files the new services no longer serve, and plugin loading fails.