Run Trac in Windows to serve your project data

While having things under version control locally is good practise too (versus having repository at some server somewhere), the browsing of the source and the changes can be uncomfortable. Since I am a big fan of Trac,which is a great tool for doing the previously mentioned things, here is explained in short how to get it running in your Windows machine.

This is something that I have been writing for long but never got thought it. Initial creation of this post was somewhere in the early 2007…

Since Trac is written in Python programming/scripting/multi-purpose language, we need to install the interpreter and the runtime for it. Just go to and get a suitable binary. The branch of 2.7.x would do for now as most of the applications are not migrated yet for 3.x.

Trac installer can be downloaded from its site. It has few prerequisites, such as Genshi. It might be the easiest way to install it by using SetupTools ( which has a binary at If you prefer downloading all files first and then installing, there is a windows installer for Genshi here. With SetupTools it would be like this:

C:\Python27\Scripts\easy_install.exe Genshi

It seems that Subversion is one of the most popular version tracking systems, hence that will be most likely used with in the projects. It is rather unfortunate that there are no bindings available for Python 2.7 yet.

Recently Git has gained plenty of popularity and it can be installed via plugin:


For storing the data, SQLite would be preferred in order to keep this installation as isolated as possible for easier relocation. Due to the constantly growing popularity of this database engine, it is included in Python from version 2.5 onward.

Most likely you would like to have syntax highlighting available, therefore please install Pygments:

C:\Python27\Scripts\easy_install.exe Pygments

In order to have a small footprint of the service which will be used occasionally to server the Trac pages, we could use some minimalist web server to serve it as a Windows service, for example by using lighttpd.

Unfortunately its configuration with mod_cgi is non trivial and the benefit for this purpose rather small. Therefore Trac will be made available via its standalone server mechanism.

Command to start up Tracd with two projects in various locations could be as the following example:

C:\Python27\Scripts\tracd.exe -p 8888 D:\Repository.Set\ D:\Repository.Set\

Please note that the last part of the path needs to be different between the projects, as it is used as an identification for the url.

What comes then to the Trac project configuration, it is done in the trac.ini file located in the conf directory. Few recommended settings:

default_charset = utf-8
log_type = file

Finally, as a last line of this post, there exists much easier way to do all this, that is Bitnami Trac stack.