If you don't want all your repositories on GitHub or other project hosting platforms, you can choose Gitlab. I guess you already know what GitLab is. It is very similar to the Gitlab platform and the best thing is that hosting is on your server, you can have private/internal/public repositories. You have some kind of open source security software that you can be used for nefarious uses, you want to make the source public but some big companies consider that this kind of code is not "open source".Simple use your server and do what you want. I'll show my configuration for a GitLab, I use SSL for the proxy that accesses a local server on non-SSL. Also, I use an external mail server with a custom domain hosted on Zoho.

Let's go into Gitlab.rb

Ok, I should say that the server auto-updates Gitlab for every new version. I didn't have a problem with my auto-updates yet, but I mention that just for the fact that this configuration runs on Gitlab 8.12.4.

First, we find the external_url directive and we change to something like:

external_url 'https://gitlab.flashsoft.eu'

And then search the directives for the internal Nginx Gitlab server. You should change the following directives with appropriate values, you can ignore the rest.

external_url 'https://gitlab.flashsoft.eu'

After you set those settings if you have an external mail server here are my Zoho settings:

external_url 'https://gitlab.flashsoft.eu'

Setting up the reverse proxy (Nginx)

For the reverse HTTP proxy, I guess you can use both Apache or Nginx or any other software that supports reverse HTTP proxy. Here is my config for this Gitlab instance:

external_url 'https://gitlab.flashsoft.eu'