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.
- 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
sudo apt-get update
sudo apt-get upgradeIf 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-clientYou 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.md5If 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 should be replaced by a password different from the root account.
Connect to the MySQL Server Daemon:
mysql -u root -pCreate the new user:
CREATE USER 'redmine'@'localhost' IDENTIFIED BY ''; Create the new database:
CREATE DATABASE IF NOT EXISTSGrant the user rights over the database:
GRANT ALL PRIVILEGES ON
redmine. * TO 'redmine'@'localhost';
- Create the Database configuration file
sudo nano config/database.ymlEnter the following text, replacing your password as per above
production: adapter: mysql2 database: redmine host: localhost username: redmine 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_dataWhen prompted, select the appropriate language.
- Configure Apache
sudo nano /etc/apache2/sites-available/defaultDelete all the existing data in the file and insert the following base config:
<Virtualhost :80> DocumentRoot /usr/local/share/redmine-2.1.4/public <Directory /usr/local/share/redmine-2.1.4/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost>
- Restart Apache2
sudo service apache2 restart
- Open Redmine: http://<server_IP>/ Default details: Username - admin Password - admin
- 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