I wrote something that can setup caddy automatically from docker labels.
It's not well documented as I mostly wrote it for myself. https://hub.docker.com/r/mheys1/docker-dynamic-caddy https://github.com/mattheys/ddc
It basically acts like a DNS server serving up SRV records that caddy can use for dynamic configuration, I added in an on_demand_tls endpoint as well so that you don't get spammed for non existent TLS records.
I'm not sure I see what the need for FlareSolverr is, as I understand it it's a reverse proxy that will add the cloudflare authentication cookies so that your *arr apps can access prowlarr, however you should just be able to stick them on a named bridge network and access them internally by container name.
I think using FlareSolverr is adding unnecessary complexity as you shouldn't need to make an internet round trip for containers to access each other.
I have all my internet facing stuff behind Authelia with 2fa but it still works because the containers talk to each other on their own network directly.