I used Gitlab CE self-hosted GitLab. I recently just set up a GitLab registry on a separate node and listening on port 443. It will then talk to Gitlab nginx node and GitLab runner. But we are also thinking of if we can have the ability to achieve high availability as we no longer rely on Docker Hub.
I have checked the options online and find geo replication solution  which is available on premium self-managed version. Another one is to set up loadbalancer/dns round robbin & share repo over NFS or something else. The second option seems theoretically working but not sure if there is something missing.
Would like to see if anyone here did the similar thing on free self-managed version.