Each service is a separate docker-compose.yml, but they are more-or-less the same as the example configs provided by each service. I did it this way as opposed to a single file to make it easier to add/remove services following this pattern.
I do have a higher quality version of the diagram, but had to downsize it a lot to get pictrs to accept it…