In the past I have really enjoyed using Trac with subversion repositories hosted on some of my own servers. The integrated ticketing and online code browsing is very conven
Gitweb can be nice, but it doesn't have integrated ticketing or a wiki or anything like that.
I found this when searching the other day, but I have not used it personally yet so I can not vouch for it.
http://www.indefero.net/
Tip: A completely different way to get Trac ticketing functionality is ditz.
"Ditz is a simple, light-weight distributed issue tracker designed to work with distributed version control systems like git, darcs, Mercurial, and Bazaar."
Your tickets reside with your code. It's not possible to lose one and have the other; which is a good thing. The Trac-like website is generated by the ditz
command-line tool.
I enjoy it.
Since this question was asked GitHub now has integrated issue tracking. Somewhat lightweight, but for me that's a bonus.
Github's Trac postreceive hook has now been fixed: http://support.github.com/discussions/post-receive-issues/118-trac-service-hook
You should take a look at Redmine (http://www.redmine.org/). It has all of the features you mention and more. You can host it on your own vps (I do).