Install OpenProject Community Edition on CentOS 7 / Fedora 29

(: November 12, 2018)

Hi good people, in this article I’ll take you through the steps to Install OpenProject Community Edition on CentOS 7 / Fedora 29. OpenProject is a powerful project management tool for small to large teams that help you throughout the entire project management lifecycle.

Features of OpenProject

  • Project planning and scheduling
  • Product roadmap and release planning
  • Task management and team collaboration
  • Agile and Scrum
  • Time tracking, cost reporting, and budgeting
  • Bug tracking
  • Wikis
  • Forums
  • Meeting agendas and meeting minutes

Here are the steps to Install OpenProject Community Edition on CentOS 7 & Fedora 29.

Step 1: Update your system & Disable SELinux

Start the installation by updating system packages to the latest release.{text-align:left} img{margin:0 auto 0 0}
sudo yum -y update

SELinux can be annoying if you’re not an experienced Linux user. Set it to permissive mode or do a complete disable.

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Reboot your system:

sudo reboot

Step 2: Add the OpenProject Repository

Next is to add OpenProject Repository by executing below commands in your terminal.

sudo yum -y install wget
sudo wget -O /etc/yum.repos.d/openproject-ce.repo

Step 3: Install MySQL Database server

OpenProject requires a database server to function. It is recommended to use the latest MySQL version (>= 5.7) as it supports special characters such as emojis (emoticons) out of the box.

sudo yum localinstall
sudo yum -y install mysql-community-server
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service

Set MySQL root password:

Installation of MySQL on CentOS 7 / Fedora 29 generates a temporary password for you. You can get it by running:

$ grep 'A temporary password' /var/log/mysqld.log |tail -1

2018-11-11T14:13:15.567721Z 1 [Note] A temporary password is 
generated for [email protected]: Mylvo>AT&8:A

Change mysql root user password:


Once the database has been installed and service running, create a database and user for OpenProject.

Login to the mysql console as root user

$ mysql -uroot -p

Then create a database and user

CREATE USER 'openproject'@'localhost' IDENTIFIED BY 'MylvoAT&8:AB';
CREATE DATABASE openproject CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON openproject.* TO 'openproject'@'localhost';

Step 4:  Install the OpenProject Community Edition package

After adding the OpenProject repository and configuring a database for OpenProject, install OpenProject Community Edition package on your CentOS 7 / Fedora 29.

sudo yum -y install openproject

Step 5: Configure OpenProject on CentOS 7

The OpenProject installation wizard supports the automatic setup for MySQL databases. The OpenProject package is configured through ENV parameters that are passed to the openproject user.

Read current ENV parameters by running:

$ openproject run env

To write/read individual parameters, use openproject config:set PARAMETER=VALUE and openproject config:get PARAMETER.

Run the package configuration wizard with the following command:

openproject configure

1. On database setup wizard, select “Use an existing database” and click < OK>

2. Use MySQL IP

3. Use MySQL port 3306

4. Provide database username for OpenProject

5. Provide the password used by the openprojectuser to connect to the MySQL server:

6. Provide database name

7. Provide server FQDN

8. Set whether to enable SSL for MySQL database connection

9. Agree to install and configure Apache web server

10. Set Apache application domain name

11.Optionally set Server Path prefix to load OpenProject from, e.g /openproject

12. Set to enable SSL for Apache Web server URL

Configure other settings such as SVN/Git/SMTP support or skip them for later configuration and install Memcache when prompted.

On a successful installation, systemd symbolic links for services will be set for autostart.

Created symlink /etc/systemd/system/ -> /etc/systemd/system/openproject.service.
Created symlink /etc/systemd/system/openproject.service.wants/openproject-web.service -> /etc/systemd/system/openproject-web.service.
Scaling up...
Created symlink /etc/systemd/system/openproject-web.service.wants/openproject-web-1.service -> /etc/systemd/system/openproject-web-1.service.
--> done.
Created symlink /etc/systemd/system/openproject.service.wants/openproject-worker.service -> /etc/systemd/system/openproject-worker.service.
Scaling up...
Created symlink /etc/systemd/system/openproject-worker.service.wants/openproject-worker-1.service -> /etc/systemd/system/openproject-worker-1.service.
--> done.

Apache configuration file will be created automatically for you.

$ cat /etc/httpd/conf.d/openproject.conf
Include /etc/openproject/addons/apache2/includes/server/*.conf

<VirtualHost *:80>
  DocumentRoot /opt/openproject/public

  ProxyRequests off
  Include /etc/openproject/addons/apache2/includes/vhost/*.conf
  # Can't use Location block since it would overshadow all the other proxypass directives on CentOS
  ProxyPass /openproject/ retry=0
  ProxyPassReverse /openproject/

If you have an active firewall, allow port 80 & 443

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Step 6: Access OpenProject Dashboard

Visit the URL to Login to the web console as admin user:

Username: admin
Password: admin

You’ll be required to change the admin password.

Explore the OpenProject Dashboard to create and manager Projects, Authentication, users e.t.c.

Reconfiguring OpenProject

If you ever want to reconfigure OpenProject, run the command:

$ openproject reconfigure

The command above will bring up the installation wizard again. Please be aware that it will start the configuration/installation process from scratch.

If you’ve just updated your OpenProject version, you should run openproject configure which would automatically reuse your previous configuration, and only asks for your input if new configuration options are available.

Read more on OpenProject Administration Documentation. Also check:{text-align:left} img{margin:0 auto 0 0}

Related Posts