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.
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.
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.
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.
Once you run configuration wizard, you will see following interface.
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.
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.
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.
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.
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.
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.
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.
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.
You will see the following interface on web browser.
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.
Now you can use the OpenProject application to manage your projects.
OpenProject comes with a command line tool to manage the OpenProject installation. To see all the possible commands you can run the following command.
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
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]
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.
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
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
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.
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.
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.
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.
The above command will use your previous configuration and reconfigure the application for use.
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.