This is the canonical installation procedure for maintainers, contributors, and operators. It documents the deployment installer, local workspace mode, validation signals, state locations, and safe removal behavior.
- Reader: operator or contributor preparing a local runtime.
- Outcome: the
mnCLI is available, the local runtime is healthy, and the operator knows where state and listeners live. - Page type: installation how-to.
- Source of truth:
mn-deploy/install.sh,mn-deploy/server.sh,mn-cli/mn_cli/libs/sys_cmds.py, and the API/CLI configuration schemas.
- Supported local environments are macOS, Linux, and Windows with WSL2.
- Docker must be installed and running.
gitis required for checkout-based installation.- Python 3.11+ and Elixir/Erlang are required for editable workspace development, not for every released-package installation.
- Docker Model Runner is required only for blueprints that use local models. Docker Desktop provides it on macOS and Windows; Linux operators must install the plugin when they need that capability. NVIDIA DGX Spark and ARM64 Ubuntu operators should complete Prepare Docker Model Runner on NVIDIA DGX Spark first.
- npm is not required to install or run the Web UI; its Node build runs inside the Docker Compose Web UI service.
Use the deployment repository for a reviewable installation path:
cd mn-deploy
./install.sh --help
./install.shThe installer uses default selections without prompts unless --interactive is passed. Use --version <release-tag> when you need a matching released set of Core, CLI, SDK, API, Web UI, and support files.
The hosted installer is available when a local checkout is not practical:
curl -fsSL https://mirrorneuron.io/install.sh | bashWarning: this command downloads and executes a script immediately. Prefer mn-deploy/install.sh when you need to inspect the script, select a mode, or retain an auditable local copy.
Run local mode from the deployment component when you are developing against the current workspace:
cd mn-deploy
./install.sh --mode localFor an explicit Git-based installation, use:
cd mn-deploy
./install.sh --mode githubGit mode uses component repositories rather than editable paths from this checkout. Do not use it when your goal is to test uncommitted workspace changes.
Run these commands after any installation or upgrade:
mn --help
mn runtime start
mn runtime status
mn node listVerification criteria:
mn --helpdisplays the command groups.mn runtime startreportsRuntime node readyfollowed by the advertised endpoint, node identity, active join token, and an exactmn node addcommand. There is no separate worker start mode.mn runtime statusreports the Core, REST API, and Web UI health checks without a failed required component.mn runtime statusreports the resolved endpoints, runtime state, nodes, jobs, and shared storage.mn node listreturns the local Core and any reciprocally registered federated peers.
If a command fails, collect its output and continue with Troubleshooting rather than deleting local state.
The startup token is a credential, even though it is intentionally displayed
once the runtime is ready. Do not paste it into issue reports or shared logs.
Run mn node refresh-token if it has been exposed.
| Item | Default | Owner |
|---|---|---|
| Runtime state root | ~/.mn |
CLI, API, SDK, runtime services. |
| REST API | http://localhost:54001/api/v1 |
mn-api; override with MN_API_PORT. |
| Core gRPC endpoint | port 55051 |
MirrorNeuron Core and authenticated federation control; override with MN_GRPC_PORT and client target settings. |
| LiteLLM gateway | port 4000 when enabled |
Owner-first model gateway; restrict peer access to trusted LAN/VPN networks. |
| Web UI | port 55173 by default |
Docker Compose service; local mode builds the mounted mn-web-ui source there. |
| Blueprint run records | ~/.mn/runs/<run_id>/ |
Blueprint run-store contract. |
See Environment Variables for the full configuration reference. Do not publish ~/.mn/docker-compose.env, startup output, tokens, or generated endpoint files because they can contain deployment-specific configuration.
Blueprint validation identifies declared model requirements. Install and diagnose a local model only after a preflight reports it or after you have reviewed the blueprint configuration:
mn model list
mn model add gemma4:e2b
mn model doctor gemma4:e2bmn model add can fail when no compatible runtime node is available. Do not use --force as a routine fix; first choose a model and blueprint profile that match the available hardware.
Stop runtime services:
mn runtime stopFor a hosted installation, use the matching uninstall script:
curl -fsSL https://mirrorneuron.io/uninstall.sh | bashBefore removing ~/.mn, preserve any required run records, logs, configuration, and model metadata. Removing it can discard local state needed to diagnose jobs or reproduce a deployment.
When changing installer, runtime-start, endpoint, or configuration behavior, verify at least:
cd mn-deploy
./install.sh --helpThen run the relevant CLI/API tests and the documentation-site type check. Update mn-doc-site/content/docs/installation.mdx with the concise user-facing impact.