Install Jira on Ubuntu 18.04 with Nginx and Let’sEncrypt SSL on Google Compute Engine. Jira is a software designed to help teams to plan, track, managing software developments easily.
In this guide we are going to learn how to install Jira and configure it with Nginx reverse proxy and secure it with Let’sEncrypt SSL.
This setup is tested on Ubuntu 18.04 on Google Cloud Platform. These steps will work on other Linux distros and any VPS or Dedicated or AWS or Azure or any cloud hosting.
Prerequisites
If you plan to use Google Cloud for example you can follow this or you just need SSH access to your server with sudo
privileges.
- A running Compute Engine, see the Setting up Compute Engine Instance with Ubuntu 18.04
- Initial Ubuntu Server Set up..
- Setup Cloud DNS, see the Setting up Google Cloud DNS for your domain.
I assume you have configured your subdomain as here: jira.domain.com
Step 1: Download Jira Core
You can download the latest version of Jira from the official Atlassian website. The version we are going to install is JIRA Core 8.4.2.
SSH to your server or instance and start downloading Jira.
wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-core-8.4.2-x64.bin
Once the file is downloaded, make the file executable.
sudo chmod a+x atlassian-jira-core-8.4.2-x64.bin
Now you can start the installation.
Step 2: Install Jira
Run the installation file.
sudo ./atlassian-jira-core-8.4.2-x64.bin
Now you will get…
Output
We couldn't find fontconfig, which is required to use OpenJDK. Press [y, Enter] to install it.
Enter y
followed by Enter
and start the installation.
When you are prompted to choose the Installation type, you can choose Custom Install by typing 2
and Enter
Install JIRA as Service? Type y
You can configure other steps with the default.
Finally you will get the overview of your installation.
Details on where JIRA Core will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/jira
Home Directory: /var/atlassian/application-data/jira
HTTP Port: 8080
RMI Port: 8005
Install as service: Yes
Install [i, Enter], Exit [e]
Now enter i
to start the installation.
Once the installation is complete you can start Jira when prompted.
You will receive an output similar to the one below. This indicated Jira is installed successfully and running on port 8080
.
Output
Installation of JIRA Core 8.4.2 is complete
Your installation of JIRA Core 8.4.2 is now ready and can be accessed via
your browser.
JIRA Core 8.4.2 can be accessed at http://localhost:8080
Finishing installation …
Step 3: Configure Tomcat for Nginx
Now you can configure Tomcat setting for Nginx reverse proxy.
Stop Jira.
sudo service jira stop
Edit your server.xml
and replace the connector and the context.
sudo nano /opt/atlassian/jira/conf/server.xml
Replace
<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
with (add a /
symbol in the path)
<Context path="/" docBase="${catalina.home}/atlassian-jira" reloadable="false" useHttpOnly="true">
Scroll up to find the default connector and add the proxyName
, proxyPort
, scheme
and secure
. So the connector looks like the one below.
<Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="Special characters" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName="jira.domain.com" proxyPort="443" scheme="https" secure="true"/>
Hit CTRL + X
followed by Y
and ENTER
to save and exit the file.
Step 4: Restart Jira
Once the setup is done, you can start the Jira.
sudo service jira start
If you get any error while restarting, the catalina.pid
file hasn’t been deleted while stopping. So you need to delete the file manually and start Jira.
sudo su
sudo rm -rf /opt/atlassian/jira/work/catalina.pid
exit
sudo service jira start
Once the restart is successful you can install and configure Nginx.
Step 5: Install Nginx
sudo apt install nginx
Remove default Nginx configuration.
sudo rm -rf /etc/nginx/sites-available/default
sudo rm -rf /etc/nginx/sites-enabled/default
Step 6: Configure Nginx reverse Proxy
Create a new configuration file for Jira.
sudo nano /etc/nginx/sites-available/jira.conf
Add the following configurations.
server {
listen [::]:80;
listen 80;
server_name jira.domain.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
client_max_body_size 10M;
}
}
Hit Ctrl+X
followed by Y
and Enter
to save the file and exit.
To enable this newly created website configuration, symlink the file that you just created into sites-enabled
sudo ln -s /etc/nginx/sites-available/jira.conf /etc/nginx/sites-enabled/jira.conf
Check your configuration and restart Nginx for the changes to take effect.
sudo nginx -t
sudo service nginx restart
Step 7: Install Let’s Encrypt SSL for Jira
HTTPS
HTTPS is a protocol for secure communication between a server (instance) and a client (web browser). Due to the introduction of Let’s Encrypt, which provides free SSL certificates, HTTPS are adopted by everyone and also provides trust to your audiences.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx
Now we have installed Certbot by Let’s Encrypt for Ubuntu 18.04, run this command to receive your certificates.
sudo certbot --nginx certonly
Enter your email
and agree to the terms and conditions, then you will receive the list of domains you need to generate SSL certificate.
To select all domains simply hit Enter
The Certbot client will automatically generate the new certificate for your domain. Now we need to update the Nginx config.
Redirect HTTP Traffic to HTTPS
Open your site’s Nginx configuration file add replace everything with the following. Replacing the file path with the one you received when obtaining the SSL certificate. The ssl_certificate directive
should point to your fullchain.pem file, and the ssl_certificate_key
directive should point to your privkey.pem file.
server {
listen [::]:80;
listen 80;
server_name jira.domain.com;
return 301 https://jira.domain.com$request_uri;
}
server {
listen [::]:443 ssl;
listen 443 ssl;
server_name jira.domain.com;
ssl_certificate /etc/letsencrypt/live/jira.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jira.domain.com/privkey.pem;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
client_max_body_size 10M;
}
}
Hit CTRL+X
followed by Y
to save the changes.
Check your configuration and restart Nginx for the changes to take effect.
sudo nginx -t
sudo service nginx restart
Renewing SSL Certificate
Certificates provided by Let’s Encrypt are valid for 90 days only, so you need to renew them often. Now you set up a cronjob to check for the certificate which is due to expire in next 30 days and renew it automatically.
sudo crontab -e
Add this line at the end of the file
0 0,12 * * * certbot renew >/dev/null 2>&1
Hit CTRL+X
followed by Y
to save the changes.
This cronjob will attempt to check for renewing the certificate twice daily.
Step 7: Confirm the Installation
Now you can point your browser to the Jira URL. You will see the Jira Setup page. Now you can configure it yourself.


Take your first step towards a career in Java software development with this introduction course
You can follow the on screen details to setup Jira completely.
Conclusion
Now you have learned how to install Jira with Nginx reverse proxy and secure it with Let’s Encrypt SSL on Google Cloud Platform.
Thanks for your time. If you face any problem or any feedback, please leave a comment below.
This is super perfect. Helped me a lot!! Thanks much!!
Well, I think you should also add some troubleshooting for disappearing Jira Images and Failing Project creation in case of NGINX
Thanks a lot!.
Worked perfect.
Very welcome
Thank you so much !
every thing is ok
but how to stop jira to work with port 8080 , because now in my jira.domain.com I can open my domain in to ways
1- https://jira.domain.com
2-http://jira.domain.com:8080
how to stop number 2 ?
Thank you so much ! You saved my day.
I was struggling with setting up the latest version on ec2 ubuntu 18.04 but it worked like a charm.
You are so much welcome, very happy to hear this post helps you
Excellent! Thanks.
Glad to know you are happy
What a good way to document!!
Helped me a lot!! Thanks!!