Skip to content

FAQ

Short answers about mm selection, plans, secrets, dashboards, and runtimes.

Why did my reviewed plan hash stop matching?

Something used by the plan changed: configuration, build inputs, target, runtime, secrets, or deployed state. Run the plan command again, review its output, and apply the new hash.

Will mm try another runtime if mine is unavailable?

No. Use mm target preference show and mm doctor to check the selection. Fix that runtime or choose another explicitly with --runtime. See target selection for the precedence rules.

Why do .test sites not resolve?

.test is reserved, not a built-in wildcard DNS zone. mm does not edit DNS or the hosts file. Configure a local wildcard resolver, add exact host entries, or test with curl --resolve HOST:443:127.0.0.1.

Why does local trust need privileges?

Debian/Ubuntu and Fedora/RHEL use system trust and normally require sudo. macOS login-keychain and Windows Current User Root trust are user-scoped by default; --system explicitly requests privileged system trust. --no-trust creates certificates but leaves clients warning until trust is repaired.

Where are Age secrets?

Normally under ~/.mm: the private identity is in identities/, and encrypted project documents are in secrets/. MM_HOME or --mm-home changes that root. The location in .config/mm.yaml identifies the secret in that store; it is not the password or a plaintext file path.

Why does deploy say a published build is missing?

First-party images must come from a successful matching build made with --publish; a local OCI archive does not satisfy deployment. Publication also requires a clean worktree and complete Git history/tags. Replace example registry names, commit changes, fetch full history and tags, then review and apply a new published build before replanning deployment.

Which project schema version is supported?

Use schema-version: 1 in .config/mm.yaml. Missing or other versions are rejected.

Can the web dashboard change my deployment?

No. It shows status, routes, services, and recent operations. Use the CLI or terminal UI for changes. Open https://mm.test and follow the project links.

How much Docker Swarm does mm support?

Single-node and multi-node clusters, deployed from a manager. Pin services with placement and share volumes with shared-volumes; see Run on a multi-node Swarm. Swarm does not advertise bind mounts, container health, or atomic volume-file mutation. HTTPS routes run on every manager with shared ACME certificates. Shared local dashboard/Mailpit services require Compose rather than Swarm.

Are validation overlays deployed?

No. Example compose.validation.yaml files only add placeholder first-party images for docker compose config. Their example.invalid references are not runnable; mm generates separate reviewed overlays with published image digests, bindings, networks, ingress, and ownership metadata.

Can I rotate a database password safely?

Not by rotating only the mm secret when a persistent database volume already exists. PostgreSQL and MongoDB initialization passwords are applied only to an empty data directory. Coordinate the in-database credential update with secret rotation, or recreate the volume only when data loss is intended.