Tu peux utiliser traefik, ça marche très bien, mais si ça ne va pas solutionner 100% de ton problème (plex par exemple, je n'ai pas trouvé de solution satisfaisante pour tout fire passer par traefik).
Le principe : tu exposes traefik sur les ports 80 et 443, et tu n'exposes AUCUN port pour tes containers ou tes applis (hormis plex, et peut être emby). Tu fais en sorte qu'elles n'écoutent que sur le localhost par exemple. Ensuite, en fonction du nom de domaine et de l'url, tu demandes à traefik de rediriger vers le bon outil. Il va se charger tout seul de récupérer un certificat letsencrypt, et de rediriger le http vers le https.
Tu peux aussi faire ça avec nginx, je crois qu'il existe une image docker qui fait tout ça.