How projects fit together
Projects, services, environments, and the few terms you need to configure mm.
An mm project is a repository with a .config/mm.yaml file. That file connects
your application code and Compose services to the environments where you run them.
The main pieces
For a project with an API and a database:
| Term | Meaning | Example |
|---|---|---|
| Project | The whole application | shop |
| Module | A directory of code or configuration | services/api |
| Service | A container service declared in Compose | api or postgres |
| Stack | A set of Compose files deployed together | compose.yaml |
| Environment | Settings for one use of the project | local or production |
| Target | The machine where services run | Your workstation |
| Runtime | The container tool mm uses there | Docker Compose |
A module can contain several services. For example, a Laravel module might run both a web service and a queue worker from the same image.
Two configuration files
- Compose describes how containers run: commands, health checks, ordinary volumes, and third-party images such as PostgreSQL.
.config/mm.yamlconnects those services to image builds, environments, secret references, managed networks, and HTTP routes.
See which settings go where for an example.
Environment values and secrets
A binding connects a name used by an environment template to a value. The value can be public configuration, such as a database hostname, or a reference to a secret, such as its password. Secret values live in a separate store.
An ingress route connects an HTTPS hostname and path to a service. Local
HTTP services can receive automatic addresses such as
https://api.shop.test.
Build, review, run
- Validate the project with
mm config validate. - Build and publish application images, if the project has its own builds.
- Run
mm deploy planto see the changes. - Apply the plan using the hash it prints.
Read builds and deployments for the commands. Jobs, schedules, and access gates are optional; add them when your project needs background tasks or restricted routes.