Our current repository server is a thrown together solution that covers git/svn/hg. It's extremely ugly, has no features besides creating and deleting a repository and generally isn't very user friendly.
I immediately started thinking about how I could improve this area, and looked around for various things. As probably most here, open-source and self hosting came to mind as the first thing to look for.
I found GitLab and Gitolite and started reading a bit up on those and the pros and cons of using each, and both compared to GitHub.
What I found out
While self-hosting provides the ultimate control, there is one thing you're entirely forgetting; maintenance. This doesn't come by itself and requires both man hours and also the know-how to do this. The case as often is, it will be underprioritized, you will be left with an outdated version, and that will mean annoyances, bugs and possible new features you're missing will stack up. And that's just the case of nothing going wrong on the server you're hosting it in. There could potentially be data loss, server downtime, server interruption etc.
So what should we do then?
Let someone else take care of it. Throwing all these responsibilities over to someone like GitHub, whose sole function is to drive this service allows freeing up a lot of potentially wasted time, and also allows for the students to be using the newest and best tool for the job.
And for the case of something like GitHub specifically, I really think it's ridiculous to complain about it being proprietary, since it is besides the point entirely. You're teaching the students to use git and to collaborate together on projects. You're making the administrative task much easier with the workflow they provide.
You aren't teaching your students solely to use GitHub, it just removes a lot of extra cruft and allows the students to focus on the actual subjects of the course they are in, instead of having to wrestle with the tools they have to use.