Open Project Print

  • 0

How to Install OpenProject on Ubuntu 24.04 LTS Manually

This guide explains how to manually install OpenProject on a fresh Ubuntu 24.04 LTS server. The steps below perform the same actions that an Ansible installation playbook would automate.

This guide is written for beginners. Commands are provided step-by-step and should be executed in order.


Requirements

  • Ubuntu 24.04 LTS VPS or Dedicated Server
  • Minimum 4GB RAM recommended
  • Root access or a user with sudo privileges
  • Public IP address
  • Internet connection

Example server IP used in this guide:

102.202.47.171

Replace this IP address with your own server IP.


Step 1 - Connect to Your Ubuntu Server

Connect using SSH:

ssh username@YOUR\\\\\\\_SERVER\\\\\\\_IP

Example:

ssh ubuntu@102.202.47.171

Step 2 - Update Ubuntu Packages

Run:

sudo apt update

sudo apt upgrade -y

Step 3 - Install Required Packages

Install the required software packages:

sudo apt install -y \\\\\\\\

curl \\\\\\\\

gnupg \\\\\\\\

ca-certificates \\\\\\\\

wget \\\\\\\\

nginx \\\\\\\\

postgresql \\\\\\\\

postgresql-contrib

Step 4 - Start PostgreSQL Database Service

sudo systemctl enable postgresql

sudo systemctl start postgresql




Check PostgreSQL status:
sudo systemctl status postgresql




Press:
q




to exit.

Step 5 - Add OpenProject Repository

Download the OpenProject repository key:

curl -fsSL https://dl.packager.io/srv/opf/openproject/key \\\\\\\\

| sudo tee /etc/apt/trusted.gpg.d/openproject.asc




Add the repository:
echo "deb https://dl.packager.io/srv/opf/openproject/stable/16/ubuntu 24.04 main" \\\\\\\\

| sudo tee /etc/apt/sources.list.d/openproject.list




Update package list:
sudo apt update

Step 6 - Install OpenProject

sudo apt install openproject -y

Step 7 - Create OpenProject Database



Switch to PostgreSQL:
sudo -u postgres psql




Create database user:
CREATE USER openproject WITH PASSWORD 'ChangeThisPassword123!';




Create database:
CREATE DATABASE openproject OWNER openproject;




Exit PostgreSQL:
\\\\\\\\q

Step 8 - Configure OpenProject Environment



Open the configuration file:
sudo nano /etc/openproject/conf.d/openproject.env




Add the following:
OPENPROJECT\\\\\\\_HOST\\\\\\\_\\\\\\\_NAME=YOUR\\\\\\\_SERVER\\\\\\\_IP



OPENPROJECT\\\\\\\_DATABASE\\\\\\\_\\\\\\\_URL=postgresql://openproject:ChangeThisPassword123!@127.0.0.1:5432/openproject



OPENPROJECT\\\\\\\_DEFAULT\\\\\\\_\\\\\\\_LANGUAGE=en



OPENPROJECT\\\\\\\_WEB\\\\\\\_\\\\\\\_HOST=127.0.0.1



OPENPROJECT\\\\\\\_WEB\\\\\\\_\\\\\\\_PORT=6000



OPENPROJECT\\\\\\\_HTTPS=false



OPENPROJECT\\\\\\\_FORCE\\\\\\\_\\\\\\\_SSL=false



OPENPROJECT\\\\\\\_RAILS\\\\\\\_\\\\\\\_RELATIVE\\\\\\\_\\\\\\\_URL\\\\\\\_\\\\\\\_ROOT=




Example:
OPENPROJECT\\\\\\\_HOST\\\\\\\_\\\\\\\_NAME=102.202.47.171






Save the file:
CTRL + O

ENTER

CTRL + X

Step 9 - Restart OpenProject



Reload services:
sudo systemctl daemon-reload




Restart OpenProject:
sudo systemctl restart openproject




Restart web service:
sudo systemctl restart openproject-web-1




Check status:
sudo systemctl status openproject-web-1 --no-pager




You should see:
Active: active (running)

Step 10 - Configure Nginx Reverse Proxy



Create Nginx configuration:
sudo nano /etc/nginx/sites-available/openproject




Paste:
server {



listen 80;



server\\\\\\\_name YOUR\\\\\\\_SERVER\\\\\\\_IP;



client\\\\\\\_max\\\\\\\_body\\\\\\\_size 100M;





location / {



proxy\\\\\\\_pass http://127.0.0.1:6000;



proxy\\\\\\\_http\\\\\\\_version 1.1;



proxy\\\\\\\_set\\\\\\\_header Host $host;



proxy\\\\\\\_set\\\\\\\_header X-Real-IP $remote\\\\\\\_addr;



proxy\\\\\\\_set\\\\\\\_header X-Forwarded-For $proxy\\\\\\\_add\\\\\\\_x\\\\\\\_forwarded\\\\\\\_for;



proxy\\\\\\\_set\\\\\\\_header X-Forwarded-Proto http;



}



}




Save:
CTRL + O

ENTER

CTRL + X




Enable the site:
sudo ln -s /etc/nginx/sites-available/openproject \\\\\\\\

/etc/nginx/sites-enabled/openproject




Test Nginx:
sudo nginx -t




Restart Nginx:
sudo systemctl restart nginx

Step 11 - Create OpenProject Administrator Account



Open the OpenProject console:
sudo openproject run console




You will see:
open-project(prod):001>






Create administrator user:
user = User.new(

login: "admin",

firstname: "Admin",

lastname: "User",

mail: "admin@example.com",

admin: true,

status: 1,

language: "en",

first\\\\\\\_login: false,

force\\\\\\\_password\\\\\\\_change: false,

password: "AdminPassword123!",

password\\\\\\\_confirmation: "AdminPassword123!"

)






Save the user:
user.save!






Verify:
User.pluck(:id, :login, :firstname, :lastname, :admin)






Exit:
exit

Step 12 - Login to OpenProject



Open your browser:
http://YOUR\\\\\\\_SERVER\\\\\\\_IP




Example:
http://102.202.47.171






Login:
Username admin
Password AdminPassword123!

Important: Change the administrator password after your first login.


Troubleshooting

Check OpenProject Web Service

sudo systemctl status openproject-web-1

Check Logs

journalctl -u openproject-web-1 -n 50 --no-pager

Check Nginx

sudo nginx -t

Check Database Connection

sudo -u postgres psql openproject

Installation Completed

Your OpenProject installation is now complete.

You can now create projects, users, work packages, milestones, and manage your team's tasks.

 

Was this answer helpful?
Back