Redmine is a flexible, open-source project management web application based on the Ruby on Rails framework. Some prominent features of Redmine are:
Multiple projects support, including sub-projects.
Multiple databases support.
Flexible role-based access control.
Multiple languages support.
Issue tracking systems.
Time tracking to check activity duration on projects.
Gantt chart and calendar to check project timelines.
This article describes how to install Redmine on Ubuntu 20.04 server.
Deploy a fully updated Vultr Ubuntu 20.04 Server.
Create a non-root user with sudo access.
SSH to your server as a non-root user with sudo access.
Update the system package manager. This updates all packages to the latest available versions.
$ sudo apt update
Install required packages.
$ sudo apt install apache2 mysql-server mysql-client libapache2-mod-passenger build-essential libmysqlclient-dev libmysqlclient-dev imagemagick libmagickwand-dev libmagickcore-dev -y
Log in to MySQL shell. At the password prompt, just press ENTER to continue.
$ sudo mysql -u root -p
Create a database called redminedb
.
CREATE DATABASE redminedb CHARACTER SET utf8mb4;
Create a database user called redmineuser
with a password StrongPassword
.
CREATE USER 'redmineuser'@'localhost' IDENTIFIED BY 'StrongPassword';
Grant the user full access to the database.
GRANT ALL ON redmine.* TO 'redmineuser'@'localhost' WITH GRANT OPTION;
Save the changes.
FLUSH PRIVILEGES;
Exit the shell.
exit;
Install Redmine. After running the installer, configure the Redmine database.
$ sudo apt install redmine redmine-mysql -y
Install Bundler. Bundler is a package that sets up an environment for Ruby projects by tracking and installing gems and versions needed.
$ sudo gem update
$ sudo gem install bundler
Edit the Passenger configuration file.
$ sudo nano /etc/apache2/mods-available/passenger.conf
Change the file as shown below. Then, save and close the file.
<IfModule mod_passenger.c>
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
Create the Redmine symbolic link to the Apache web root directory.
$ sudo ln -s /usr/share/redmine/public /var/www/html/redmine
Create a file named Gemfile.lock
.
$ sudo touch /usr/share/redmine/Gemfile.lock
Change the ownership of the Gemfile.lock
file to be accessible to Apache.
$ sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock
Change ownership of the Apache web directory.
$ sudo chown -R www-data:www-data /var/www/html/redmine
Change access permissions for the Apache web directory.
$ sudo chmod -R 755 /var/www/html/redmine
Create Apache virtual host configuration file named redmine.conf
.
$ sudo nano /etc/apache2/sites-available/redmine.conf
Add the following code into the file. Save and close the file:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/redmine
ServerName redmine.example.com
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable Apache rewrite mode.
$ sudo a2enmod rewrite
Enable Redmine Apache configuration file.
$ sudo a2ensite redmine.conf
Disable Apache default configuration file.
$ sudo a2dissite 000-default.conf
Restart Apache service.
$ sudo systemctl restart apache2
To access the Redmine Web Interface, go to your browser and visit http://Server_IP/login
. For example:
http://192.0.2.10/login
You have installed Redmine on your server. Login to the dashboard with default credentials, admin as the username, and admin as the password. You can now access the dashboard, change the default credentials, and register your account details to begin managing your projects.