I have a server running Ubuntu where I installed a SVN server and integrated it with Apache.
My users access their repository via HTTPS and I am able to configure which repo each user can access.

I would like to set up also a git server with the following features:

* Access via SSH keys.
* Possibility of selecting which repositories each user can access.
* (Optional) web-interface for creating new repos.

I googled a little bit but I wasn't able to find a good tutorial that provides me all these features. In particular I didn't find how to set up the user rights.

How can I setup the git server?