By far the easiest method, if you mostly trust your friends, is to forego the web UI and just use a directory on an SSH server. Do `mkdir project.git && cd project.git && git init --bare` and throw everybody's SSH keys into authorized_keys on the server, `git remote add origin user@server:project.git` on the client. The problems with this are that there's no privilege separation, i.e. everyone can do anything, there's no audit logs, and as mentioned previously there's no web UI. If everyone is actually expected to have a local copy of the repository, though, I don't see this as a huge issue. Issue tracking can be handled by a TODO file in the same or a separate repository.