How to Install OpenProject on Ubuntu 22.04

OpenProject is an open-source and web-based project management system. It provides a secure and safe way for teams to connect, structure their work, and achieve results. With OpenProject, you can organize your own tasks and assign tasks to a teammate in one place. Its Community edition covers a wide range of features and plugins and is free of charge. It offers a wide range of features, such as Project planning and scheduling, Wikis, Forums, Agile and Scrum, Bug tracking, and more.

This post will explain how to install OpenProject with Docker on Ubuntu 22.04.

Prerequisites

  • A server running Ubuntu 22.04.
  • A root password is configured on the server.

Getting Started

First, you will need to update and upgrade your system packages to the latest version. You can do it with the following command:

apt update -y
apt upgrade -y

Once all the packages are updated, you can proceed to the next step.

Install Docker

Next, you will need to install the Docker engine on your server. You can install it by running the following command:

apt install docker.io -y

Once Docker is installed, you can verify the Docker version using the following command:

docker --version

You should get the Docker version in the following output:

Docker version 20.10.12, build 20.10.12-0ubuntu4

You can also check the Docker status with the following command:

systemctl status docker

You will get the following output:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-12 03:55:27 UTC; 27min ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 2188 (dockerd)
      Tasks: 18
     Memory: 175.3M
        CPU: 2min 52.389s
     CGroup: /system.slice/docker.service
             ??2188 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.260137217Z" level=info msg="Container failed to exit within 10s of signal>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.288143240Z" level=info msg="ignoring event" container=c69a4c77c21fcc30bf5>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.313368392Z" level=info msg="ignoring event" container=1e168552ee6decb4d38>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.346672185Z" level=info msg="ignoring event" container=4f042da15c0abe50ac0>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.128611054Z" level=info msg="ignoring event" container=d07c7ddcf4c5c8e1df3>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.471773239Z" level=info msg="ignoring event" container=f0095298f0394b4e97c>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.860303969Z" level=info msg="ignoring event" container=7c591187d6dea45ad9c>
Sep 12 04:10:05 ubuntu2204 dockerd[2188]: time="2022-09-12T04:10:05.733958315Z" level=info msg="ignoring event" container=a9126dced469461963a>
Sep 12 04:17:00 ubuntu2204 dockerd[2188]: time="2022-09-12T04:17:00.365019409Z" level=info msg="ignoring event" container=317a71b1e5e2810e618>
Sep 12 04:19:40 ubuntu2204 dockerd[2188]: time="2022-09-12T04:19:40.133136639Z" level=info msg="ignoring event" container=e5fa71f4c2a7d8f3dc4>

Download and Launch OpenProject Container

The simple and easiest way to install OpenProject is to launch it with a Docker container. You can download and run it by running the following command:

docker run -dit -p 8080:80 -e OPENPROJECT_SECRET_KEY_BASE=secret -e OPENPROJECT_HOST__NAME=127.0.0.1:8080 -e OPENPROJECT_HTTPS=false openproject/community:12

This will download the OpenProject community Docker image and start it as shown below:

Unable to find image 'openproject/community:12' locally
12: Pulling from openproject/community
76dff75df4d9: Pull complete 
3e8c90a1c4bb: Pull complete 
b3662c105080: Pull complete 
ad5dcb7dd592: Pull complete 
fa57cc7ce341: Pull complete 
9b3a1f58f992: Pull complete 
3ba44da7772d: Pull complete 
bb99cfe1d593: Pull complete 
d9be85920c31: Pull complete 
887163836f1b: Pull complete 
8d9b5634408e: Pull complete 
40cd37c7c054: Pull complete 
8f3f7ae1eab6: Pull complete 
0bad647edadc: Pull complete 
7604d9da2c69: Pull complete 
5064bcba96f5: Pull complete 
a31fefd0310b: Pull complete 
57856090623a: Pull complete 
c5788f49d4cb: Pull complete 
Digest: sha256:5b3850c813b44e0e83b31ee3ee7e65a22a05009f5101132caee51b4c799adaa9
Status: Downloaded newer image for openproject/community:12
cecc63dbe7c8263cdf9813a5dee5d5cfda3e2f8b8cdb78b3d038679507fa7769

You can verify the downloaded Docker image with the following command:

docker images

You will get the following output:

REPOSITORY              TAG       IMAGE ID       CREATED       SIZE
openproject/community   12        88f613862e98   11 days ago   1.93GB

To check the OpenProject container status, run the following command:

docker ps

You should see that the OpenProject container is started and listens on port 8080:

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                                             NAMES
cecc63dbe7c8   openproject/community:12   "./docker/prod/entry…"   12 seconds ago   Up 11 seconds   5432/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp   silly_fermi

You can also verify the OpenProject container logs using the following command:

docker logs cecc63dbe7c8

You will get the following output:

=> Booting Puma
=> Rails 7.0.3.1 application starting in production 
=> Run `bin/rails server --help` for more startup options
I, [2022-09-12T04:25:12.466164 #138]  INFO -- : Using schema cache file /app/db/schema_cache.yml
[138] Puma starting in cluster mode...
[138] * Puma version: 5.6.4 (ruby 3.1.2-p20) ("Birdie's Version")
[138] *  Min threads: 4
[138] *  Max threads: 16
[138] *  Environment: production
[138] *   Master PID: 138
[138] *      Workers: 2
[138] *     Restarts: (?) hot (?) phased
[138] * Preloading application
[138] * Listening on http://0.0.0.0:8080
[138] Use Ctrl-C to stop
[138] - Worker 1 (PID: 337) booted in 0.01s, phase: 0
[138] - Worker 0 (PID: 336) booted in 0.02s, phase: 0

Configure Apache as a Reverse Proxy for OpenProject

As you can see, the OpenProject listens on port 8080. So it is recommended to configure Apache as a reverse proxy to access the OpenProject via port 80.

First, install the Apache web server package using the following command:

apt install apache2 -y

Once the Apache is installed, enable the required modules with the following command:

a2enmod proxy_http headers rewrite

Next, create an Apache virtual host configuration file with the following command:

nano /etc/apache2/sites-available/openproject.conf

Add the following configurations:

<VirtualHost *:80>
ServerName openproject.linuxbuz.com

RewriteEngine on
RewriteRule "^$" "/" [R,L]

ProxyRequests off

<Location "/">
ProxyPreserveHost On
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>

</VirtualHost>

Save and close the file, then activate the OpenProject virtual host with the following command:

a2ensite openproject.conf

Finally, restart the Apache service to apply the changes:

systemctl reload apache2

You can also check the Apache status with the following command:

systemctl status apache2

You will get the following output:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-12 04:26:23 UTC; 1min 30s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 14508 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 14058 (apache2)
      Tasks: 55 (limit: 4579)
     Memory: 5.4M
        CPU: 98ms
     CGroup: /system.slice/apache2.service
             ??14058 /usr/sbin/apache2 -k start
             ??14512 /usr/sbin/apache2 -k start
             ??14513 /usr/sbin/apache2 -k start

Sep 12 04:26:23 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

Secure OpenProject with Let's Encrypt SSL

It is also recommended to enable SSL on the OpenProject website. First, install the Certbot client package with the following command:

apt install python3-certbot-apache -y

Next, run the following command to download and install the Let's Encrypt SSL for your website domain.

certbot --apache -d openproject.linuxbuz.com

Answer all questions as shown below to install the Let's Encrypt SSL:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected]


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017-w-v1.3-notice.pdf.
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: (Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for openproject.linuxbuz.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/openproject.linuxbuz.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/openproject.linuxbuz.com/privkey.pem
This certificate expires on 2022-12-11.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for openproject.linuxbuz.com to /etc/apache2/sites-available/openproject-le-ssl.conf
Added an HTTP->HTTPS rewrite in addition to other RewriteRules; you may wish to check for overall consistency.
Congratulations! You have successfully enabled HTTPS on https://openproject.linuxbuz.com
We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Access OpenProject Web UI

Now, open your web browser and access the OpenProject using the URL https://openproject.linuxbuz.com. You should see the OpenProject welcome page:

Click on the Sign in button. You should see the OpenProject login page:

Provide the default username and password as admin / admin, then click on the Sign In button. You should see the password change screen:

Change your default password and click on the Save button. You should see the OpenProject dashboard on the following screen:

Conclusion

Congratulations! you have successfully installed OpenProject with Docker on Ubuntu 22.04. You can now implement OpenProject on your organization and start managing and tracking your project from the central location.

Share this page:

0 Comment(s)