Nginx is the way to go. Just figure that out and you are all set.
No, nginx proxy manager is not the only way, you can also use nginx directly on bare metal as it is intended to.
Maybe this link could help you https://wiki.gardiol.org/doku.php?id=selfhost%3Anginx
Nice idea! But how to create different shares with different users? Can it authenticate via SSO?