How to Install Redmine on CentOS 8

Install Redmine on CentOS 8

In this article, we will have explained the necessary steps to install and configure Redmine on CentOS 8. Before continuing with this tutorial, make sure you are logged in as a user with sudo privileges. All the commands in this tutorial should be run as a non-root user.

Redmine is a popular open source project management web application. It is cross-platform and cross-database and built on top of the Ruby on Rails framework. Redmine includes support for multiple projects, wikis, issue tracking system, forums, calendars, email notifications, and much more.

Install Redmine on CentOS 8

Step 1. The first command will update the package lists to ensure you get the latest version and dependencies.

sudo dnf update
sudo dnf install epel-release
sudo dnf config-manager --enable epel

Step 2. Install MariaDB.

Run the following command as root or user with sudo privileges to install MariaDB on CentOS 8:

sudo dnf install @mariadb

Once the installation is complete, start the MariaDB service and enable it to automatically start on boot using following command:

sudo systemctl enable --now mariadb
sudo systemctl status mariadb

When the installation is complete, run the following command to secure your installation:

mysql_secure_installation

Then, 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 'storng_redmine_passwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Step 3. Creating New System User.

Create a new user and group, with home directory /opt/redmine that will run the Redmine instance:

sudo useradd -m -U -r -d /opt/redmine redmine
sudo usermod -a -G redmine apache
sudo chmod 750 /opt/redmine

Step 4. Install Passenger, Apache and Ruby.

Install Ruby, Apache and Passenger using following commands:

sudo dnf install httpd mod_passenger passenger passenger-devel ruby

Start the Apache service and enable it to start on boot:

sudo systemctl enable httpd --now

Then, configuring Apache:

sudo nano /etc/httpd/conf.d/your-domain.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.your-domain.com
    DocumentRoot /opt/redmine/redmine-4.1.0/public

    <Directory /opt/redmine/redmine-4.1.0/public>
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>

    ErrorLog /var/log/httpd/your-domain.com-error.log
    CustomLog /var/log/httpd/your-domain.com-access.log combined
</VirtualHost>

Restart the Apache service by typing:

sudo systemctl restart httpd

Step 5. Install Redmine.

First, download the Redmine archive with the following curl command:

curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o redmine.tar.gz

Once the download is completed extract the archive:

tar -xvf redmine.tar.gz

Configure database settings:

cp /opt/redmine/redmine-4.1.0/config/database.yml.example /opt/redmine/redmine-4.1.0/config/database.yml

Open the file with your favorite text editor:

nano /opt/redmine/redmine-4.1.0/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "strong_redmine_passwd"
  encoding: utf8

Step 6. Install Ruby dependencies.

Now, we switch to the redmine-4.1.0 directory and install the Ruby dependencies:

cd ~/redmine-4.1.0
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite --path vendor/bundle

Next, we run the following command to generate keys and migrate the database:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Step 7. Accessing Redmine.

Finally your can start your browser and access your new Redmine installation at: http://your-domian.com.

The default login credentials for Redmine are:

  • Username: admin
  • Password: admin

Congratulation, you have learned how to install and configure Redmine on CentOS 8. If you have any question, please leave a comment below.