HowTo Install Redmine 212 in Ubuntu 1210 and Apache Passenger » History » Version 13

« Previous - Version 13/14 (diff) - Next » - Current version
Boaz Rymland, 2013-06-21 20:19
adding a few words on the DB encryption procedure - its wasn't detailed at all.


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.