Redmine

This article describes how to install Redmine, an integrated Wiki and Issue Tracker with support for Subversion. Version >= 0.9 is assumed.

Note: The most up-to-date instructions on how to install Redmine are available here. You may just want to follow those instructions once you get Ruby on Rails set up on a subdomain and a MySQL database created. (If you're on shared hosting, don't run the WEBrick test server mentioned in the directions; it's against Dreamhost's policy.)

For help on using the shell you can take a look at the UNIX commands and you can also get help on changing directories. If you want to save the output for debugging and support then you can look at the Redirection Symbol.

Initial installation
This details installation of Redmine 2.0 using FCGI (see also http://wiki.dreamhost.com/Rails_3#Using_FastCGI). Use FCGI and NOT Passenger since Dreamhost's current Passenger version is out of date. (May 19 2012 Passenger is currently v2.2.9, which was released in Jan 2010).

Create a new subdomain and a new MySQL database

 * 1) From the Dreamhost control panel, create a new subdomain for Redmine such as yoursubdomain.yourdomain.com.
 * 2) Do NOT enable Passenger.  Dreamhost's Passenger version is old and buggy.  Use FCGI instead of Passenger.
 * 3) Specify your web directory: /home/username/yoursubdomain.yourdomain.com/public You must add public. It is the actual web interface; additional code is contained in parent and sibling folders. If you are planning to use an svn checkout of redmine, do not create the public directory as it is a part of the repository and has additional files under it.
 * 4) From the Dreamhost control panel create a new MySQL database named yourdatabasename.

Get the Redmine source code
ssh into your Dreamhost account and run

cd ~/yoursubdomain.yourdomain.com hg clone --updaterev 2.0-stable https://bitbucket.org/redmine/redmine-all redmine-2.0

Check http://www.redmine.org/wiki/redmine/Download for the latest version

Alternative download methods
There are a few alternatives to using mercurial to get the source code.

svn checkout http://redmine.rubyforge.org/svn/branches/2.0-stable redmine-2.0
 * Use svn to download and update the source code


 * As another alternative, if you don't want to be able to update Redmine, you can do

svn export --force svn://rubyforge.org/var/svn/redmine/branches/2.0-stable redmine-2.0


 * Or manually unpack a source tarball from Rubyforge

wget http://rubyforge.org/frs/download.php/76259/redmine-2.0.3.tar.gz tar -zxvf redmine-2.0.3.tar.gz

Configure the Redmine installation

 * Create the  file

cd ~/yoursubdomain.yourdomain.com/redmine-2.0/config cp database.yml.example database.yml


 * Edit  with a text editor. Change the   stanza to your settings:

production: adapter: mysql database: your_redmine_database_name host: your_dreamhost_mysql_hostname username: your_dreamhost_mysql_username password: your_dreamhost_mysql_passsword encoding: utf8

Configuring a repository
When a new project is made you will probably link a repository to it. Our Redmine setup is on a Dreamhost PS account. This should work on a shared account but YMMV.

Go to the project. Then settings -> repository -> Create. Choose the repository type and enter its full local path. For example, for git: /home/username/repodict/.git

It is important to tell Redmine to look for new repositories. Execute this line:

ruby /home/username/sub.domain.com/script/runner "Repository.fetch_changesets" -e production

Change production for any environment you made.

sendmail
Edited from Matt Jones' Blog

The easiest way to send email on a Dreamhost PS account is just to use sendmail. Edit email.yml, look for the section marked “=== Sendmail command” and uncomment the following lines so it looks like this: production: delivery_method: :sendmail
 * 1) === Sendmail command

Be sure to comment out any other "production" sections that may appear after this section.

GMail/Google Apps
Configure Redmine to use GMail/Google Apps

Restart Passenger
After changing the e-mail settings don't forget to restart Passenger by adding the file restart.txt to the tmp folder. touch tmp/restart.txt
 * Change directory (cd) to the root of the redmine install and issue the following command to restart the redmine application.

=How to Fix Redmine if Dreamhost Upgrades to a Newer Version of Rails=

Sometimes Dreamhost upgrades Rails (or doesn't upgrade it fast enough to keep up with new versions of Redmine), which can break Redmine since it is fairly particular about rails versions -- the 0.9.x codebase expects rails 2.3.5, for example. Dreamhost upgraded several servers to Rails 2.2.2 on 1/5/09, breaking several Redmine instances. In the user discussion that followed this event, one helpful Dreamhost customer shared the following steps for re-installing Rails 2.0.2 and "freezing" Redmine so that it will continue using the old version, even if Dreamhost upgrades Rails again in the future. The following steps have been updated to show how to install rails 2.3.5. (Note: the original discussion can be viewed at http://www.dreamhoststatus.com/2009/01/05/hooray-another-rails-upgrade/):

1. Remove old Rails installations (these overcome the "the rack(0.3.0 not >= 0.9.0)" error.): rm -fR /home/YOUR_DOMAIN/.gem rm -fR /home/YOUR_DOMAIN/REDMINE_DIR/vendor/rails 2. Edit REDMINE_DIR/config/environment.rb and ensure it has the following lines: RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION ENV['GEM_PATH'] = '/home/YOUR_DOMAIN/.gem:/usr/lib/ruby/gems/1.8' 3. Navigate to your Redmine directory and install ROR v2.3.5 (highest version of Rails supported by Redmine): gem install -v=2.3.5 rails Note: You will probably get 2 WARNINGs - we have taken these into account in step 2. 4. Freeze your Redmine to use 2.3.5 and nothing else: rake rails:freeze:edge TAG=rel_2-3-5 IMPORTANT: Do NOT type “rake rails:freeze:gems” - this breaks it again. Also, I did not need to run “rake rails:update”. 5. Replace REDMINE_DIR/config/boot.rb with REDMINE_DIR/vendor/rails/railties/environments/boot.rb. This overcomes the “undefined method 'install_gem_spec_stubs' for #)” error.

Note: You may experience a small delay (up to an hour?) before Redmine starts working again.

WARNING: rake rails:freeze:edge TAG=rel_2-3-5 no long works! --Ericvh 10:22, 20 December 2010 (PST)

To get by the problem with "rake rails:freeze..." timing out use the following from the REDMINE_DIR: git clone --branch=2-3-stable git://github.com/rails/rails.git rails cd rails git checkout v2.3.5

Update: In December 2010, Dreamhost upgraded Rails to version 3.0.3, which broke many installations of Redmine.

Instructions for fixing have been provided by paulorcf on the VPIData blog:

1. $ rake VERSION=2.3.5 rails:freeze:gems 2. $ cd vendor/rails/activesupport/lib/active_support/ 3. $ vim vendor.rb 4. Edit line 24 ( http://stackoverflow.com/questions/2975532/have-rails-2-3-x-ignore-the-i18n-gem ) gem 'i18n', '>= 0.1.3', '< 0.4.0' 5. $ cd - 6. $ rm -rf tmp/restart.txt 7. $ touch tmp/restart.txt

=Fixing the problems in browsing a Mercurial repository=

If you use Mercurial as your repository in Redmine and self compiled your own Mercurial in your home directory, you might be getting a 500 error whenever trying to browse the repository. The problem is merely that Redmine does not find your Mercurial Binary and your Python library. To solve the issue, please do the following modifications:

In newer versions of Redmine simply:


 * 1) cp config/configuration.yml.example config/configuration.yml
 * 2) nano config/configuration.yml
 * 3) Look for the line containing "scm_mercurial_command", and add the path to your Mercurial binary.

Or for older versions:


 * 1) Open ~//config/environment.rb
 * 2) Add ENV["PYTHONPATH"] = '//lib/python'
 * 3) Save the file and close
 * 4) Open ~//bin/hg'
 * 6) Save the file and close
 * 7) Restart the Application
 * 8) Create a file at: ~//tmp/restart.txt with empty contents
 * 9) If such a file already exits, just update it using: touch ~//tmp/restart.txt
 * 10) Now Browse your site and you'll see everything working fine.

=Alternative Packages=

Bugzilla

Mantis is a PHP bug tracker

Trac