These are basically my notes from installing Trac and Subversion on an Ubuntu Intrepid Ibex server.
Install Software Packages
sudo aptitude install libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion sudo easy_install Trac
Create the Trac Environments Directory
sudo mkdir /var/lib/trac sudo chown www-data:www-data /var/lib/trac
Setup Apache2
Using the default Ubuntu Apache virtual server setup, create a virtual server instance for
Trac. This single instance will be used for all Trac projects on the server.
sudo vi /etc/apache2/sites-available/trac.websitename.com
Your file will look a lot like the following. Use your website name instead of websitename.com and use a valid e-mail addressinstead of webmaster@websitename.com.
ServerAdmin it@sitename.com ServerName trac.sitename.com DocumentRoot /hkm/var/www/trac.sitename.com/public LogLevel warn ErrorLog /hkm/var/www/trac.sitename.com/logs/error.log CustomLog /hkm/var/www/trac.sitename.com/logs/combined.log combined # DirectoryIndex index.html SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/lib/trac PythonOption TracUriRoot /projects PythonOption PYTHON_EGG_CACHE /tmp # use the following for one authorization for all projects # (names containing "-" are not detected):AuthType Basic AuthName "trac" AuthUserFile /path/htpasswd_filename_here Require valid-user
Now, use the Debian/Ubuntu utility a2ensite to create a link in apache2/sites-enabled to the file you just created in apache2/sites-available. Then, reload apache2 to enable the new subdomain.
sudo a2ensite trac sudo /etc/init.d/apache2 reload
You will also need to create a DNS A record to point to the server for this subdomain, but this is outside the scope of this blog entry.
Create Trac and Subversion Environments
Here we will make directories and create the Subversion repositories.
sudo mkdir /var/lib/svn sudo mkdir /usr/share/trac sudo svnadmin create /var/lib/svn/project1 sudo svnadmin create /var/lib/svn/project2
Set some permissions:
sudo chown -R www-data /var/lib/svn sudo chown -R www-data /usr/share/trac sudo /etc/init.d/apache2 reload
Set up Trac
sudo mkdir /var/lib/trac
Initialize Trac for one of your projects.
sudo trac-admin /var/lib/trac/project1 initenv
The utility will ask for:
Project Name [My Project]>: project1
Database connection string [sqlite:db/trac.db]>:
Repository type [svn]>:
Path to repository [/path/to/repos]>: /var/lib/svn/project1
Repeat the above for the following, substituting the project code for each:
sudo trac-admin /var/lib/trac/project2 initenv sudo chown -R www-data /var/lib/trac
Get Subversion Running
Modify /etc/apache2/mods-available/dav_svn.conf
sudo vi /etc/apache2/mods-available/dav_svn.conf
<Location /svn> DAV svn SVNParentPath /var/lib/svn SVNListParentPath On AuthType Basic AuthName "Subversion Repository" AuthUserFile /path/htpasswd_filename_here # To enable authorization via mod_authz_svn #AuthzSVNAccessFile /etc/apache2/dav_svn.authz <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Install More aptitude packages for Trac plugins
Install some packages that will be needed.
sudo aptitude install build-essential graphviz sudo aptitude install enscript sudo aptitude install htmldoc
Using easy_install to Install more Trac Plugins
Because these are installed, you will be able to turn these on easily as Trac administrator.
sudo easy_install http://svn.edgewall.org/repos/genshi/trunk/ sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11 sudo easy_install http://trac-hacks.org/svn/eclipsetracplugin/tracrpcext/0.10 sudo easy_install http://trac-hacks.org/svn/iniadminplugin/0.11 sudo easy_install http://trac-hacks.org/svn/masterticketsplugin/0.11 sudo easy_install http://trac-hacks.org/svn/pagetopdfplugin/0.10/ sudo easy_install http://trac-hacks.org/svn/progressmetermacro/0.11 sudo easy_install http://trac-hacks.org/svn/ticketdeleteplugin/0.11 sudo easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.11 sudo easy_install http://wikinotification.ufsoft.org/svn/trunk