vmTrac
by Tallal Garghouti
What does the appliance do?
vmTrac supplies developers with out-of-box source control functionality provided by subversion, which is widely acknowledged as being one of the better OSS solutions around. This is coupled with
Trac which adds a rich web-based UI which gives developers a wiki to document the project,
basic milestone functionality to track the project, a code browser, and a ticket system to track defects.
Uses and benefits
The primary use for vmTrac would be as a small departmental source code repository for small to medium size projects. The web/UI would be used to track defects and the wiki used as a knowledge base for the project. Having all the data for a project in one place is very useful and actively
encourages use, developers are be able to see which change sets applied to which defects with relative ease. Managers have one place where they can monitor defects and track milestones.
Why Bother?
Setting up source control can be a thankless task, and is often overlooked by smaller development teams, which can have disastrous consequences. vmTrac provides a solution to this which is both easy to use and has features that are above and beyond other solutions (e.g. MS Source Safe).
Download
Click here to download the vmTrac.zip (123 Megabytes)
How was the appliance built
The appliance was put together as follows:
- A virtual server appliance was created with a expanding HD to cut down on the packaged size.
- A minimal build of FreeBSD 6.1 (final - released on 8th May 2006)
- 5 Individual packages added using pkg_add (bash, lighttpd, trac, svn & webmin) all dependencies were automatically added.
- The svn repository created under /usr/local/svn_repository
- The Trac instance installed under /usr/local/trac
- The www root is installed under /usr/local/www/data
- All the servers were configured and the correct permissions applied to the relative directories.
- Some documentation was added in the trac wiki itself.
- Webmin was configured with easy to use editor custom actions, providing a way for users who are not used to a command line to quickly add new subversion users and perform general administration of the appliance.
Notes:
- Trac & subversion are core components.
- Lighttpd was chosen as the FastCGI web server for it's extremely small footprint. & fast operation.
- webmin was chosen to make day to day admin tasks easier (e.g. adding a new svn user)
- Testing was conducted both remotely & on the local LAN with different users adding & changing code and logging defects.
Starting the Appliance & general Use
- Unzip to a folder
- load up vmware Server or Player and load up the vmTrac appliance
- Boot the appliance.
- Note the IP address that the appliance gets assigned by DHCP (the assumption is made that this appliacnce will have it's own IP on the LAN)
- Navigate to http://<Machine IP>/trac/login to verify that the appliance is working in it's inital state.
- Note that before SVN can be used the /etc/rc.conf must be edited to change the svnserve listening host ip to the one that the appliance has been allocated.
- this can be done quickly by logging into webmin. This located on http://<Machine IP>:10000/
- navigate: webmin > other tab > custom commands > admin rc.conf
- change the IP in the svnserve_flags="--listen-host 192.168.0.106" section to the new IP
- webmin user is 'admin', password is 'welcome' - these should be changed to something more secure once the appliance is configured.
- A static IP can also be assigned to the appliance in the same manner
[webmin > networking > interfaces > lnc0 interface ]
- Note that changes to the IP will render any current sessions invalid and may require a reboot or networking restart for changes to be effective.
Location of any other documentation.
http://<machine IP>/trac/login
http://www.garghouti.co.uk/vmTrac/
http://svnbook.red-bean.com/
Licensed operating systems, applications, & components
To my knowledge most software installed is covered by GPL & apache/bsd licences.
With the exception of Trac which is freely distributable
FreeBSD 6.1
Trac (C) 2003-2006 Edgewall Software
Subversion
SQL lite
python
Perl
PCRE
lighttpd
clearsilver