Mine presently looks like this
In my case the content cache and session cache are just one container though because it is running in a Pi and I just wanted to have less containers for now. The Nextcloud is also replicable along with the Imaginary containers. So technically if I had more than one Pi and connect them into Docker swarm it can distribute the work more easily.
Technically I should’ve started with the C4 system context diagram, but it’s pretty boring since it’s just a single Pi and practically everything is in docker compose including Caddy
I’m debating on putting in Elastic Search for Full Text Search but I am not sure how useful it is on my setup right now because it’s just family photo sharing for the most part and morbid curiosity on the other part.
UPDATE: I tweaked it a bit right now where the /remote.php/dav/* operations are sent to another container separate from the main next cloud, I think I like that technique since I can tune based on specific operations.