Assembla home | Assembla project page
 

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 &