[{"data":1,"prerenderedAt":357},["ShallowReactive",2],{"docs-nav":3,"docs:\u002Fdocs\u002Fhelp\u002Ffaq":139},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136],{"path":5,"title":6},"\u002Fdocs\u002Faccess-gating","Protect a local route",{"path":8,"title":9},"\u002Fdocs\u002Farchitecture\u002Fsecurity-and-trust","Security and trust",{"path":11,"title":12},"\u002Fdocs\u002Fconcepts\u002Fbuilds-and-deployments","Build and deploy",{"path":14,"title":15},"\u002Fdocs\u002Fconcepts\u002Fconfiguration-ownership","Where configuration belongs",{"path":17,"title":18},"\u002Fdocs\u002Fconcepts\u002Fenvironments-and-secrets","Environment values and secrets",{"path":20,"title":21},"\u002Fdocs\u002Fconcepts\u002Fmental-model","How projects fit together",{"path":23,"title":24},"\u002Fdocs\u002Fconcepts\u002Fplans-and-apply","Plans and apply",{"path":26,"title":27},"\u002Fdocs\u002Fconcepts\u002Ftargets-and-runtimes","Choose a target and runtime",{"path":29,"title":30},"\u002Fdocs\u002Fcontribute\u002Freleases","Publish a release",{"path":32,"title":33},"\u002Fdocs\u002Fdevelopment-mounts","Development mounts",{"path":35,"title":36},"\u002Fdocs\u002Fgetting-started","Getting started",{"path":38,"title":39},"\u002Fdocs\u002Fhelp\u002Ffaq","FAQ",{"path":41,"title":42},"\u002Fdocs\u002Fhelp\u002Ftroubleshooting","Troubleshooting",{"path":44,"title":45},"\u002Fdocs\u002Fhow-to\u002Fdeploy-production","Prepare a deployment environment",{"path":47,"title":48},"\u002Fdocs\u002Fhow-to\u002Fswarm-cluster","Run on a multi-node Swarm",{"path":50,"title":51},"\u002Fdocs","mm documentation",{"path":53,"title":54},"\u002Fdocs\u002Fjobs-and-schedules","Jobs and schedules",{"path":56,"title":57},"\u002Fdocs\u002Flocal-dashboard","Local dashboard",{"path":59,"title":60},"\u002Fdocs\u002Flocal-https","Local HTTPS",{"path":62,"title":63},"\u002Fdocs\u002Flocal-services","Local services",{"path":65,"title":66},"\u002Fdocs\u002Fmcp","Let an AI agent work on your project",{"path":68,"title":69},"\u002Fdocs\u002Fmulti-project-hosts","Run multiple projects on one host",{"path":71,"title":72},"\u002Fdocs\u002Fonboarding","Set up a project",{"path":74,"title":75},"\u002Fdocs\u002Fopenbao","Use OpenBao",{"path":77,"title":78},"\u002Fdocs\u002Fproject\u002Fcontributing","Contributing",{"path":80,"title":81},"\u002Fdocs\u002Fproject\u002Flicense","License",{"path":83,"title":84},"\u002Fdocs\u002Fproject\u002Fsecurity","Security",{"path":86,"title":87},"\u002Fdocs\u002Freference\u002Fcapability-matrix","Supported features and platforms",{"path":89,"title":90},"\u002Fdocs\u002Freference\u002Fcli","CLI command reference",{"path":92,"title":93},"\u002Fdocs\u002Freference\u002Fconfiguration","Configuration",{"path":95,"title":96},"\u002Fdocs\u002Freference\u002Fenvironment-variables","Environment variables",{"path":98,"title":99},"\u002Fdocs\u002Freference\u002Ferrors-and-exit-codes","Errors and exit codes",{"path":101,"title":102},"\u002Fdocs\u002Freference\u002Fknown-issues","Known limitations",{"path":104,"title":105},"\u002Fdocs\u002Fremote-access","Manage remote access",{"path":107,"title":108},"\u002Fdocs\u002Fremote-daemon","Set up a remote host",{"path":110,"title":111},"\u002Fdocs\u002Fruntime-observability","Status, logs, and commands",{"path":113,"title":114},"\u002Fdocs\u002Fsecret-delivery","Pass secrets to your app",{"path":116,"title":117},"\u002Fdocs\u002Fsecret-providers","Choose a secret store",{"path":119,"title":120},"\u002Fdocs\u002Fstart\u002Finstall","Install mm",{"path":122,"title":123},"\u002Fdocs\u002Fterminal-ui","Terminal UI",{"path":125,"title":126},"\u002Fdocs\u002Ftutorials\u002Fdotnet-web-api",".NET web API example",{"path":128,"title":129},"\u002Fdocs\u002Ftutorials\u002Ffirst-local-app","First local app",{"path":131,"title":132},"\u002Fdocs\u002Ftutorials\u002Flaravel-rust","Laravel and Rust example",{"path":134,"title":135},"\u002Fdocs\u002Ftutorials\u002Fnode-fullstack","Node full stack example",{"path":137,"title":138},"\u002Fdocs\u002Fvault","Use HashiCorp Vault",{"id":140,"title":39,"body":141,"description":350,"extension":351,"meta":352,"navigation":353,"path":38,"seo":354,"stem":355,"__hash__":356},"docs\u002Fdocs\u002Fhelp\u002Ffaq.md",{"type":142,"value":143,"toc":334},"minimark",[144,149,153,157,179,187,200,204,219,223,254,258,265,269,278,282,289,293,308,312,327,331],[145,146,148],"h2",{"id":147},"why-did-my-reviewed-plan-hash-stop-matching","Why did my reviewed plan hash stop matching?",[150,151,152],"p",{},"Something used by the plan changed: configuration, build inputs, target,\nruntime, secrets, or deployed state. Run the plan command again, review its\noutput, and apply the new hash.",[145,154,156],{"id":155},"will-mm-try-another-runtime-if-mine-is-unavailable","Will mm try another runtime if mine is unavailable?",[150,158,159,160,164,165,168,169,172,173,178],{},"No. Use ",[161,162,163],"code",{},"mm target preference show"," and ",[161,166,167],{},"mm doctor"," to check the selection.\nFix that runtime or choose another explicitly with ",[161,170,171],{},"--runtime",". See\n",[174,175,177],"a",{"href":176},"..\u002Fconcepts\u002Ftargets-and-runtimes","target selection"," for the precedence rules.",[145,180,182,183,186],{"id":181},"why-do-test-sites-not-resolve","Why do ",[161,184,185],{},".test"," sites not resolve?",[150,188,189,191,192,195,196,199],{},[161,190,185],{}," is reserved, not a built-in wildcard DNS zone. ",[161,193,194],{},"mm"," does not edit DNS\nor the hosts file. Configure a local wildcard resolver, add exact host entries,\nor test with ",[161,197,198],{},"curl --resolve HOST:443:127.0.0.1",".",[145,201,203],{"id":202},"why-does-local-trust-need-privileges","Why does local trust need privileges?",[150,205,206,207,210,211,214,215,218],{},"Debian\u002FUbuntu and Fedora\u002FRHEL use system trust and normally require ",[161,208,209],{},"sudo",".\nmacOS login-keychain and Windows Current User Root trust are user-scoped by\ndefault; ",[161,212,213],{},"--system"," explicitly requests privileged system trust. ",[161,216,217],{},"--no-trust","\ncreates certificates but leaves clients warning until trust is repaired.",[145,220,222],{"id":221},"where-are-age-secrets","Where are Age secrets?",[150,224,225,226,229,230,233,234,237,238,241,242,245,246,249,250,253],{},"Normally under ",[161,227,228],{},"~\u002F.mm",": the private identity is in ",[161,231,232],{},"identities\u002F",", and encrypted\nproject documents are in ",[161,235,236],{},"secrets\u002F",". ",[161,239,240],{},"MM_HOME"," or ",[161,243,244],{},"--mm-home"," changes that root.\nThe ",[161,247,248],{},"location"," in ",[161,251,252],{},".config\u002Fmm.yaml"," identifies the secret in that store; it is\nnot the password or a plaintext file path.",[145,255,257],{"id":256},"why-does-deploy-say-a-published-build-is-missing","Why does deploy say a published build is missing?",[150,259,260,261,264],{},"First-party images must come from a successful matching build made with\n",[161,262,263],{},"--publish","; a local OCI archive does not satisfy deployment. Publication also\nrequires a clean worktree and complete Git history\u002Ftags. Replace example\nregistry names, commit changes, fetch full history and tags, then review and\napply a new published build before replanning deployment.",[145,266,268],{"id":267},"which-project-schema-version-is-supported","Which project schema version is supported?",[150,270,271,272,249,275,277],{},"Use ",[161,273,274],{},"schema-version: 1",[161,276,252],{},". Missing or other versions are\nrejected.",[145,279,281],{"id":280},"can-the-web-dashboard-change-my-deployment","Can the web dashboard change my deployment?",[150,283,284,285,288],{},"No. It shows status, routes, services, and recent operations. Use the CLI or\nterminal UI for changes. Open ",[161,286,287],{},"https:\u002F\u002Fmm.test"," and follow the project links.",[145,290,292],{"id":291},"how-much-docker-swarm-does-mm-support","How much Docker Swarm does mm support?",[150,294,295,296,299,300,303,304,307],{},"Single-node and multi-node clusters, deployed from a manager. Pin services with\n",[161,297,298],{},"placement"," and share volumes with ",[161,301,302],{},"shared-volumes","; see\n",[174,305,48],{"href":306},"..\u002Fhow-to\u002Fswarm-cluster",". Swarm does not\nadvertise bind mounts, container health, or atomic volume-file mutation.\nHTTPS routes run on every manager with shared ACME certificates. Shared local dashboard\u002FMailpit\nservices require Compose rather than Swarm.",[145,309,311],{"id":310},"are-validation-overlays-deployed","Are validation overlays deployed?",[150,313,314,315,318,319,322,323,326],{},"No. Example ",[161,316,317],{},"compose.validation.yaml"," files only add placeholder first-party\nimages for ",[161,320,321],{},"docker compose config",". Their ",[161,324,325],{},"example.invalid"," references are not\nrunnable; mm generates separate reviewed overlays with published image digests,\nbindings, networks, ingress, and ownership metadata.",[145,328,330],{"id":329},"can-i-rotate-a-database-password-safely","Can I rotate a database password safely?",[150,332,333],{},"Not by rotating only the mm secret when a persistent database volume already\nexists. PostgreSQL and MongoDB initialization passwords are applied only to an\nempty data directory. Coordinate the in-database credential update with secret\nrotation, or recreate the volume only when data loss is intended.",{"title":335,"searchDepth":336,"depth":336,"links":337},"",2,[338,339,340,342,343,344,345,346,347,348,349],{"id":147,"depth":336,"text":148},{"id":155,"depth":336,"text":156},{"id":181,"depth":336,"text":341},"Why do .test sites not resolve?",{"id":202,"depth":336,"text":203},{"id":221,"depth":336,"text":222},{"id":256,"depth":336,"text":257},{"id":267,"depth":336,"text":268},{"id":280,"depth":336,"text":281},{"id":291,"depth":336,"text":292},{"id":310,"depth":336,"text":311},{"id":329,"depth":336,"text":330},"Short answers about mm selection, plans, secrets, dashboards, and runtimes.","md",{},true,{"title":39,"description":350},"docs\u002Fhelp\u002Ffaq","GL8Fe-Wh7U9m9--VQlkP6FSkQjzLcCnsfpGHKjhXqWk",1794512546197]