Recentemente, instalei um servidor Git no qual trabalho, o que exigia acesso SSH e HTTP (S) para repositórios públicos e privados. Primeiro eu configurei a coisa toda manualmente, o que levou algum tempo, mas depois me deparei com o Gitlab que parecia resolver todos os meus problemas - é basicamente o Github, mas sua própria versão hospedada privada. Eu recomendo strongmente usar o Gitlab para configurar tudo manualmente, já que ele possui muitos recursos excelentes e é facilmente gerenciável.
Há um ótimo tutorial aqui: link
No entanto, se você quiser rodar o Git através de HTTP (S), você precisará configurar o Apache ou o Nginx para usar o binário git-http-backend que faz todo o trabalho. Há uma abundância de tutoriais on-line, dependendo de qual configuração você decidir ir.