Open source project management tool
Trac is a lightweight project management tool that is implemented as a web-based application, written in the Python programming language. It emphasizes ease of use and low ceremony, and is open source.
Ideal for managing software developments, it is flexible enough to use for many types of projects. As it's open source, if it doesn't quite fit your needs, you can always make changes yourself, write plugins, or commission someone else to do so.
Track the progress of resolving individual bugs, issues, feature requests, and ideas - each with its own ticket (numbered, as in a waiting room queue system). Easily reconcile overlapping tickets (where more than one person reports the same thing). Search and filter tickets by severity, project component, version or owner (among others).
Trac gives you a number of convenient ways to stay on top of events and changes within a project. You can set milestones, and view a roadmap of progress towards them (as well as historical achievements) in summary. There is a timeline of individual changes so you can see the order of events, starting with the most recent. Trac supports RSS for content syndication: allowing people to subscribe to those changes outside Trac itself, as well as email notification.
Online repository viewing
Trac gives a highly usable browsing and management front-end for Subversion, a modern open-source version control system. Trac gives you clear and elegant code highlighting and file comparison, so you can easily see how files differ. Using plugins, Trac also supports other version control software.
Trac has a simple permission system to control what users can and can't access. Can be enhanced with th:AccountManagerPlugin and other plugins.
Built-in documentation server, which can be used for developer or user resources. As it's a Wiki, it can be set up to allow shared editing. Uses MoinMoin syntax and magic links to tickets, reports and source.