Tuesday, April 10, 2007

HOW TO: Setting up GForge in minutes

GForge is a collaborative development environment, which was forked from SourceForge, read more about it here. GForge is being used heavily world wide and is much better option for project management, versioning and collaboration. The best thing is, it's open source and freely available and is documented and improved regularly.

I spent past week configuring and hacking GForge. Apparently, It requires a good understanding of many Linux related stuff. Being sufficiently complex, it takes good system administration skills to get it running perfectly. I'm not proclaimed Linux expert, neither plan to be one; but I agree it was fun playing with this cool stuff in Linux among others.

Well If you are not curious on details, you may skip rest of the post.

There are multiple ways of setting it up, in increasing order of difficulty:

1. You can download Pre-configured GForge VMWare Image on Fedora core.
2. If you use debian based linux distributions, auto install all the dependencies and gforge using one simple command.
3. Download official tar-ball and configure it by hands on any Linux.

I tried all of them on Ubuntu and Fedora, and It worked well in most cases. Doing everything from scratch, i.e. installing it from "official" tarball, is bit difficult but not amazingly hard (more than linux, you need to understand how various things like DNS, Postgres, MailMan, WikiWikiWeb, CVS, SVN, LDAP etc. work).

If you want to deploy it on Debian or debian based distro, you've to update your sources.list to lookup/install and upgrade Gforge for debian, read more here. Be careful in doing 'apt-get install', it may render your OS useless, if GForge and dependencies are not configured smartly. Especially you'll face problems related to OpenLDAP and Postgres SQL, also these sources has older versions of Postgres which are bit difficult to upgrade without dependency issues. For example, if you fail to install postgres properly, you'll not be able to login which expects LDAP authentication. LDAP, in turn, depends on DB which is not well-configured, what will happen is everytime you try to login at tty it will give you "Can't connect to DB". If you run in such problems, You can login as single user from GRUB loader and delete ldapnss and other ldap related files from /etc to get it running normally, but this can be really dirty exercise.

The easiest most is to play with VMWare image. Recently, (ok, not so recently) some contributors at gforge.org made virtual appliance of GForge on Fedora Core 3, you may download it from here. It's pretty easy to setup and get going with it.

However, There are several problems when you run VMWare image in VMWare Player:
1. At first you've to setup the virtual host for 80 and 443 (HTTP, HTTPS) in apache configuration.

2. If you run this image on other network, you'll have problems of failed login with out any warning or error message you'll see glorious "Cookies must be enabled past this point" and nothing will happen. This is because your VMWare Image IP is different than what it is configured for apache, and browser will stop accepting cookie from the server. This whole IP thing is problematic with VMWare because VMware host does not automatically provide internal DNS service for the virtual machines, and IP allocation is based on the host network adapters bridged with virtual VMWare adapters, which may have different addressing schemes. In short, IP of gforge image keeps changing based on the computer you run it on.

In this case you can either reconfigure Virtual host settings in httpd.conf to match current IP or you can force static ip by adding following lines in your /etc/rc.local file.

/sbin/ifconfig eth0 [staticip] netmask [subnetmask]

This will ensure that you've static IP everytime you run image. Once run, you can access the gforge portal from host OS browser. That's it, there you go.

I'll write more about GForge interesting internal stuff sometime later.

1 comment:

Mário said...

Thanks! That saved me a couple of hours (days?) fiddling with the GForge source files and assembling all together. Having a VMWare image file ready to be deployed is something sent from heaven...