HowTo Install Redmine 212 in Ubuntu 1210 and Apache Passenger

Inspired in "HowTo Install Redmine 210 on Debian Squeeze with Apache Passenger", from this same wiki, so meta-kudos, to the original authors.

Assumptions

  • We will be using redmine.example.com; so every time you see this below, replace it by your own domain
  • For this to work maybe you shold edit /etc/hosts file adding a line "127.0.0.1 redmine.example.com"
  • If you are behind a proxy, you could do export http_proxy="http://proxy.domain.tld:port" and the installation should work ok.

Warming up

We will first need to install basic packages:

apt-get install ruby rubygems libruby libapache2-mod-passenger ruby-dev

Download the latest version of Redmine (2.1.2 in our case) and untar it, then move it to /usr/local/share
cd /usr/local/share/
wget http://rubyforge.org/frs/download.php/76495/redmine-2.1.2.tar.gz
tar -xzvf redmine-2.1.2.tar.gz
ln -s /usr/local/share/redmine-2.1.2 /usr/local/share/redmine
chown -R root:root /usr/local/share/redmine-2.1.2

Install development libraries for MySQL and Imagick:

apt-get install libmysqlclient-dev libmagickcore-dev libmagickwand-dev (install shitload of packages)

Running the Gem stuff

Install Bundler (removing useless module, which would otherwise create dependencies):

gem install bundler
cd /usr/local/share/redmine/
bundle install --without development test postgresql sqlite

Creating the database

On a new installation you need to create the database and a user for redmine.
Open a mysql command prompt:

mysql -u root -p

At the mysql prompt enter the mysql commands:

create user 'redmine' identified by 'redmine';
set password for 'redmine'@'localhost' = password('my_password');
grant all on redmine.* to 'redmine'@'localhost';
create database redmine;
quit;

Configuration

Copy /usr/local/share/redmine/config/database.yml.example to /usr/local/share/redmine/config/database.yml and edit this file in order to configure your database settings for "production" environment.
Example for a MySQL database using ruby1.8 or jruby:

production:
  adapter: mysql2      (note: For Rails < 3.1 use mysql instead of mysql2)
  database: redmine
  host: localhost
  username: redmine
  password: my_password

Generate a session store secret:

rake generate_secret_token

Generate the database structure:

RAILS_ENV=production rake db:migrate

Generate default configuration data:

RAILS_ENV=production rake redmine:load_default_data

(using “es” for Spanish language in terminal prompt)

Database encryption

If you want to encrypt your redmine database do as follows:

  1. Copy the default config file /usr/local/share/redmine/config/configuration.yml.example to /usr/local/share/redmine/config/configuration.yml
  2. Edit configuration.yml and create a cipher key there for the environment you've used so thus far - production. Be sure to read the comment in this file. They are very detailed and there for you.
  3. Run:
    rake db:encrypt RAILS_ENV=production
    

Apache

Setup Apache’s VirtualHost config

# 8080 in this case is because we use a reverse proxy before Apache. Otherwise simply use "*:80" 

<VirtualHost *:8080>
 ServerName redmine.example.com
 DocumentRoot /usr/local/share/redmine/public
 <Directory /usr/local/share/redmine/public>
   AllowOverride all
   Options -MultiViews
 </Directory>
</VirtualHost>

Once you enable this virtual host (a2ensite redmine.example.com) and reload Apache (apache2ctl graceful), you should see your site running on http://redmine.example.com.

The default login/password is admin/admin (don't forget to change this).

Sources of inspiration

We used the following resources as a starting point. Thanks to their respective authors.