But yesterday I found out that Docker's Registry core (Distribution) [0] is OpenSource (and used by other registries too!), but I haven't seen many mentions of it until then. I've checked out their documentation and it seems solid.
So, what is your experience with self-hosting registries be it Distribution, Harbour or something else. Any hidden PITA? I myself will spin Distribution up on the dev env and see how it goes!
[0]: https://github.com/distribution/distribution
To awnser your question. I have only used docker registry (core) since I like stuff in modules and it works very well. It comes in a docker image. To setup it needs like 2 minutes. It can be secured with credentials which I highly recommend. My registry is also running behind treafik, which provides it with a valid ssl certificate and running directly on port 443, which looks nice and professional.