• Get In Touch
October 12, 2016

How to Install and Configure OpenProject on CentOS 7

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

OpenProject is an open source web based project management system. It is a cross platform application written in Ruby on Rails and AngularJS. OpenProject comes with a lots of collaborative features like project planning, timelines reports, task management and many more. It provides full support for a project to location independent teams. OpenProject is used by many prominent companies as well as many smaller installations to manage their projects efficiently.

A few features of OpenProject are:;

  • Organise a project’s requirements, tasks, bugs, risks.
  • Assign responsibilities, keep track of due dates, see the change history and configure your individual workflows.
  • Easy graphical timelines to track project phases and milestones.
  • Digital backlogs to manage your teams and online task board support.
  • Create a project wiki to share project information.
  • Easily monitor your project budgets and time.
  • Comes with integrated document manager and discussion forums.

Requirements

To install OpenProject you will need a VPS, Cloud Server or Dedicated Server running CentOS 7. You can also choose from a wide range of SSD Cloud Servers from Hostpresto. Additionally your server should have a minimum of 512 MB RAM but it is recommended that you have 1GB RAM on your server. You will also need at least 4GB free space on your server. You must have root access to your server to install OpenProject. If you are logged in as non root user, you can either run sudo -i to switch to root user or you can sudo command before all the administrative commands.

Installing OpenProject

It is important to update the system and available repositories before installing any package. Run the following command to do so.

    yum -y update

There are few ways to install OpenProject, you can either choose to install OpenProject with packaged installation, which is easy and recommended. You can also install it manually, which will provide you with the most flexibility over the software. OpenProject comes in Docker image also, which you can directly deploy in your servers. In this tutorial we will be installing OpenProject with the help of precompiled packages.

The packaged installation includes all the collaborative features of OpenProject as well as all the available major plugins. Packager.io manages the offlicial packages of OpenProject. Using automatic installation will ease the process of installation and reduce configuration errors. It also comes with a setup wizard which will help you to set up the software.

Import the Pacakger.io key into your server using the following command.

    rpm --import https://rpm.packager.io/key

Now you will need to create a new repository file. You can use any text editor to create the file, in this tutorial we will be using nano editor. If you don’t have nano installed, you can run yum -y install nano command. Create a new repo file using the following command.

    nano /etc/yum.repos.d/openproject.repo

Copy and paste the following lines into the file.

    [openproject]
    name=Repository for opf/openproject-ce application.
    baseurl=https://rpm.packager.io/gh/opf/openproject-ce/centos7/stable/6
    enabled=1

Now save the file and exit the editor. As we have Packager.io repository added onto our server, we can now install OpenProject using the following command.

    yum -y install openproject

This will install the most recent version of OpenProject software into your system. Before using the software you will need to configure the installation using the following command.

    openproject configure

Once you run configuration wizard, you will see following interface.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/965102483.png” alt=”” />

In this interface you will be asked if you want the setup wizard to automatically create the MySQL database required, select install option to install and configure MySQL server locally. If you want to use PostgreSQL database to use with OpenProject then select skip. If you wish to use and existing database then select reuse option. You should select install option to avoid the hassles of manual database configuration.

In the next interface you will be asked about the apache2 installation, select install and setup wizard will automatically install and configure the virtual host configuration for you. If you wish do this configuration manually, select skip option.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/1772209348.png” alt=”” />

In the next interface you will be asked about your fully qualified domain name on which your project will be hosted. A FQDN is also required when you will be enabling SSL support for your application.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/390762503.png” alt=”” />

Now you will be asked about the server path prefix. If you wish to provide a path to your application, you can give it here. For example if your FQDN is mydomain.com, if you wish to host your application on mydomain.com/openproject, then you can provide /openproject slug in the text input. If you want to host your application in the root of your FQDN, then you can leave the text field empty and proceed further.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/1162355367.png” alt=”” />

Now It will ask you if you wish to enable SSL now, if you have purchased any SSL from any SSL provider, you can choose yes, if not proceed with no as we are going to use Certbot or Let’s Encrypt SSL to encrypt the application. If you have any self generated SSL or commercial SSL, and chose to proceed with yes, you will have to provide the path for SSL certificate, SSL private key without passphrase and SSL Certification Authority bundle.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/1843456133.png” alt=”” />

Next you will be asked if the installer should enable support for Subversion and Git repositories. If you choose yes, then you will have ability to create and host Subversion and Git repository into your application using Apache. It is recommended that you should enable the support for these plugins as in collaborative environment repository management is a necessity. If you have a dedicated Git of SVN repository, then you can also skip these options.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/966166071.png” alt=”” />

Next you will be asked about the application you wish to use to send emails. If you do not want server to send any emails, you can choose to skip the wizard. If you want to use Postfix/Sendmail to send the mails, you can choose sendmail options. If you have a third party application to manage and send the emails, you can simply choose the SMTP option as you will have to enter the SMTP host and port number, email address and password of the email account. Third party SMTP server is recommended option to send mails. Using a mail server configured with SPF and DKIM records will send the emails in inbox of recipient. But you can also use sendmail but it is not guaranteed that the mails will be delivered in inbox.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/1905673722.png” alt=”” />

Finally it will ask you if you want to deploy a memcached server. Memcached server is a powerful, high performance distributed memory object caching system. It is used to speed up dynamic web applications by alleviating database load. It is recommended to use memcached server as it will speed up your site by caching the database calls in memory.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/2115255409.png” alt=”” />

Now the setup wizard will write the changes into the database and will configure the OpenProject software into your server. The installer will also start the application server. You can now browse the application using your favorite web browser by going to the following address.

    http://server-IP-address

or

    http://your-domain-name.com

You will see the following interface on web browser.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/171989117.png” alt=”” />

The setup wizard creates a default administrative account with username admin. You can click into the administrative account by clicking Sign in button and logging using username admin and password admin. Once you are logged in you will be asked immediately to change your password. Provide a new and strong password and proceed further. Once you logged in you will see following screen.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/594689383.png” alt=”” />

Now you can use the OpenProject application to manage your projects.

Configuring OpenProject

OpenProject comes with a command line tool to manage the OpenProject installation. To see all the possible commands you can run the following command.

    openproject

You will see following output.

    [root@ip-172-31-14-26 ~]# openproject
    Usage:
      openproject run COMMAND [options]
      openproject scale TYPE=NUM
      openproject logs [--tail|-n NUMBER]
      openproject config:get VAR
      openproject config:set VAR=VALUE
      openproject configure
      openproject reconfigure

With openproject run command you can run rake tasks and known scripts like the rails or ruby console. For example the below command will show you the version of the ruby installed.

    openproject run ruby -v

You will see following output.

    [root@ip-172-31-14-26 ~]# openproject run ruby -v
    ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux]

With openproject logs you can see the logs of the application. Using --tail attribute with command you will be able to check the last ten log entries. You will see a output similar to shown below.

    [root@ip-172-31-14-26 ~]# openproject logs --tail
    ==> /var/log/openproject/cron-clear-old-sessions.log  /var/log/openproject/production.log  /usr/bin/certbot-auto

Now provide the appropriate permissions to the script to that it can execute. Run the following command for same.

     chmod a+x /usr/bin/certbot-auto

You can now run the certbot-auto script with certbot-auto command. Before generating the certificates you must need to make sure that your domain is pointing towards the server. Before issuing the certificates, Certbot checks if the given domain is pointing to the server. Run the following command to generate the SSL certificates for you domain.

    certbot-auto certonly --webroot --webroot-path /opt/openproject/public -d your-domain.com

The above command will generate the certificates only, webroot path is given as certbot will use this path for authentication purpose. Once you run the command, it will ask you for your email address, provide the email address and accept the licence agreement. It will automatically save the keys and certificates in /etc/letsencrypt/live/your-domain.com/ directory. You can also see the path where the certificates are stored in Important Notes provided after SSL generation. Important Notes will look similar to the notes shown below.

    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at
       /etc/letsencrypt/live/project.batchbits.com/fullchain.pem. Your
       cert will expire on 2017-01-09. To obtain a new or tweaked version
       of this certificate in the future, simply run certbot-auto again.
       To non-interactively renew *all* of your certificates, run
       "certbot-auto renew"
     - If you like Certbot, please consider supporting our work by:

       Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
       Donating to EFF:                    https://eff.org/donate-le

The certificate will be saved with a filename cert.pem and the private key will be saved with the name privkey.pem under the above directory. You will need to run the following command again to enable SSL for your application.

    openproject reconfigure

In this interface select the same options for all the configuration that you have selected before during the first installation, except for SSL. Select yes when prompted for SSL support. Enter the full path of your SSL certificate, if your domain is example.com, then the path to your SSL certificate will be /etc/letsencrypt/live/example.com/cert.pem.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/2051690113.png” alt=”” />

In the next interface you will be asked about the path to private key. Enter the full path to the private key, if your domain is example.com, the path will be /etc/letsencrypt/live/example.com/privkey.pem.

HP_NO_IMG/data/uploads/users/d478cb71-8070-4c45-b3bc-4879923e4c03/405433329.png” alt=”” />

Select the default values for all the other options. Now the setup wizard will save the configuration and restart the OpenProject server. You can now access your OpenProject server on the domain you have configured. You will be able to see a green padlock before the domain name on browser which tells that the connection to the server is secured.

Let’s Encrypt issued certificates are valid for 3 months only, it is very important to renew the the certificate before their expiry. Certbot can automatically renew the certificate when they are about to expire. Run the following command for same.

    cetbot-auto renew

Now the certbot tool will check for all the certificates which are about to expire and will automatically renew them. If no certificates are due for renew, than certbot will exit without renewing the certificates. You can also automate this task using cron jobs. Run the following command to open the crontab.

    crontab -e

This will open your crontab file in VI editor. Insert the following line into the file.

    0 1 * * * certbot-auto renew --quiet --post-hook "service apache2 restart"

Save the file and exit from editor using :wq command in command mode. The above cron job will run certbot renew everyday at 1 am. If the certificate will be due for renew, it will be automatically renewed.

Updating OpenProject

OpenProject is in active development thus the updates are very frequent. You can update the OpenProject installation using the following command.

    yum -y update && yum -y install openproject

After the update of the installation, you will have to run the following command.

    openproject configure

The above command will use your previous configuration and reconfigure the application for use.

Conclusion

In this tutorial we learnt to install OpenProject on CentOS 7 servers. You can now easily setup and configure OpenProject on your VPS or cloud server. We also leant to secure the installation using Let’s Encrypt free SSL.

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]