Menu

Nakov.com logo

Thoughts on Software Engineering

GForge as Collaboration Software for Software Development

About GForge

I use GForge, an open-source software for collaboration in a development team for almost all my projects: software projects, courses, consulting projects, etc.

I am very happy with GForge. It provides integrated set of collaboration tools: Subversion, CVS, project tracking tools, bug tracking, management of projects and users (create, manage, modify projects and users), and configurable security. You can create new project, create users and assign access rules for these users.

Where to Start From with GForge?

I prefer running GForge on a virtual machine instead on a real PC to simplify backup, migration and support of the system. If you want to start using GForge, I recommend you to download and run a VMWare virtual machine image from http://gforge.org/ and configure it. You would like to configure some files and settings as mentioned below.

Configure Network and Hostname

First you need to configure the networking settings. I prefer using bridged network and join the virtual machine as part of the existing network.

The hostname is pre-set to gforgedemo.com so you first need to create local DNS and hosts entries. To change the hostname, there are several files in /etc/* that you need to modify. Alter the hostname and IP address to your needs:

/etc/gforge/httpd.conf
/etc/gforge/local.inc
/etc/gforge/plugins/scmcvs/config.php
/etc/gforge/plugins/cvstracker/config.php
/etc/gforge/plugins/svntracker/config.php
/etc/hosts
/etc/sysconfig/network
/etc/mailman/mm_cfg.py

Test the system by logging with the default administrator, delete it and create new administrator and users. Create some sample projects and test it they work.

Configure Scheduled Tasks

By default if you register a new project, its SVN and CVS repositories will be created in few minutes, not immediately. You may need to reconfigure the speed of the scheduled tasks in the crontab file. Type “crontab -e”. Your crontab file will be open for editing. Modify this line:

20 * * * * $PHP $GFORGE/cronjobs/dav-svn/create_svn.php

with this line:

*/5 * * * * $PHP $GFORGE/cronjobs/dav-svn/create_svn.php

By default All Projects are Public!

Be careful because by default all newly registered projectas are public and can be accesses (in read only mode) by any users at the system, including guests. You should edit projects and mark them private to enforce security. Thus only authenticated users belonging to the project could access it.

Configure External (Internet) Access

You may want to enable access to the GForge server form Internet. You may not have static real IP address and may want to access the SVN without establishing VPN connection to your internal network. You can make a portmap to enable accessing the GForge server from your network (e.g. http://192.168.0.17:80) through your real IP address on another port through SSL, e.g. https://dev.external-ip.mycompany.com:8080.

This is not enough! You will soon discover that GForge redirects all your external requests from dev.external-ip.mycompany.com:8080 to the internal server, e.g. 192.168.0.17:80. To disable this feature edit this file: /opt/gforge/gforge-4.5.4/www/include/pre.php and comment the redirection code (fragment of it is shown below):

/*
redirect to proper hostname to get around certificate problem on IE 5
*/
if ($HTTP_HOST != $GLOBALS[‘sys_default_domain’] && $HTTP_HOST …

Making the SVN repository browsable from the Web

To make the SVN repository to be browsable from the Web (after authentication) you need to provide an XSL transformation file for visualizing the XML. All you need is to put the files svnindex.xsl and svnindex.css in /opt/gforge/gforge-4.5.4/www.

That is all. Enjoy!

Comments (1)

One Response to “GForge as Collaboration Software for Software Development”

  1. This is the perfect web site for anybody who really wants to understand this topic.
    You know so much its almost hard to argue with you (not that
    I actually will need to…HaHa). You certainly put a new spin on a topic which has been written about for decades.
    Wonderful stuff, just great!

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT