How To

Install Jira on Ubuntu 24.04 / Rocky Linux 10

Jira is a project management and issue tracking platform built by Atlassian. It is widely used by software development teams for sprint planning, bug tracking, and agile project management. Jira supports Scrum and Kanban boards, custom workflows, and integrates with CI/CD tools, Git repositories, and collaboration platforms.

Original content from computingforgeeks.com - post 41367

This guide walks through installing Jira Software 11.3.2 (the latest release as of this writing) on Ubuntu 24.04 LTS and Rocky Linux 10. We cover Java 21 setup, PostgreSQL database configuration, Nginx reverse proxy with SSL, firewall rules, and systemd service management.

Prerequisites

Before starting, confirm you have the following in place:

  • A server running Ubuntu 24.04 LTS or Rocky Linux 10 with at least 4 GB RAM and 2 CPU cores (8 GB recommended for production)
  • Root or sudo access to the server
  • A domain name pointed to your server IP (for SSL setup)
  • Ports 80, 443, and 8080 (TCP) open on the firewall
  • Java 21 (JDK 21) – required by Jira 11.x
  • PostgreSQL 15, 16, or 17 as the database backend

Step 1: Install Java 21 (OpenJDK 21)

Jira 11.3 requires Java 21. Earlier Java versions (8, 11, 17) are no longer supported. Install OpenJDK 21 from the default repositories. For a more detailed guide, see our articles on installing Java 21 on Ubuntu and Java 21 on AlmaLinux / RHEL.

On Ubuntu 24.04:

sudo apt update
sudo apt install -y openjdk-21-jdk

On Rocky Linux 10:

sudo dnf install -y java-21-openjdk java-21-openjdk-devel

Confirm Java 21 is installed and active:

java -version

The output should show OpenJDK version 21:

openjdk version "21.0.6" 2025-01-21
OpenJDK Runtime Environment (build 21.0.6+7)
OpenJDK 64-Bit Server VM (build 21.0.6+7, mixed mode, sharing)

Set the JAVA_HOME environment variable so Jira can locate the JDK:

echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64' | sudo tee /etc/profile.d/java.sh
source /etc/profile.d/java.sh

On Rocky Linux, the path is slightly different:

echo 'export JAVA_HOME=/usr/lib/jvm/java-21-openjdk' | sudo tee /etc/profile.d/java.sh
source /etc/profile.d/java.sh

Step 2: Install PostgreSQL

PostgreSQL is the recommended database for Jira in production. Jira 11.3 supports PostgreSQL 15, 16, and 17. We install PostgreSQL 17 here. For a dedicated PostgreSQL setup guide, check our article on installing PostgreSQL on Ubuntu.

On Ubuntu 24.04:

sudo apt install -y postgresql postgresql-contrib

On Rocky Linux 10:

sudo dnf install -y postgresql-server postgresql-contrib
sudo postgresql-setup --initdb

Start and enable PostgreSQL so it runs on boot:

sudo systemctl enable --now postgresql

Verify the service is running:

sudo systemctl status postgresql

You should see active (running) in the output, confirming PostgreSQL started without issues.

Step 3: Create Jira Database and User

Create a dedicated PostgreSQL database and user for Jira. Switch to the postgres system user to access the PostgreSQL shell:

sudo -u postgres psql

Run the following SQL commands inside the PostgreSQL prompt to create the database and user:

CREATE USER jirauser WITH PASSWORD 'StrongPassword123';
CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0 OWNER jirauser;
GRANT ALL PRIVILEGES ON DATABASE jiradb TO jirauser;
\q

Replace StrongPassword123 with a strong, unique password. The LC_COLLATE and LC_CTYPE settings are required by Jira for proper Unicode handling.

On Rocky Linux 10, you also need to configure PostgreSQL to accept password authentication. Edit the pg_hba.conf file:

sudo vi /var/lib/pgsql/data/pg_hba.conf

Find the line with ident for local IPv4 connections and change it to md5:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

Restart PostgreSQL for the change to take effect:

sudo systemctl restart postgresql

Step 4: Download and Install Jira Software

Download the Jira Software 11.3.2 Linux installer from Atlassian’s servers. This is a binary installer that handles the installation process.

cd /tmp
wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-11.3.2-x64.bin

Make the installer executable and run it:

chmod +x atlassian-jira-software-11.3.2-x64.bin
sudo ./atlassian-jira-software-11.3.2-x64.bin

The installer will prompt you with several options. Here are the recommended choices:

  • Installation type – Choose 2 (Custom install) to control paths
  • Installation directory – Accept the default /opt/atlassian/jira or set your preferred path
  • Data directory – Accept the default /var/atlassian/application-data/jira
  • HTTP port – Accept the default 8080
  • RMI port – Accept the default 8005
  • Install as service – Choose y to install as a systemd service

The installer creates a dedicated jira system user and sets up the directory structure. Once complete, it asks whether to start Jira now – choose y.

Step 5: Start Jira Software

If Jira did not start during installation, start it manually:

sudo /opt/atlassian/jira/bin/start-jira.sh

Jira takes 2-3 minutes on first boot while it initializes the application. Check the startup log to monitor progress:

tail -f /var/atlassian/application-data/jira/log/atlassian-jira.log

Wait until you see a message containing Jira is ready or You can now access Jira. Verify the service is listening on port 8080:

ss -tlnp | grep 8080

You should see Jira’s Java process bound to port 8080:

LISTEN  0  100  *:8080  *:*  users:(("java",pid=12345,fd=245))

Step 6: Run the Jira Setup Wizard

Open your browser and navigate to http://your-server-ip:8080. The Jira setup wizard appears with two options – choose “I’ll set it up myself” to manually configure the database connection.

On the database configuration screen, select:

  • Database Type – PostgreSQL
  • Hostnamelocalhost
  • Port5432
  • Databasejiradb
  • Usernamejirauser
  • Password – the password you set in Step 3

Click Test Connection to verify the database credentials work, then proceed. The wizard will create the Jira schema in your PostgreSQL database – this takes a few minutes depending on server resources.

The remaining wizard steps ask for your application title, base URL, license key (get a trial from Atlassian), and admin account details. Complete these to finish the initial setup.

Step 7: Configure Nginx Reverse Proxy for Jira

Running Jira behind Nginx allows you to serve the application on standard HTTP/HTTPS ports and handle SSL termination. For more on Nginx setup, see our guide on installing and configuring Nginx on Ubuntu / Debian.

On Ubuntu 24.04:

sudo apt install -y nginx

On Rocky Linux 10:

sudo dnf install -y nginx

Create the Nginx virtual host configuration for Jira:

sudo vi /etc/nginx/conf.d/jira.conf

Add the following configuration, replacing jira.example.com with your actual domain:

server {
    listen 80;
    server_name jira.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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 $scheme;

        # Jira needs larger buffers for some responses
        proxy_buffer_size 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;

        client_max_body_size 100m;
    }
}

Test the Nginx configuration and reload:

sudo nginx -t && sudo systemctl reload nginx

You also need to tell Jira it is running behind a reverse proxy. Edit the Jira server configuration:

sudo vi /opt/atlassian/jira/conf/server.xml

Find the Connector element for port 8080 and add the proxy attributes:

<Connector port="8080"
           relaxedPathChars="[]|"
           relaxedQueryChars="[]|{}^\`"<>"
           maxThreads="150"
           minSpareThreads="25"
           connectionTimeout="20000"
           enableLookups="false"
           maxHttpHeaderSize="8192"
           protocol="HTTP/1.1"
           useBodyEncodingForURI="true"
           redirectPort="8443"
           acceptCount="100"
           disableUploadTimeout="true"
           bindOnInit="false"
           scheme="https"
           proxyName="jira.example.com"
           proxyPort="443" />

Replace jira.example.com with your domain. Restart Jira after making this change:

sudo /opt/atlassian/jira/bin/stop-jira.sh
sudo /opt/atlassian/jira/bin/start-jira.sh

Step 8: Configure SSL with Let’s Encrypt

Secure Jira with a free SSL certificate from Let’s Encrypt using Certbot. For a full SSL guide, see our article on generating Let’s Encrypt SSL certificates on Linux.

On Ubuntu 24.04:

sudo apt install -y certbot python3-certbot-nginx

On Rocky Linux 10:

sudo dnf install -y certbot python3-certbot-nginx

Request the SSL certificate. Certbot automatically modifies the Nginx configuration to enable HTTPS and redirect HTTP traffic:

sudo certbot --nginx -d jira.example.com

Follow the prompts – enter your email address and agree to the terms of service. Certbot handles the rest, including setting up automatic certificate renewal.

Verify the automatic renewal timer is active:

sudo systemctl status certbot.timer

You should see the timer loaded and active, which means certificates will renew automatically before expiry.

Step 9: Configure Firewall

Open the required ports in the firewall. Jira runs on port 8080 by default, and Nginx needs ports 80 and 443 for HTTP/HTTPS traffic.

On Ubuntu 24.04 (UFW):

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw reload

On Rocky Linux 10 (firewalld):

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Verify the firewall rules are applied:

sudo firewall-cmd --list-all

On Ubuntu, check with:

sudo ufw status

You should see ports 80, 443, and 8080 listed as allowed in the output.

Step 10: Configure Jira as a Systemd Service

The Jira installer normally creates a systemd service automatically. If your installation did not set this up, or if you need to create the unit file manually, here is the process.

Create the systemd service file:

sudo vi /etc/systemd/system/jira.service

Add the following content:

[Unit]
Description=Atlassian Jira Software
After=network.target postgresql.service

[Service]
Type=forking
User=jira
Group=jira
ExecStart=/opt/atlassian/jira/bin/start-jira.sh
ExecStop=/opt/atlassian/jira/bin/stop-jira.sh
TimeoutStartSec=300
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Reload systemd, enable the service, and start Jira:

sudo systemctl daemon-reload
sudo systemctl enable jira
sudo systemctl start jira

Confirm the service is running:

sudo systemctl status jira

The output should show active (running). Jira now starts automatically on server boot and can be managed with standard systemctl commands.

Conclusion

Jira Software 11.3.2 is now running on your server with PostgreSQL as the database backend, Nginx as a reverse proxy, and SSL encryption through Let’s Encrypt. Access your Jira instance at https://jira.example.com and complete the setup wizard to configure your first project.

For production environments, set up regular PostgreSQL database backups, configure Jira’s built-in email notifications, and monitor JVM heap usage through the Jira admin panel. Review the Jira supported platforms documentation to stay current on supported Java and database versions when upgrading.

Related Articles

Automation Install Salt Master & Minion on Ubuntu 20.04|18.04 Ubuntu Install Wireshark on Ubuntu 22.04|20.04|18.04 Desktop Databases How To Configure MongoDB Replication on Ubuntu Ubuntu Install Nginx With PHP-FPM on Ubuntu 22.04|20.04|18.04

1 thought on “Install Jira on Ubuntu 24.04 / Rocky Linux 10”

  1. What to do about the following error:?

    Error connecting to database

    The server time zone value ‘EDT’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

    Reply

Leave a Comment

Press ESC to close