How To Install Redmine on Ubuntu 12.10

Redmine is a project management software that you can install on your cloud server. It can be used to track bugs, collaborate on features, and track progress of any project.

Installation


We begin by spinning up a Ubuntu 12.10 x64 cloud server.

Next, we will need to install Apache, MySQL, mod_passenger, and Ruby.

export DEBIAN_FRONTEND=noninteractive
apt-get install -y apache2 mysql-server mysql-client libapache2-mod-passenger software-properties-common librmagick-ruby ruby-rmagick redmine redmine-mysql
gem install bundler mysql2

This will install Redmine in /usr/share/redmine so we will want to create a symbolic link to Apache’s default DocumentRoot (/var/www):

ln -s /usr/share/redmine/public /var/www

Now we need to configure Apache with mod_passenger and tell it to follow symlinks:

sed -i '/mod_passenger.c/aPassengerDefaultUser www-data' /etc/apache2/mods-available/passenger.conf
sed -i '//a\\tRailsBaseURI \/public\n\tPassengerResolveSymlinksInDocumentRoot on' /etc/apache2/sites-available/default

Your Apache configuration files should look like this:

Restart Apache for settings to take effect:

service apache2 restart

Now you can navigate to your cloud server’s IP address /public folder and login (http://198.199.88.201/public/login in our case):

Login: admin
Password: admin


Make sure you change your password by navigating to /public/my/password (http://198.199.88.201/public/my/password in our case).

And you are all done!

(Originated from https://www.digitalocean.com/community/articles/how-to-install-redmine-on-ubuntu-12-10)

HowTo Install Redmine on Ubuntu step by step

Prerequisite: check your ubuntu version against intended Redmine version

Before using or studying this guide you should check which Redmine version you are going for. Be aware that only latest stable releases will be fully compatible with current releases of plugins.
To check redmine versions versus your ubuntu version have a look at http://www.ubuntuupdates.org/pm/redmine

Generally you could also consider only installing ruby from ubuntu-repos and then heading for a release of redmine from redmine’s download page:http://www.redmine.org/projects/redmine/wiki/Download (this is the more common way of installing redmine on ubuntu). In this case this guide is not suited for you and you should check for an alternate guide. Google provides lots of resources for this alternate installation procedure.

If you are sure that you want to install from ubuntu-repositories, keep on reading:

Introduction

This tutorial walks you step-by-step through installing Redmine on a clean/fresh Ubuntu 12.04 installation. This is intended to be a complete cookbook method for getting Redmine installed and running. It makes no assumptions about other things being installed or configured. Since I have had some issues when using the graphical package managers, we will be doing this from the command line prompt to keep things as clear and clean as possible.

I recommend that you install any Ubuntu updates prior to beginning this process. There are almost always some waiting to be applied after Ubuntu is first set up.

Prerequisites: Apache, mod-passenger, and MySQL

There are several support packages that we will install first. The apache installation is pretty simple if you just follow the prompts and accept the defaults.

$ sudo apt-get install apache2 libapache2-mod-passenger

Installing mysql takes just a little more, so the details are spelled out.

$ sudo apt-get install mysql-server mysql-client

The installation process for mysql is going to prompt you for a password for the “root” access for the database server, then ask you to confirm the password in a follow-up screen. This sets the database adminstration password.

Package configuration                                                           

  ┌────────────────────┤ Configuring mysql-server-5.5 ├─────────────────────┐   
  │ While not mandatory, it is highly recommended that you set a password   │   
  │ for the MySQL administrative "root" user.                               │   
  │                                                                         │   
  │ If this field is left blank, the password will not be changed.          │   
  │                                                                         │   
  │ New password for the MySQL "root" user:                                 │   
  │                                                                         │   
  │ _______________________________________________________________________ │   
  │                                                                         │   
  │                                 <Ok>                                    │   
  │                                                                         │   
  └─────────────────────────────────────────────────────────────────────────┘

  ┌────┤ Configuring mysql-server-5.5 ├──────────┐
  │                                              │
  │ Repeat password for the MySQL "root" user.   │
  │                                              │
  │                                              │
  │ ____________________________________________ │
  │                                              │
  │                   <Ok>                       │
  │                                              │
  └──────────────────────────────────────────────┘

Installing and configuring the Ubuntu Redmine package

Now it is time to install redmine itself.

$ sudo apt-get install redmine redmine-mysql

You want to allow dbconfig-common to configure the database when prompted so select Yes from the prompt in the panel below.

Package configuration                                                           

 ┌──────────────────────────┤ Configuring redmine ├──────────────────────────┐  
 │                                                                           │  
 │ The redmine/instances/default package must have a database installed and  │  
 │ configured before it can be used.  This can be optionally handled with    │  
 │ dbconfig-common.                                                          │  
 │                                                                           │  
 │ If you are an advanced database administrator and know that you want to   │  
 │ perform this configuration manually, or if your database has already      │  
 │ been installed and configured, you should refuse this option.  Details    │  
 │ on what needs to be done should most likely be provided in                │  
 │ /usr/share/doc/redmine/instances/default.                                 │  
 │                                                                           │  
 │ Otherwise, you should probably choose this option.                        │  
 │                                                                           │  
 │ Configure database for redmine/instances/default with dbconfig-common?    │  
 │                                                                           │  
 │                    <Yes>                       <No>                       │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────┘

Then you want to provide the “root” password for the database, so that the installer can create the redmine database. This is the password set when you installed mysql.

Package configuration                                                           

 ┌──────────────────────────┤ Configuring redmine ├──────────────────────────┐  
 │ Please provide the password for hte administrative account with which     │  
 │ this package should create its MySQL database and user.                   │  
 │                                                                           │  
 │ Password of the database's administrative user:                           │  
 │                                                                           │  
 │ ******__________________________________________________________________  │  
 │                                                                           │  
 │                   <Ok>                       <Cancel>                     │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────┘

Tell the redmine installer we are using mysql for this installation by highlighting “mysql” from the list of database choices:

Package configuration                                                           

 ┌──────────────────────────┤ Configuring redmine ├──────────────────────────┐  
 │ The redmine/instances/default package can be configured to use one of     │  
 │ several database types. Below, you will be presented with the available   │  
 │ choices.                                                                  │  
 │                                                                           │  
 │ Database type to be used by redmine/instances/default:                    │  
 │                                                                           │  
 │                                  sqlite3                                  │  
 │                                  pgsql                                    │  
 │                                  mysql                                    │  
 │                                                                           │  
 │                                                                           │  
 │                    <Ok>                        <Cancel>                   │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────┘

Now you are asked to provide a password that will be used to protect the redmine database. Redmine itself will use this when it wants to access mysql.

Package configuration                                                           

 ┌──────────────────────────┤ Configuring redmine ├──────────────────────────┐  
 │ Please provide a password for redmine/instances/default to register with  │  
 │ the database server.  If left blank, a random password will be            │  
 │ generated.                                                                │  
 │                                                                           │  
 │ MySQL application password for redmine/instances/default:                 │  
 │                                                                           │  
 │ *******__________________________________________________________________ │  
 │                                                                           │  
 │                    <Ok>                        <Cancel>                   │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────┘

Now confirm the redmine password.

Package configuration                                                           

   ┌────┤ Configuring redmine ├─────┐                       
   │                                │                       
   │                                │                       
   │ Password confirmation:         │                       
   │                                │                       
   │ *******_______________________ │                       
   │                                │                       
   │     <Ok>         <Cancel>      │                       
   │                                │                       
   └────────────────────────────────┘

Configuring Apache

You need to modify two files for apache. The first is /etc/apache2/mods-available/passenger.conf which needs the text PassengerDefaultUser www-dataadded as seen here:

<IfModule mod_passenger.c>
  PassengerDefaultUser www-data
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
</IfModule>

Now create a symlink to connect Redmine into the web document space:

$ sudo ln -s /usr/share/redmine/public /var/www/redmine

And modify /etc/apache2/sites-available/default to insert the following with the other <Directory> sections so that apache knows to follow the symlink into Rails:

<Directory /var/www/redmine>
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
</Directory>

Now restart apache:

$ sudo service apache2 restart

You should now be able to access redmine from the local host

$ firefox http://127.0.0.1/redmine

In the upper right corner of the browser window you should see the “Sign in” link. Click that and enter “admin” at both the Login: and Password:prompts. Note: this is not the password you set during the installation process. Click the Login button.

I recommend that the next thing you do is to click on My account in the upper right corner and change that password. In the page that is displayed there should be a Change password link in the upper right of the white area of the page. Click to change the password.

Backing up Redmine

You should arrange a regular backup of the Redmine database and the files that users upload/attach. The database can be dumped to a text file with:

/usr/bin/mysqldump -u root -p<password> redmine_default | gzip > /path/to/backups/redmine_db_`date +%y_%m_%d`.gz

where <password> is the one you set when installing mysql.

The attachments are stashed in /var/lib/redmine/default/files and can be backed up with something like:

rsync -a /var/lib/redmine/default/files /path/to/backups/files

You can have these commands run automatically by creating a script called /etc/cron.daily/redmine that contains:

#!/bin/sh
/usr/bin/mysqldump -u root -p<password> redmine_default | gzip > /path/to/backups/redmine_db_`date +%y_%m_%d`.gz
rsync -a /var/lib/redmine/default/files /path/to/backups/files

Again, be sure to substitute the mysql root password for <password> in the mysqldump command line. The file should be protected so that only root has read permission because you are storing the root password for your mysql installation in this file. That the first line creates a new file every time the script is run. This can eventually create a large number of backups of your database files. You should have a script that purges old ones periodically.

Additional semi-optional packages

There are some services that Redmine can use that are not absolutely necessary, but are useful. These are email and software repository/revision control systems.

Email setup

At some point you will probably want Redmine to be able to send email. For this you will need to install and configure email. This can be achieved by installing the postfix package. I do not recommend the exim4 package, as there have been some incompatibilities in the way the “sendmail” command line is handled between Redmine and exim4. Unless everyone has an email account on the redmine server you will want to set up external email as a full internet host. Once email service is installed, you will have to restart apache for Redmine to know that it has access to email services.

$ sudo apt-get install postfix

Now that you can send email, you have to tell Redmine about it. You need to create/edit the file /etc/redmine/default/configuration.yml and add the following lines:

production:
  email_delivery:
    delivery_method: :sendmail

Then restart apache so that Redmine reloads the configuration file:

$ sudo service apache2 restart

Revision control repository setup

In order to have your software repository on the system Redmine will need the corresponding software installed.

$ sudo apt-get install git subversion cvs mercurial
$ sudo service apache2 restart

That covers it as far as I have gotten in my use of Redmine to date.

Redmine Scrum Plugins

Scrum and Kanban Plugins for Redmine

Redmine is a popular open source project management web application. It was written using the Ruby on Rails framework. This software is more oriented towards a traditional approach for project management with Gantt charts and calendar than Agile, Scrum or Kanban. However, Redmine architecture allows however creating plugins to add additional features. The development of a number of Agile and Lean plugins has therefore been started in these past years. However not all those plugins have been in continuous development until the current release of Redmine 1.2.1.

You will find below a list of Scrum and Kanban plugins that you could consider to use. You might also decide to fork some of the “abandoned” projects if you are willing to put them up to date. The number of these plugins is limited and trying to add Scrum/Kanban support to Redmine might not be the easier road for your Agile open source journey. For people that are looking for open source solutions, the Open Source Scrum Tools Directory is a good place to visit to have an idea of available open source Scrum tools.

Active Plugins

* Easy Agile

Easy Agile is a simple task board that allows you to define stories and track their statuses through iteration. The application is quite straightforward for the people familiar with the SCRUM and Agile methodology.

Web site: https://github.com/SphereConsultingInc/easy_agile

* Redmine Kanban

The Redmine Kanban plugin is used to manage issues according to the Kanban system of project management.

Web site: https://github.com/edavis10/redmine_kanban

* Redmine Backlogs

Redmine Backlogs is still a work in progress but can already do a number of useful things for your agile team:
* Sort stories in your product and iteration backlogs
* Track story points for each of your stories
* Display burndown charts to show progress
* Track tasks via your iteration’s taskboard
* Produce printable task board cards
* Track impediments within each iteration

Web site: http://www.redminebacklogs.net/

* Redmine-Scrumbler

Redmine-Scrumbler is a Redmine plugin that allows to use the Scrum/Agile process in projects. Scrumbler have interactive dashboard with the ability to configure for each sprint. Plugin adds Scrum Points field in every issue in project. Scrumbler as possible using the standard redmine structure of projects.

Web site: https://github.com/256MbTeam/Redmine-Scrumbler

Redmine Scrumbler plugin dashboard

Redmine Scrumbler plugin dashboard

Plugins valid for older Redmine version

* Scrum PM

Scrum PM is a plugin for Redmine for Scrum project management. Redmine Version class becomes a sprint and issue becomes task. Most actions support drag and drop and in the dashboard you can change status of your task simply by dragging it to another column.

* Support for UML diagram generators railroad (Rails) and umlgraph (JAVA).
* One click documentation generation (rdoc and javadoc)
* Continuous integration with CruiseControl
* Burndown charts
* Velocity planing

Web site: http://www.software-project.eu/EN/scrumpm
Web site: https://github.com/software-project/scrum-pm

* Version Burndown Charts

Version Burndown Charts Plugin create burndown chart graph for Scrum from ticket’s estimated hours and %Done in target version.

Web site: https://github.com/daipresents/redmine_version_burndown_charts

* Redmine Todos-Scrum Plugin

Development stopped in 2010. A nested, easy to use project based todos plugin for Redmine. Allows easy creation and management of infinitely nestable todo lists on a per project basis, that can be organized into sprints(or releases). Also provides global ‘My Todos’ for all projects. Todos can be allocated to uses, and tied to Redmine Issues.

Web site: https://github.com/dalyons/redmine-todos-scrum-plugin

* Scrumdashboard

Development stopped in 2009 “Scrumdashboard” is a plugin for Redmine. It enables Redmine to better support the Scrum process by giving the users access to a digital “dashboard”. This shows the status for the current sprint through a digital representation of a whiteboard with post-it notes detailing User Stories/Features/etc (from the product backlog) which is often used with projects using Scrum.

Scrumdashboard supports the following:
* Drag & Drop to change the status of an issue, following the workflow
* Change the types of statuses/trackers displayed on the dashboard
* Column sorting for statuses
* Choose which version to display on the dashboard
* Tooltips for each issue
* Display all the issues or only the issues assigned to the current user
* Configure colors for issues displayed

Web site: https://github.com/thus/redmine-scrumdashboard-plugin