Just a quick run through of what I’ve been doing for the last few days, namely setting up our build / development server. It’s running Fedora, and the end goal was to have redmine, artifactory and hudson all on the same server, all running on port 80. Once it’s installed and running we should be able to run automated builds (using hudson) when we commit to subversion and have those builds available from maven (using artifactory) for our Servicemix installation on another server.
It’s been a fun ride, redmine in particular was loads of fun to get going since I’ve never really setup a rails application before. Anyway, on with the run through. Please note that this is a very basic guide, and assumes you’re comfortable with the linux command line and so on, it’s not really for beginners.
Install fedora, ensure apache / mysql are installed and working, also install the latest JDK (guide here) and ensure your JAVA_HOME environment variable is set correctly.
Download & install redmine following instructions here (for this example assume you installed redmine into /var/redmine). You might have problems with bundler reporting some missing libraries, specifically ‘Rmagick’. this should help with that.
Install passenger from here
make a symlink from a folder in your apache webroot to the ‘public’ folder of wherever you installed redmine:
ln -s /var/redmine/public /var/www/html/redmine
add an .htaccess file in the ‘public’ folder of redmine containing:
PassengerAppRoot /var/redmine #this should be the physical location of the redmine root directory on the filesystem
RailsBaseURI /redmine #this is the URI you want redmine to be accessible at, should match the symlink in /var/www/html/
Now in your web configuration folder (/etc/httpd/conf.d/) add a new ‘redmine.conf’ (or however you configure apache, it varies across versions of fedora I think) containing this:
Alias /redmine /var/www/html/redmine
Options Indexes ExecCGI FollowSymLinks -MultiViews
Deny from None
Allow from All
Finally we need to set redmine to start in production mode. Edit /var/redmine/config/environment.rb and uncomment or add the following line at the top:
ENV['RAILS_ENV'] ||= 'production'
And that should be it… restart apache and you should be able to access redmine at:
Download and install the ‘rpm installer’ for Artifactory using the instructions here
before setting up apache we need to change the port the ‘ajp’ connector runs on, as our hudson installation will steal this later.
edit the file: /opt/artifactory/tomcat/conf/server.xml and find the section that looks like this:
<Connector port="8009" protocol="AJP/1.3"
maxThreads="500" minSpareThreads="20" maxSpareThreads="150"
change the connector port to “8010” and save the file
In the apache configuration, setup reverse proxying as follows (/etc/httpd/conf.d/artifactory.conf)
Allow from all
ProxyPass /artifactory ajp://localhost:8010/artifactory retry=0
ProxyPassReverse /artifactory/ http://YOURHOST/artifactory/
Start artifactory (/etc/init.d/artifactory start) and restart apache (/etc/init.d/httpd restart) and that’s it really. Artifactory is now available at:
Download and install Hudson using the method described here
Create a proxy config file for apache (/etc/httpd/conf.d/hudson.conf) containing the following:
Allow from all
ProxyPass /hudson http://localhost:8080/hudson retry=0
ProxyPassReverse /hudson http://10.10.10.42/hudson
Finally, we need to tell hudson that it’s running on /hudson otherwise all the css / js links break.
and edit / change the following line (it’s near the bottom of the file):
Now start hudson (/etc/init.d/hudson start) restart apache and we’re done. Hudson is now available at http://yourhost/hudson