What you want is a reverse proxy, something like Trafik or Nginx Proxy Manager makes it really easy to setup and even then lets yous apply a lets encrypt certificate for HTTPS support getting rid of the browser warnings.
What the other guy said.
What you do is set up a reverse proxy, which you can then configure to forward connections either using subdomains or subpaths to the relevant ports.
Subdomains look like jellyfin.domain.com while subpaths look like domain.com/jellyfin. Generally the former is preferred, because the latter often requires that the service you are running allow you to configure the subpath you're using.
Subdomains in turn require separate SSL certificates for each one.
You can also set up domains that only work inside your LAN, using self-signed certificates. No external or public domain needed.
You can also have SSL internal only domains without self signed certificates with something like acme.sh doing the DNS-01 challenge. It requires a domain registrar with an API but you be able to get the certificate and serve it with your reverse proxy so no need to manage your self signed certs on every device.
You can also get a wildcard cert so you dont need to force a reissue every time you set up a new service
All these years I've just bookmarked all the containers I run
I learned the setup from this video. It works great.
Self-hosting
Hosting your own services. Preferably at home and on low-power or shared hardware.
Also check out: