Difference between revisions of "Redmine"
(New page: == Redmine == Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.) |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | [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. | |
− | Redmine is a | + | 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 == | ||
+ | Redmine is a Ruby On Rails application. Install it using the Howto [http://wiki.contribs.org/RubyOnRails RubyOnRails]. | ||
+ | |||
+ | == Redmine User == | ||
+ | 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 == | ||
+ | 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 | ||
+ | |||
+ | <pre> | ||
+ | # 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> | ||
+ | </pre> | ||
+ | |||
+ | 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': | ||
+ | |||
+ | <pre> | ||
+ | #!/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 | ||
+ | </pre> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[Category: Howto]] | ||
+ | [[Category: Development Tools]] | ||
+ | [[Category: Webapps]] | ||
+ | [[Category: Groupware]] |
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.