Difference between revisions of "Redmine"

From SME Server
Jump to navigationJump to search
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.  
+
[http://www.redmine.org Redmine] is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.  
  
This is a Howto of how I went about getting a basic installation of Redmine going on my SME server. I have now been using it for a number of months and am quite happy with it. As a matter of fact, I converted my existing Trac project environments to Redmine and have been using Redmine exclusively since.  
+
This is a Howto of how I went about getting a basic installation of [http://www.redmine.org Redmine] going on my SME server. I have now been using it for a number of months and am quite happy with it. As a matter of fact, I converted my existing Trac project environments to [http://www.redmine.org Redmine] and have been using [http://www.redmine.org Redmine] exclusively since.  
  
 
== Ruby On Rails ==
 
== Ruby On Rails ==
Redmine is a Ruby On Rails application. Install it using the Howto RubyOnRails.
+
Redmine is a Ruby On Rails application. Install it using the Howto [http://wiki.contribs.org/RubyOnRails RubyOnRails].
  
 
== Redmine User ==
 
== Redmine User ==
The Redmine webservice needs a user to operate under and it needs an ability to access email for some of its services. The easiest thing to do is to create a new user 'redmine' using your server-manager panel. This users also needs access to a login shell.
+
The [http://www.redmine.org Redmine] webservice needs a user to operate under and it needs an ability to access email for some of its services. The easiest thing to do is to create a new user 'redmine' using your server-manager panel. This users also needs access to a login shell.
  
 
== Redmine Installation ==
 
== Redmine Installation ==
Line 24: Line 24:
 
   svn checkout http://redmine.rubyforge.org/svn/trunk redmine
 
   svn checkout http://redmine.rubyforge.org/svn/trunk redmine
  
== Create the Redmine database ==
+
=== Create the Redmine database ===
 
Again the installation instructions are on http://www.redmine.org/wiki/redmine/RedmineInstall. I found it easiest to create the database using PHPMyAdmin. The database is a called 'redmine' with an appropriate password and accessible by the user you created above.
 
Again the installation instructions are on http://www.redmine.org/wiki/redmine/RedmineInstall. I found it easiest to create the database using PHPMyAdmin. The database is a called 'redmine' with an appropriate password and accessible by the user you created above.
  
== Connecting Redmine to the database ==
+
=== Connecting Redmine to the database ===
 
To setup Redmine to use the database you just created, goto:
 
To setup Redmine to use the database you just created, goto:
  
Line 38: Line 38:
 
and edit new database.yml file to list your database name, username and database password.  
 
and edit new database.yml file to list your database name, username and database password.  
  
== Create the database structure ==
+
=== Create the database structure ===
 
Setup the database as per the installation instructions as:
 
Setup the database as per the installation instructions as:
  
Line 44: Line 44:
 
  rake redmine:load_default_data RAILS_ENV="production"
 
  rake redmine:load_default_data RAILS_ENV="production"
  
== Start the server ==
+
=== Start the server ===
 
You can now test start your server with the command:
 
You can now test start your server with the command:
  
Line 53: Line 53:
 
   http://yourservername:3000/
 
   http://yourservername:3000/
  
== Accessing Redmine through your main webserver ==
+
=== Accessing Redmine through your main webserver ===
  
 
To access Redmine through the main webserver, I created the following custom template in
 
To access Redmine through the main webserver, I created the following custom template in
Line 74: Line 74:
 
</pre>
 
</pre>
  
Expand the template and restart the http server.
+
Expand the template and restart the http server:
 +
 
 +
expand-template /etc/httpd/conf/httpd.conf
 +
/etc/rc.d/init.d/httpd-e-smith restart
  
 
Now Redmine can be accessed through http://servername/redmine
 
Now Redmine can be accessed through http://servername/redmine
Line 92: Line 95:
 
Note that the port number used for the Redmine proxy above (2555) is configured in the start/stop script below.
 
Note that the port number used for the Redmine proxy above (2555) is configured in the start/stop script below.
  
== Starting and stopping the Redmine server ==
+
=== Starting and stopping the Redmine server ===
  
 
In /etc/init.d, create the following script 'redmine':
 
In /etc/init.d, create the following script 'redmine':
Line 160: Line 163:
 
   /etc/init.d/redmine start
 
   /etc/init.d/redmine start
  
=== Additional information ===
+
== Importing Trac into Redmine ==
 +
 
 +
I has some success in importing existing Trac environments into Redmine as per the instructions on
 +
http://www.redmine.org/wiki/redmine/RedmineMigrate.
 +
 
 +
The biggest trouble in that process was getting hold of the right sqlite-ruby library for the migration script to access the Trac database (unfortunately I don't remember how I fixed that).
 +
 
 +
== Additional information ==
  
 
More information about Redmine can be found on http://www.redmine.org
 
More information about Redmine can be found on http://www.redmine.org

Latest revision as of 06:28, 24 October 2008

Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.

This is a Howto of how I went about getting a basic installation of Redmine going on my SME server. I have now been using it for a number of months and am quite happy with it. As a matter of fact, I converted my existing Trac project environments to Redmine and have been using Redmine exclusively since.

Ruby On Rails

Redmine is a Ruby On Rails application. Install it using the Howto RubyOnRails.

Redmine User

The Redmine webservice needs a user to operate under and it needs an ability to access email for some of its services. The easiest thing to do is to create a new user 'redmine' using your server-manager panel. This users also needs access to a login shell.

Redmine Installation

The installation instructions for redmine are listed at http://www.redmine.org/wiki/redmine/RedmineInstall.

I chose the checkout option and installed from a shell as follows:

Become root:

 su -

Switch to user redmine:

 su - redmine
 cd /opt
 svn checkout http://redmine.rubyforge.org/svn/trunk redmine

Create the Redmine database

Again the installation instructions are on http://www.redmine.org/wiki/redmine/RedmineInstall. I found it easiest to create the database using PHPMyAdmin. The database is a called 'redmine' with an appropriate password and accessible by the user you created above.

Connecting Redmine to the database

To setup Redmine to use the database you just created, goto:

 cd /opt/redmine/config

then copy the database example config file:

 cp config/database.yml.example config/database.yml

and edit new database.yml file to list your database name, username and database password.

Create the database structure

Setup the database as per the installation instructions as:

rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"

Start the server

You can now test start your server with the command:

 ruby script/server -e production

and you should be able to browse your Redmine environment on:

 http://yourservername:3000/

Accessing Redmine through your main webserver

To access Redmine through the main webserver, I created the following custom template in

 mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
 cd /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
 vim 95redmine
  # Redmine proxy to connect to mongrel process on port 2555

  ProxyPass        /redmine http://localhost:2555
  ProxyPassReverse /redmine http://localhost:2555

  <Location /redmine>
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1 10.1.0.0/255.255.255.0
  </Location>

Expand the template and restart the http server:

expand-template /etc/httpd/conf/httpd.conf
/etc/rc.d/init.d/httpd-e-smith restart

Now Redmine can be accessed through http://servername/redmine

As you can see from the above, I only allowed access from the local network.

Then Redmine itself needs to be reconfigured as follows to allow this path prefix for the application:

 su - redmine
 cd  /opt/redmine/config
 vim environment.rb

And as the last line in the file add:

ActionController::AbstractRequest.relative_url_root = "/redmine"

Note that the port number used for the Redmine proxy above (2555) is configured in the start/stop script below.

Starting and stopping the Redmine server

In /etc/init.d, create the following script 'redmine':

#!/usr/bin/env ruby

require "fileutils"
include FileUtils

require "rubygems"

begin
  gem 'mongrel'
rescue => e
  puts "Error: daemon mode of redmine requires mongrel installed"
  exit 1
end

def redmine_path
  "/opt/redmine"
end

def redmine_user
  "redmine"
end

command = ARGV.shift

case command
when 'start'
  system "su - #{redmine_user} -c 'cd #{redmine_path}; mongrel_rails start -d -e production -p 2555'"
  exit 0
when 'stop'
  system "cd #{redmine_path}; mongrel_rails stop"
  system "rm -f #{redmine_path}/log/mongrel.pid"

  exit 0
else
  p "Usage: /etc/init.d/redmine start|stop"
  exit 1
end

Then create the links to start and stop automatically:

 cd /etc/rc7.d
 ln -s ../init.d/redmine S99redmine 
 TODO: the link to stop the server at shutdown

Upgrading Redmine

If you used the checkout method of installing, you can upgrade your Redmine installation with the following commands:

As root:

 su -
 /etc/init.d/redmine stop
 su - redmine

As redmine:

 cd /opt/redmine
 svn update
 rake db:migrate RAILS_ENV="production"
 exit

As root:

 /etc/init.d/redmine start

Importing Trac into Redmine

I has some success in importing existing Trac environments into Redmine as per the instructions on http://www.redmine.org/wiki/redmine/RedmineMigrate.

The biggest trouble in that process was getting hold of the right sqlite-ruby library for the migration script to access the Trac database (unfortunately I don't remember how I fixed that).

Additional information

More information about Redmine can be found on http://www.redmine.org

More information on the SME Subversion Web Panel can be found in http://wiki.contribs.org/Subversion.