Redmine installation guide

This is a guide to install Redmine (svn trunk) on Ubuntu 9.10.

1: Setup Redmine

The assumed location of Redmine is /srv/redmine

Phase 1: Setup Redmine

Step 1
Install required packages.

$ sudo apt-get install ruby rake ruby-dev rubygems libmysqlclient-dev libopenssl-ruby

Step 2
Check out Redmine trunk.

$ cd /srv
$ sudo svn co redmine

Step 3
Install required ruby gems:

$ sudo gem install rails mongrel mongrel_cluster daemons mysql actionmailer

Note 1: We may need to update Rails RAILS_GEM_VERSION in file [redmine]/config/environment.rb to reflect actual version of Rails gems installed.

Note 2: We may need to create soft link for rails & mongrel executables for convenient

$ sudo ln -s /var/lib/gems/1.8/bin/mongrel_rails /usr/local/bin/
$ sudo ln -s /var/lib/gems/1.8/bin/rails /usr/local/bin/
$ sudo ln -s /var/lib/gems/1.8/bin/mongrel_cluster_ctl /usr/local/bin/

Step 4
Create mysql database

$ mysql -u root -p
# Enter mysql root password when prompted

Run the following code in mysql, substitute your own database name, password, …

CREATE DATABASE redmine character SET utf8;
CREATE user ‘redmine’@’localhost’ IDENTIFIED BY ‘my_password’;
GRANT ALL privileges ON redmine.* TO ‘redmine’@’localhost’;

Step 5
Create/Update database parameters in [redmine]/config/database.yml accordingly to prior step info.

adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password
encoding: utf8

Step 6
Initialize the database

# Initialize session hash
$ sudo rake config/initializers/session_store.rb

# Load db schema
$ sudo rake db:migrate RAILS_ENV=”production”

$ sudo rake redmine:load_default_data RAILS_ENV=”production”

Step 7
Create redmine user & setting up directory permission

# Context: root:[redmine_dir]
$ sudo useradd redmine
$ sudo mkdir tmp public/plugin_assets
$ sudo chown -R redmine:redmine  files log tmp
$ sudo chmod -R 755 files log tmp public

Step 8
Testing the application server

$ sudo ruby script/server -e production

The server is listening on [http://localhost:3000].

Phase 2: Setup Apache & Mongrel Cluster

Step 1
Create mongrel cluster configuration files for Redmine.

$ sudo mongrel_rails cluster::configure -e production -p 3000 -N 3 -c /srv/redmine -a –user redmine –group redmine

# Test mongrel_installation
$ sudo mongrel_rails cluster::start

Step 2
Create apache virtual host file at /etc/apache/sites-available/

DocumentRoot /srv/redmine

AllowOverride FileInfo Indexes

RewriteEngine On

# Redirect all non-static requests to Mongrel
RewriteRule ^/(.*)$ balancer://redmine_cluster%{REQUEST_URI} [P,QSA,L]

ProxyPassReverse / balancer://redmine_cluster
ProxyPreserveHost on
BalancerMember http://localhost:3000
BalancerMember http://localhost:3001
BalancerMember http://localhost:3002
Order deny,allow
Allow from all

# Block access to .svn directories

ErrorDocument 403 /404.html
Order allow,deny
Deny from all
Satisfy All

Step 3
Turn on the virtual host and required modules

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_balancer
$ sudo a2ensite

# Restart web server
$ sudo /etc/init.d/apache2 restart

Phase 3: Surviving the reboot & G!Mail SMTP

Step 1
Create global mongrel_cluster configuration

$ sudo mkdir /etc/mongrel_cluster
$ cd /etc/mongrel_cluster
$ sudo ln -s /srv/redmine/config/mongrel_cluster.yml /etc/mongrel_cluster/redmine.yml

Step 2
Update the services

$ cd /etc/init.d
$ sudo cp /var/lib/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/
$ sudo chmod +x /etc/init.d/mongrel_cluster
$ sudo /usr/sbin/update-rc.d -f mongrel_cluster defaults

Step 3
Configure G!Mail

$ sudo ruby script/plugin install git://
# File: config/email.yml
delivery_method: :smtp
tls: true
address: “”
port: ‘587’
domain: “”
authentication: :plain
user_name: “”
password: “your_password”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: