How to Install OpenMRS on Ubuntu Linux

Install OpenMRS on Ubuntu Linux

This article explains installing and using OpenMRS (Open Medical Record System) in Ubuntu Linux.

OpenMRS is a collaborative open-source effort to develop a customized EMR system for developing countries. Instead of paying thousands of dollars for EMR systems, especially for countries that can’t afford them, OpenMRS was started as an alternative to commercial software.

The software is written in Java and uses a user-friendly web dashboard for managing electronic medical records through a web interface.

Below is how to install and use OpenMRS on Ubuntu Linux.

As described above, OpenMRS is an EMR system that can be used by organizations or countries that can’t afford commercial alternatives.

Here’s how to install it on Ubuntu.

Install OpenJDK 8

OpenHRM is a Java-based application. Therefore, you must install either the official Oracle JDK or Open JDK.

For this tutorial, we’re going to install the open-source OpenJDK version.

To do that, run the commands below:

sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-doc openjdk-8-jre-lib

After installing Java, you can verify it by running the commands below:

java -version

It should output something similar below:

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

Install MariaDB on Ubuntu Linux

The next component that is required to run OpenMRS is a database server. This post will install and use the MariaDB database server to run OpenMRS.

To install the MariaDB database server, use the instructions below.

Open the Ubuntu terminal and run the commands below to install the MariaDB database server.

sudo apt update
sudo apt install mariadb-server

Once the MariaDB database server is installed, use the commands below to stop, start and enable the MariaDB server to start up when the server boots automatically.

sudo systemctl stop mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb

After that, run the commands below to configure and secure the database server.

sudo mysql_secure_installation

When prompted whether to switch to unix_socket authentication, type N or No.

It would be best to create a new password for the root user.


In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Install Tomcat

OpenMRS uses a Tomcat web server. The steps below show you how to install Tomcat on Ubuntu Linux.

You’ll want to run the Tomcat user without root privileges to run it properly. To do that, create a new user and group to run the Tomcat service.

First, create a new Tomcat group called Tomcat. Linux systems usually create groups based on the account name.

sudo groupadd tomcat

Next, create a new Tomcat user called Tomcat and make the user a member of the Tomcat group above. Well also want to make /opt/tomcat the home folder for the Tomcat user.

To do that, run the commands below

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

We’re ready to download the Tomcat package.

Download the Tomcat file

At this stage, we’ve installed OpenJDK, created a Tomcat account, and are ready to download and configure Tomcat.

You can get the latest from the link below. However, if you find a newer release at the link below, download it instead.

Download Tomcat package

cd /tmp

After downloading, create a Tomcat home folder at /opt/Tomcat. Then extract the downloaded folder into /opt/Tomcat.

To do that, run the commands below:

sudo mkdir /opt/tomcat
sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

Next, give the Tomcat user control of the entire directory and make all the scripts in the bin location executable.

sudo chown -R tomcat: /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'

How to configure the Tomcat service

After extracting the package, run the commands to open the Tomcat configuration file for its default user.

sudo nano /opt/tomcat/conf/tomcat-users.xml

Then create an account with a password for the user and save by copying and pasting the lines below into the file, just before the </tomcat-users>

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="type_new_password_here" roles="manager-gui,admin-gui"/>

Save the file and exit.

Next, run the commands below to create a server account for Tomcat

sudo nano /etc/systemd/system/tomcat.service

Then copy and paste the lines below into the file and save

Description=Tomcat servlet container




Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"



Save and exit.

After that, run the commands below to reload the systemd profiles and enable the Tomcat service.

sudo systemctl daemon-reload
sudo systemctl start tomcat.service
sudo systemctl enable tomcat.service

Download and install OpenMRS

Now that you have installed and configured the required packages download the OpenMRS package to install.

First, create an OpenMRS folder in the /opt directory. Then make the Tomcat user owner of the directory.

sudo mkdir /var/lib/OpenMRS
sudo chown -R tomcat:tomcat /var/lib/OpenMRS

Next, download the OpenMRS package.

cd /tmp
sudo cp openmrs.war /opt/tomcat/webapps/

Next, run the commands below to make the Tomcat user the directory owner.

sudo chown -R tomcat:tomcat /opt/tomcat/webapps/openmrs.war

After that, open your browser and browse to the server hostname or IP address followed by /8080/openmrs


You should see the OpenMRS setup wizard.

Install OpenMRS on Ubuntu Linux wizard

Next, choose the type of installation.

Install OpenMRS on Ubuntu Linux installation type

Type the root password in the database password field.

Install OpenMRS on Ubuntu Linux database

When you are done, the OpenMRS wizard should install a new database and create your site. After that, a login screen should appear.

Username and password:

admin / Admin123

Log in and start customizing your system

Install OpenMRS on Ubuntu Linux admin dashboard

That should do it!


This post showed you how to install and use OpenMRS on Ubuntu Linux. If you find any errors above or have something to add, please use the comments form below.

Posted by

I love computers; maybe way too much. What I learned I try to share at

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: