Files
infra/README.md
T

1.5 KiB

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, a README.md and an .env.example whose COMPOSE_FILE adds each part's docker-compose.override.yml and whose COMPOSE_PROFILES selects what runs on the machine. 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 and a profile per service, plus docker-compose.override.yml.example for what differs between machines
  • 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.

The root also gets a renovate.jsonc that is nothing but an extends on the shared preset in templates/renovate. It does not subscribe the repo to anything on its own: the bot walks an explicit list, so a new repo still has to be added to repositories in projects/personal/renovate/renovate-config.js of infra/komodo, and needs the renovate, wait-3d and deps-code labels (giteaproject <org>/<repo> creates them).

copier copy --trust -d layout=parts -d 'parts=["backend","frontend"]' <this-repo> <dest>
copier update -a .copier/infra.yml