Setting up a reverse proxy with nginx proxy manager is pretty simple and comes with letsencrypt support.
For letsencrypt to work, a software needs to write a confirmation code to a special path in your domain. When letsencrypt verifies that you can write to this path (and therefore control the domain), you get the certificate.
true, and caddy works very well with docker compose setups.