# infra Copier template for the root of a project. With `layout: parts` it ships a `docker-compose.yml` that includes every part, a `Makefile` that drives compose and delegates `fmt`, `check` and `build` to parts, and an `.env.example` whose `COMPOSE_FILE` adds each part's `docker-compose.local.yml`. With `layout: single` a part template renders straight into the root and infra ships only `.gitignore`, `CLAUDE.md` and pre-commit hooks. A part is a directory with: - `docker-compose.yml` with root-relative paths, plus `docker-compose.local.yml` and `docker-compose.prod.yml` picked through `COMPOSE_FILE` in the root `.env` - `Makefile` with `fmt`, `check` and `build` targets - `.env.example` appended to the root `.env` by `make env` - `CLAUDE.md` with the part's checking commands Application services carry the `services` profile, databases and other infrastructure carry `external`. ```sh copier copy --trust -d layout=parts -d 'parts=["backend","frontend"]' copier update -a .copier/infra.yml ```