Vmware image for testing
VmwareToolsServer - check this page to see how to configure.
Trac and Subversion tool configuration
Install ruby:
apt-get install irb1.8 libreadline-ruby1.8 libruby libruby1.8 rdoc1.8 ruby ruby1.8 ruby1.8-dev rubygems libsqlite3-ruby
Install Rails using gems:
We are currently using Rails version 1.2.6 (see line 8 of this source code )
gem install rails -v=1.2.6 --include-dependencies gem install daemons
Install MySQL:
apt-get install mysql-server
Checkout Breakout Application:
svn co http://tools.assembla.com/svn/breakout/breakout # Breakout project should be in /u/apps/breakout/current = BREAKOUT_HOME - capistrano convention. # set environment variable BREAKOUT_HOME export BREAKOUT_HOME=/u/apps/breakout/current
Install Apache2:
apt-get install apache2
Install subversion packages:
apt-get install subversion libapache2-svn
Install packages required for trac:
apt-get install python-dev swig1.3 python-clearsilver python-sqlite libapache2-mod-python python-subversion python-mysqldb
Enable apache modules:
Use a2enmod command to enable apache module
a2enmod mod_python a2enmod dav_svn
Restart apache.
/etc/init.d/apache2 restart
Download and install trac:
cd ~ mkdir src cd src wget http://ftp.edgewall.com/pub/trac/trac-0.10.3.tar.gz tar xzf trac-0.10.3.tar.gz cd trac-0.10.3 python setup.py install mkdir /usr/share/trac/conf cp $BREAKOUT_HOME/vendor/trac/conf/trac.ini /usr/share/trac/conf mkdir /usr/share/trac/plugins # build and copy there TracXMLRPC, TracTocMacro plugins
Install syntax highlighting libraries:
Download and install enscript and SilverCity?-0.9.5
apt-get install enscript wget http://neugierig.org/software/ruby/ruby-enscript.tar.gz # ruby syntax for enscript, copy ruby.st to /usr/share/enscript/hl wget http://prdownloads.sourceforge.net/silvercity/SilverCity-0.9.5.tar.gz?download tar zxf SilverCity-0.9.5.tar.gz cd SilverCity-0.9.5 python setup.py build python setup.py install
install trac plugins: webadmin and breakoutTracAuth
cd ~/src wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip mv TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip /usr/lib/python2.3/site-packages/TracWebAdmin-0.1.2dev_r4240-py2.4.egg wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py cd $BREAKOUT_HOME/vendor/trac/plugin python setup.py install mkdir /var/www/.python-eggs chmod 777 /var/www/.python-eggs
Install soappy module for python needed for soap authentification with the breakout site.
apt-get install python-soappy
Create dirs for trac and subversion projects:
mkdir /var/local/trac mkdir /var/local/svn chown www-data.www-data /var/local/trac /var/local/svn
Configure Apache:
Sample apache configuration (vhost IP should be changed to the server IP, not 127.0.0.1).
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
ServerName tools.host.com
DocumentRoot "/var/www/"
ErrorLog /var/log/apache2/tools-error.log
# Possible values include: debug, info, notice, warn, error, crit, al
LogLevel warn
CustomLog /var/log/apache2/tools-access.log combined
SetHandler mod_python
PythonDebug On
SetEnv PYTHON_EGG_CACHE /var/www/.python-eggs
<Location "/svn/">
DAV svn
SVNParentPath /var/local/svn
AuthType Basic
AuthName "Restricted Area"
#Require valid-user
PythonAccessHandler breakout.access
PythonAuthenHandler breakout.svn_access
</Location>
RewriteEngine on
# Skip svn internal requests
RewriteCond %{IS_SUBREQ} ^true$
RewriteRule .* - [L]
RewriteRule \!svn - [L]
# Trac rewrite rules
RewriteRule ^/([^/]+)(.*)$ - [C,E=ProjectID:$1]
RewriteCond %{ENV:ProjectID} !="svn"
RewriteCond /var/local/trac/%{ENV:ProjectID} -d
RewriteRule ^/(.+) /trac/$1 [L]
#RewriteLog /var/log/tools/rewrite.log
#RewriteLogLevel 3
<Directory /var/www/trac>
PythonOption TracUriRoot /
PythonOption TracEnvParentDir /var/local/trac
PythonHandler breakout.access
PythonAccessHandler breakout.access
PythonAuthenHandler breakout.access
AuthType Basic
AuthName "Restricted Area"
</Directory>
###########################
# Authorization
PythonPath "sys.path + ['/u/apps/breakout/current/vendor/apache/mod_auth']"
PythonAuthenHandler breakout.access
PythonAuthzHandler breakout.access
PythonAccessHandler breakout.access
PythonOption AUTH_SOAP_URL "http://breakout.host.com:3000/backend/user"
PythonOption SVN_BASE "/var/local/svn"
###############################
</VirtualHost>
Disable module authn_file for apache >= 2.2
Edit your hosts file:
vi /etc/hosts # add these lines IPADDRESS breakout.host.com #IP of the server running breakout application. IPADDRESS tools.host.com svn.host.com trac.host.com #IP of the server running trac/svn tools.
Configure variables for Trac in $BREAKOUT_HOME/vendor/control/control.yml file, see control.yml.example as sample config.
Run control server:
$BREAKOUT_HOME/vendor/control/control.rb start
Run control server as a background process:
nohup $BREAKOUT_HOME/vendor/control/control.rb start &