Goals
The goal of this tutorial is to:
Have valid SSL / HTTPS everywhere as possible. This can be with a commercial certificate, or with a Let’s Encrypt certificate.
Having specific domain names for each service, such as grafana.example.com, instead of using ports to differentiate services (such as nas.example.com:3000 for the Grafana service). This can be as subdomains of the primary domain (nas.example.com), or on a subdomain (nas.internal.example.com)
Having a docker container manager, such as dockge to administer docker images for non-critical services, user services, or services that do not benefit from not being a container.