Line 1: |
Line 1: |
− | == Redmine ==
| + | 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 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 |
| + | |
| + | <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. |
| + | |
| + | 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 |
| + | |
| + | === 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]] |