Currently I'm migrating from compose.y(a)ml to terraform. I'm using proxmox -> 2x VM -> docker swarm. I will soon try to engineer a solution to quickly scale up and down any service I want using the same terraform codebase with rundeck. I have my configs as terraform templates and it gets deployed as a swarm config (or secret), then mapped to the container the same way.
Vintage Story with mods. Vintage Story is a minecraft-like wilderness survivor game focusing on long term survival, not just "eat berries". it's under active development. https://mods.vintagestory.at/vsds the server docker image if interested.
I have a repo for the infra files (compose files and terraform files just for playing). I store the docs in the same repo in MD files. As for the secrets, I'm using docker swarm, so I can store the needed passwords there. otherwise Vaulwarden is my go to, self hosted, lightweight password manager, compatible with bitwarden clients I'm a little paranoid if the note-service got db corruptions, I might loose too much info, so git is the way (personal opinion).
edit: add the related MD file next to the compose file, one folder per service, the source and the doc will be coupled in one place.