Setting Up Redmine: Installation and Configuration

Rapidcode Technologies
9 min readSep 29, 2023

--

Introduction: In the world of project management, efficiency, collaboration, and organization are paramount. Whether you’re a part of a small startup or a large enterprise, staying on top of tasks, deadlines, and project progress can be a challenge. This is where Redmine comes into play.

Redmine

What is Redmine?

Redmine is an open-source project management and issue-tracking tool written in Ruby. It’s not just your ordinary project management tool; it’s a versatile platform that supports various database servers. While Redmine can be used for a wide range of project management tasks, it’s particularly renowned for its issue-tracking capabilities.

Redmine features:

  • It is an open-source tool.
  • Keeps track of multiple projects.
  • Allows the user to have different roles and permissions.
  • Users can track the time that has been spent on the issue.
  • Users can see visual reporting using graphs and charts.

Redmine Vs JIRA

Redmine and JIRA are both popular project management and issue-tracking tools, but they have some key differences in terms of features, pricing, and target user base. Here’s a comparison of Redmine vs. JIRA:

Redmine Installation

Operating System: Redmine supports UNIX, Linux, Windows, and MacOS systems.

How to Install Redmine on Ubuntu?

1. Pre-requisite

A. Go to EC2 Service, Launch Instance with t3.small, ubuntu 20 or 22, Open port 22,80,3306

2.Connect EC2 by using ssh or in AWS Console and update machine

sudo apt-get update && sudo apt-get upgrade -y
update and upgrade Ubuntu

3. Install required packages for Redmine

sudo apt install -y apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev
required packages for Redmine

4. Install MySQL server

sudo apt install -y mysql-server
MySQL-server

5. Now we Download & Extract Redmine

# download and extract
cd
wget https://redmine.org/releases/redmine-5.0.1.tar.gz
cd /opt
sudo tar -xvzf ~/redmine-5.0.1.tar.gz

# symlink to remove version reference
sudo ln -s redmine-5.0.1 redmine

6. Configure Database

sudo mysql

mysql>
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

7. Edit database configuration file

# copy the example file
cd /opt/redmine
cp config/database.yml.example config/database.yml

# edit config file with your editor of choice (mine is vi)
vi config/database.yml

8. Replace or update the production: block with your configuration. One example based on the MySQL config above.

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Password"
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4

9. Install Ruby dependencies

sudo su 

# install bundler
sudo gem install bundler

# install redmine bundle (give sudo password when prompted)
bundle install

10. Run Redmine scripts

# generate secret token
bundle exec rake generate_secret_token

# migrate database
RAILS_ENV=production bundle exec rake db:migrate

# load default data
RAILS_ENV=production bundle exec rake redmine:load_default_data

11. Configure Apache

Create an apache configuration file in /etc/apache2/sites-available (e.g. redmine.conf) with the following content:

<VirtualHost *:80>
ServerName (EC2 Public IP)
RailsEnv production
DocumentRoot /opt/redmine/public

<Directory "/opt/redmine/public">
Allow from all
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
</VirtualHost>

In the file you have to replace (EC2 Public IP).

Go to Sites-Available dir and create redmine.conf file

12. If this is a new standalone installation, it will have created a default apache site.

Disable it and enable the Redmine config created above.

# disable default apache sites
sudo a2dissite 000-default.conf

# enable redmine
sudo a2ensite redmine.conf

# reload apache
sudo systemctl reload apache2

13. Now Test Redmine with hit your public IP in your browser.

Redmine

14. Login with admin/admin

15. Configure your admin data

Configure your admin data

16. For Email Configuration Office365.com

17. Go to /opt/redmine/config/configuration.yaml

# = Redmine configuration file
#
# Each environment has it's own configuration options. If you are only
# running in production, only the production block needs to be configured.
# Environment specific configuration options override the default ones.
#
# Note that this file needs to be a valid YAML file.
# DO NOT USE TABS! Use 2 spaces instead of tabs for identation.

# default configuration options for all environments
default:
# Outgoing emails configuration
# See the examples below and the Rails guide for more configuration options:
# http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.office365.com"
port: 587
domain: ""
authentication: :login
user_name: ""
password: ""


# ==== Simple SMTP server at localhost
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
#
# address:
# port:
# domain: example.net
# authentication: :login
# user_name:
# password:

# delivery_method: :smtp
# smtp_settings:
# address: "localhost"
# port: 25
#
# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
#
# address:
# port:
# domain: example.net
# authentication: :login
# user_name:
# password:

# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :login
# domain: 'foo.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at example.com using PLAIN authentication
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
#
# address:
# port:
# domain: example.net
# authentication: :login
# user_name:
# password:

# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :plain
# domain: 'example.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at using TLS (GMail)
# This might require some additional configuration. See the guides at:
# http://www.redmine.org/projects/redmine/wiki/EmailConfiguration
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
#
# address:
# port:
# domain: example.net
# authentication: :login
# user_name:
# password:

# delivery_method: :smtp
# smtp_settings:
# enable_starttls_auto: true
# address: "smtp.gmail.com"
# port: 587
# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
# authentication: :plain
# user_name: "your_email@gmail.com"
# password: "your_password"
#
# ==== Sendmail command
#
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
#
# address:
# port:
# domain: example.net
# authentication: :login
# user_name:
# password:

# delivery_method: :sendmail

# Absolute path to the directory where attachments are stored.
# The default is the 'files' directory in your Redmine instance.
# Your Redmine instance needs to have write permission on this
# directory.
# Examples:
# attachments_storage_path: /var/redmine/files
attachments_storage_path:

# Configuration of the autologin cookie.
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:

# Configuration of SCM executable command.
#
# Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
# On Windows + CRuby, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
#
# On Windows + JRuby 1.6.2, path which contains spaces does not work.
# For example, "C:\Program Files\TortoiseHg\hg.exe".
# If you want to this feature, you need to install to the path which does not contains spaces.
# For example, "C:\TortoiseHg\hg.exe".
#
# Examples:
# scm_subversion_command: svn # (default: svn)
# scm_mercurial_command: C:\Program Files\TortoiseHg\hg.exe # (default: hg)
# scm_git_command: /usr/local/bin/git # (default: git)
# scm_cvs_command: cvs # (default: cvs)
# scm_bazaar_command: bzr.exe # (default: bzr)
# scm_darcs_command: darcs-1.0.9-i386-linux # (default: darcs)
#
scm_subversion_command:
scm_mercurial_command:
scm_git_command:
scm_cvs_command:
scm_bazaar_command:
scm_darcs_command:

# Absolute path to the SCM commands errors (stderr) log file.
# The default is to log in the 'log' directory of your Redmine instance.
# Example:
# scm_stderr_log_file: /var/log/redmine_scm_stderr.log
scm_stderr_log_file:

# Key used to encrypt sensitive data in the database (SCM and LDAP passwords).
# If you don't want to enable data encryption, just leave it blank.
# WARNING: losing/changing this key will make encrypted data unreadable.
#
# If you want to encrypt existing passwords in your database:
# * set the cipher key here in your configuration file
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
#
# If you have encrypted data and want to change this key, you have to:
# * decrypt data using 'rake db:decrypt RAILS_ENV=production' first
# * change the cipher key here in your configuration file
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
database_cipher_key:

# Set this to false to disable plugins' assets mirroring on startup.
# You can use `rake redmine:plugins:assets` to manually mirror assets
# to public/plugin_assets when you install/upgrade a Redmine plugin.
#
#mirror_plugins_assets_on_startup: false

# Your secret key for verifying cookie session data integrity. If you
# change this key, all old sessions will become invalid! Make sure the
# secret is at least 30 characters and all random, no regular words or
# you'll be exposed to dictionary attacks.
#
# If you have a load-balancing Redmine cluster, you have to use the
# same secret token on each machine.
#secret_token: 'change it to a long random string'

# Absolute path (e.g. /usr/bin/convert, c:/im/convert.exe) to
# the ImageMagick's `convert` binary. Used to generate attachment thumbnails.
imagemagick_convert_command: '/opt/bitnami/common/bin/convert'

# Configuration of RMagcik font.
#
# Redmine uses RMagcik in order to export gantt png.
# You don't need this setting if you don't install RMagcik.
#
# In CJK (Chinese, Japanese and Korean),
# in order to show CJK characters correctly,
# you need to set this configuration.
#
# Because there is no standard font across platforms in CJK,
# you need to set a font installed in your server.
#
# This setting is not necessary in non CJK.
#
# Examples for Japanese:
# Windows:
# rmagick_font_path: C:\windows\fonts\msgothic.ttc
# Linux:
# rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
#
rmagick_font_path:

# Maximum number of simultaneous AJAX uploads
#max_concurrent_ajax_uploads: 2

# Configure OpenIdAuthentication.store
#
# allowed values: :memory, :file, :memcache
#openid_authentication_store: :memory

# specific configuration options for production environment
# that overrides the default ones
production:

# specific configuration options for development environment
# that overrides the default ones
development:
# = Redmine configuration file

18. After configuring the email settings, it’s essential to restart the Apache web server if your Redmine instance is running under Apache. Then, navigate to the ‘Administration’ menu, select ‘Settings,’ and choose ‘Email notifications.’ In the ‘Email Notification’ section, enter the desired email address in the ‘Sender email address’ field. Click ‘Save,’ and finally, click ‘Send test email’ to confirm that you receive the email notification.

Conclusion:

In conclusion, Redmine is a versatile and open-source project management and issue-tracking tool written in Ruby. It helps organizations of all sizes efficiently manage tasks, deadlines, and project progress. Redmine’s features include support for multiple projects, role-based permissions, time tracking, and visual reporting.

When comparing Redmine to JIRA, differences arise in terms of features, pricing, and the target user base.

To set up Redmine, the installation process involves configuring the server environment, installing required packages, setting up a database, configuring the database connection, installing Ruby dependencies, and configuring Apache for web access. Once set up, you can access Redmine through your web browser, configure administrative settings, and use it to manage your projects and issues.

For email configuration with Office365.com, you can enter the necessary email settings in the Redmine administration panel to enable email notifications and ensure effective communication within your projects.

--

--

Rapidcode Technologies

Architecting the future of innovation and design with cloud-native skills. 🌟 Let's transform your business! 🌟 #Innovation #Perseverance