How to Software

How to: Setup Redmine 2.1.4 on Ubuntu 12.10

Redmine is the best software package I’ve come across when dealing with software development and I highly recommend its use to everyone, however quite a few people have issues setting it up. Especially those who are new to Ruby or Rails. This guide walks you through the basics of setting it up on a fresh Ubuntu 12.10 installation.

sudo apt-get update
sudo apt-get upgrade
  • Install Ubuntu 12.10 (this guide uses Ubuntu Server 12.10 64-Bit). I would recommend installing this on it’s own server or virtual machine.
  • Update the system
  • If any kernel upgrades are required, this would be a good time to restart the server.
  • Install the packages we will require, this may take some time as the list is quite long.
sudo apt-get install ruby rubygems libruby libapache2-mod-passenger ruby-dev zip unzip libmysqlclient-dev libmagickcore-dev libmagickwand-dev mysql-server mysql-client

You will be prompted for a MySQL root password. Usual decent password practices apply.

  • Download Redmine v2.1.4 from RubyForge.

    You can download either the tar or zip version. Download the MD5 Sum of the file as well (it will have the same file name but with ‘.MD5’ at the end and will be quite small.
  • Confirm the MD5 of the file you downloaded matches the one in the md5 file
md5sum redmine-2.1.4.tar.gz
cat redmine-2.1.4.tar.gz.md5

If the strings do not match, one of the two files is corrupted.

  • Untar or Unzip the file and move the folder to an appropriate location
tar -xzvf redmine-2.1.4.tar.gz
unzip redmine-2.1.4.tar.gz
sudo mv redmine-2.1.4 /usr/local/share
cd /usr/local/share/redmine-2.1.4/
  • Install appropriate gems
sudo gem install bundler
sudo gem install rdp-mysql2
  • Install the Redmine ‘bundle’ without dev / test environments and other database components
sudo bundle install --without development test postgresql sqlite
  • Create a MySQL user and Database for Redmine (using the local server)

    In these steps “your_password” should be replaced by a password different from the root account.
  • Connect to the MySQL Server Daemon:
mysql -u root -p
  • Create the new user:
CREATE USER 'redmine'@'localhost' IDENTIFIED BY  'your_password';
  • Create the new database:
  • Grant the user rights over the database:
GRANT ALL PRIVILEGES ON  redmine . * TO 'redmine'@'localhost';
  • Create the Database configuration file
sudo nano config/database.yml
  • Enter the following text, replacing your password as per above
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: your_password
  • Generate the session secret:
sudo rake generate_secret_token
  • Create the empty Redmine Database structure
sudo RAILS_ENV=production rake db:migrate
  • Populate the database with default data (optional: Only skip this step if you know what you’re doing in terms of configuring workflows / etc in Redmine)
sudo RAILS_ENV=production redmine:load_default_data
  • When prompted, select the appropriate language.

  • Configure Apache
sudo nano /etc/apache2/sites-available/default
  • Delete all the existing data in the file and insert the following base config:

DocumentRoot /usr/local/share/redmine-2.1.4/public

AllowOverride all
Options -MultiViews

  • Restart Apache2
sudo service apache2 restart
  • Open Redmine: http:/// Default details: Username – admin Password – admin

Other steps you should take:

  • Configure Redmine to send emails
  • Enable the Ubuntu Firewall (UFW)
  • Create a backup script that backs up uploaded files and the MySQL database
  • Tweak the Apache2 configuration to be more secure
  • Install the Nagios monitoring client
  • Setup rsyslogd to log to a remote location

Depending on demand I may create some How To guides for the above.