In this tutorial, we will show you how to install Redmine on CentOS. Redmine is a free and open source issue tracking and web-based project management application . Redmine is built on Ruby on Rails framework and it is cross-platform and cross-database. This guide should work on other Linux VPS systems as well but was tested and written for CentOS 7 VPS
.
1. Update the system and install necessary packages
yum update yum install curl zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison subversion sqlite-devel
2. Install MariaDB
To install the MariaDB package, run:
yum install mariadb-server
When the installation is complete, run the following command to secure your installation:
mysql_secure_installation
Next, we need to create a database for our Redmine installation:
mysql -uroot -p MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8; MariaDB [(none)]> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'redmine_passwd'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> q
3. Create new user
Create a new system user for Redmine.
sudo adduser --home /opt/redmine --shell /bin/bash --gecos 'Redmine application' redmine sudo install -d -m 755 -o redmine -g redmine /opt/redmine
Switch to the new redmine user:
sudo su - redmine
4. Install Ruby using RVM
curl -sSL https://rvm.io/mpapis.asc | gpg --import - curl -sSL https://get.rvm.io | bash -s stable --ruby
To start using RVM run the following commands:
source ~/.rvm/scripts/rvm rvm --default use ruby
To verify everything is done correctly, use the command ruby --version
.
The output should be similar to the following:
ruby --version ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
5. Install Redmine
The following commands will checkout the Redmine source code to the $HOME/redmine
directory and create the necessary directories.
cd && svn co http://svn.redmine.org/redmine/branches/3.4-stable redmine
mkdir -p ./redmine/tmp/pids ./redmine/public/plugin_assets
Configure database settings:
cp ./redmine/config/configuration.yml.example ./redmine/config/configuration.yml cp ./redmine/config/database.yml.example ./redmine/config/database.yml
Open the database.yml
file and update username/password
vim nsno
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "redmine_passwd" encoding: utf8
6. Install Gems
cd /opt/redmine/redmine echo "gem 'puma'" >> Gemfile.local echo "gem: --no-ri --no-rdoc" >> ~/.gemrc gem install bundler bundle install --without development test postgresql sqlite
7. Prepare the database
rake generate_secret_token RAILS_ENV=production rake db:migrate RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data
8. Puma configuration
Create a new configuration file as follows:
vim ./redmine/config/puma.rb
#!/usr/bin/env puma application_path = '/opt/redmine/redmine' directory application_path environment 'production' daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" state_path "#{application_path}/tmp/pids/puma.state" stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" bind "'tcp://0.0.0.0:9000"
9. Start Puma
Start the puma server with :
cd /opt/redmine/redmine/ && bundle exec puma --config config/puma.rb
The output should be similar to the following:
Puma starting in single mode... * Version 3.11.2 (ruby 2.4.1-p111), codename: Love Song * Min threads: 0, max threads: 16 * Environment: production * Daemonizing...
Finally your can start your browser and access your new Redmine installation at: http://IP_ADDRESS:9000
That’s it. You have successfully installed Redmine on your Ubuntu VPS. For more information about Redmine, please refer to the Redmine website.