Here's the entirety of the Caddy config to reverse proxy something with managed tls certs. I feel like it's not that big a deal?
photos.example.com {
reverse_proxy 127.0.0.1:8080 {
header_up X-Real-IP {remote_host}
}
}
caddy passes on the source IP by default so it's even easier than that
the immich documentation covers this as well as nginx, apache and traefik https://docs.immich.app/administration/reverse-proxy