This article explains how to install Redmine project management tool on Ubuntu 24.04.
Redmine, a versatile open-source project management software, offers a flexible framework. It empowers teams with features like issue tracking, project planning, and time tracking.
Apache is a robust web server known for its reliability. Both Ubuntu and Apache offer strong security features. Ubuntu’s regular updates and Apache’s configurable security modules help safeguard your installation against vulnerabilities.
Installing Redmine on Ubuntu with Apache provides a robust project management tool to enhance team productivity and organization.
Install Apache
Redmine requires a web server. This post will install and use the Apache web server to run Redmine.
To do that, open the Ubuntu terminal and run the commands below to install the Apache web server.
sudo apt update
sudo apt install apache2
Once Apache is installed, the commands below can start, stop, and enable the Apache web server to start automatically when your server boots up.
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl enable apache2
You can test that the Apache web server is running by opening your web browser and browsing to the server’s local host or IP address.

When you see the Apache2 Default Page, it means the Apache HTTP server is successfully installed.
Additional help on installing Apache on Ubuntu is in the link below.
How to install Apache on Ubuntu
Install MariaDB
The next component required to run Redmine is a database server. This post will install and use the MariaDB database server.
To install and use the MariaDB database server, use the instructions below.
Open the Ubuntu terminal and run the commands below to install the MariaDB database server.
sudo apt update sudo apt install mariadb-server
Once the MariaDB database server is installed, use the commands below to stop, start, and enable the MariaDB server to start automatically when the server boots.
sudo systemctl stop mariadb sudo systemctl start mariadb sudo systemctl enable mariadb
Run the following commands to validate and test if the MariaDB database server is installed successfully.
sudo mariadb
Once you run the commands above, it will log you onto the MariaDB console and display a message similar to the one below.
Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 32 Server version: 10.11.2-MariaDB-1 Ubuntu 23.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]>
The message tells you that the server is installed successfully.
Additional help on installing MariaDB.
Create a Redmine database
Upon successfully installing the MariaDB database server, create a blank database on the server specifically for the Redmine application.
As part of the setup, we will create a redminedb database and a user account called redminedbuser.
Finally, we’ll grant the redminedbuser full access to the redminedb database.
All the database steps above can be done using the commands below:
But first, log on to the MariaDB database server:
sudo mariadb
Then run the commands below to complete the steps:
CREATE DATABASE redminedb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER redminedbuser@localhost IDENTIFIED BY 'type_your_password_here';
GRANT ALL ON redminedb.* TO redminedbuser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Ensure to replace ‘type_your_password_here ‘with your password.
Install Redmine
Now that you have installed Apache and MariaDB continue downloading, installing, and configuring Redmine on Ubuntu.
First, run the command below to install some package dependencies to support Redmine.
sudo apt install ruby ruby-dev build-essential libssl-dev libreadline-dev zlib1g-dev libcurl4-openssl-dev libmysqlclient-dev libpq-dev libaprutil1-dev libapr1-dev apache2-dev
Redmine is built on Ruby, so we must install the correct version.
This post will install and manage Ruby versions using RVM (Ruby Version Manager).
First, install the required dependencies for RVM:
sudo apt install gnupg2 curl
Then, install RVM by running the command below.
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
If the command above failed, run the command below to import the keys
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
Then, rerun the command to install RVM.
Install the latest stable version of Ruby.
rvm pkg install openssl
rvm get head
rvm install ruby 3.3
rvm use ruby 3.3 --default
Continue below to configure Redmine.
Configure Redmine
First, create a dedicated folder to install Redmine. We will install Redmine within the directory /var/lib/redmine for this tutorial.
sudo mkdir /var/lib/redmine
sudo chown -R www-data:www-data /var/lib/redmine
Go and download the Redmine source code using the wget command below. Visit the download page to get the latest version to install.
cd /tmp
wget https://www.redmine.org/releases/redmine-6.0.3.tar.gz
Next, extract the downloaded file and copy the content to Redmine’s directory.
tar -xvzf redmine-6.0.3.tar.gz
sudo -u www-data cp -r redmine-6.0.3/* /var/lib/redmine
After that, copy the default database configuration ‘config/database.yml.example‘ to ‘config/database.yml‘.
sudo -u www-data cp /var/lib/redmine/config/database.yml.example /var/lib/redmine/config/database.yml
Next, open the database.yml configuration file by running the command below.
sudo -u www-data nano /var/lib/redmine/config/database.yml
Then, in the ‘production‘ section, change the details of the MySQL database and user. Type in the database account details created above.
# Default setup is given for MySQL 5.7.7 or later.
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).
production:
adapter: mysql2
database: redminedb
host: localhost
username: redminedbuser
password: "Type_password_here"
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
variables:
# Recommended `transaction_isolation` for MySQL to avoid concurrency issues is
# `READ-COMMITTED`.
# In case of MySQL lower than 8, the variable name is `tx_isolation`.
# See https://www.redmine.org/projects/redmine/wiki/MySQL_configuration
tx_isolation: "READ-COMMITTED"
Save the file and exit the editor when you are finished.
Install bundler by running the command below.
sudo gem install bundler
Next, change to Redmine’s directory and run the bundler command to install Ruby dependencies for the Redmine application.
cd /var/lib/redmine
sudo bundle config set --local without 'development test'
sudo bundle install
Once Redmine dependencies are installed, run the following command to generate the Redmine secret token and migrate the database.
sudo -u www-data bin/rake generate_secret_token
sudo -u www-data bin/rake db:migrate RAILS_ENV="production"
In the following screenshot, you can see the Redmine secret token is generated and the process of Redmine database migration.
Lastly, load the default to your Redmine installation with the following command. When asked to choose the language, input en as for English.
sudo RAILS_ENV=production bundle exec rake redmine:load_default_data
Next, install Phusion Passenger, which runs Rails applications like Redmine on Apache.
sudo gem install passenger
Then, execute the following command to build and install the module for Apache.
sudo passenger-install-apache2-module --auto --languages ruby
Run the command below to verify that the module is added to Apache.
sudo passenger-install-apache2-module --snippet
Take notes of the output, as you will need it in the configuration file below.
Once you have completed all the above steps, continue configuring the Apache web server below to serve the Redmine content.
Run the commands below to create an Apache virtual host file for Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Then, copy and paste the content block below into the Apache server block.
<VirtualHost *:80>
ServerName redmine.example.com
ServerAdmin admin@example.com
DocumentRoot /var/lib/redmine/public
<Directory "/var/lib/redmine/public">
Require all granted
</Directory>
# Basic configuration for Passenger. Use the info gathered from running #the passenger command and update the lines below.
LoadModule passenger_module /var/lib/gems/3.2.0/gems/passenger-6.0.25/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /var/lib/gems/3.2.0/gems/passenger-6.0.25
PassengerDefaultRuby /usr/bin/ruby3.2
</IfModule>
# Allow access to Redmine's installation directory
<Directory /var/lib/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Save the file.
Next, run the commands below to enable the virtual host and restart the Apache server.
sudo a2ensite redmine.conf
sudo systemctl restart apache2
Setup Let’s Encrypt SSL/TLS for Redmine
You may want to install an SSL/TLS certificate to secure your Redmine site. Secure your Redmine installation with HTTPS from Let’s Encrypt.
Please read the post below for additional resources on installing and creating Let’s Encrypt SSL certificates for Apache.
How to set up Let’s Encrypt SSL certificate for Apache on Ubuntu Linux
Once you have restarted the Apache web server, open your browser and browse to the server hostname or IP address defined in the Apache server block.
http://redmine.example.com
The Redmine portal should appear.

Login with credential:
- Username: admin
- Password: admin

That should do it!
Conclusion
Installing Redmine on Ubuntu 24.04 with Apache and MariaDB provides a powerful project management tool tailored for team collaboration. Following the steps outlined in this guide, you can set up Redmine successfully and enhance your project management capabilities.
- Redmine offers a flexible and open-source solution for effective project management.
- The installation process involves configuring necessary components such as Apache and MariaDB.
- Setting up a dedicated database for Redmine ensures data integrity and security.
- Utilizing Passenger allows Redmine to run efficiently on the Apache server.
- Securing your Redmine installation with an SSL certificate enhances security measures.
- The default admin credentials allow you to access and explore Redmine’s features after installation.
With these steps complete, you can leverage Redmine for improved project oversight and team workflow.
Leave a Reply