Prerequisites
- Server running Ubuntu 22.04
- SSH Access with
non-root
user withsudo
privileges
...
sudo -u dhis mkdir /home/dhis/config
sudo dpkg-reconfigure tzdata
Set
...
TimeZone to
...
Asia/Kolkata
PostgreSQL installation
Step3: Install PostgreSQL
...
by following bellow steps
- Add PostgreSQL repository
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- Import the PostgreSQL repository signing key:
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
- Update the package lists
sudo apt update -y && sudo apt upgrade -y
Install PostgreSQL 16
sudo apt-get install -y postgresql-16 postgresql-16-postgis-3
Ensure postgresql is started and enabled
sudo systemctl start postgresql sudo systemctl enable postgresql
Create a non-privileged database user
dhis
with thecommand
below:
Enter a secure password at the prompt:sudo -u postgres createuser -SDRP dhis
- Create a database named
dhis
owned bydhis
database user by invoking:sudo -u postgres createdb -O dhis dhis;
Since DHIS2 database user does not have permission to create extensions, create them from the console using the postgres user with the following commands:
sudo -u postgres psql -c "create extension postgis;" dhis
sudo -u postgres psql -c "create extension btree_gin;" dhis
sudo -u postgres psql -c "create extension pg_trgm;" dhis
Java installation
Step4: Install JAVA by following below steps
The recommended Java JDK for DHIS2 2.40 and above is OpenJDK 17, its required for 2.41.
sudo apt-get install -y openjdk-17-jdk
Verify that your installation is correct by invoking:
java -version
DHIS2 configuration
Step5: Install DHIS2 by following below steps
Create dhis.conf file and edit.
sudo -u dhis touch /home/dhis/config/dhis.conf
...
# Database password
connection.password = xxxx
Tomcat
...
installation
Step6:To install the Tomcat servlet container we will utilize the Tomcat user Install it with below command,
...
sudo tomcat9-instance-create /home/dhis/tomcat-dhis sudo chown -R dhis:dhis /home/dhis/tomcat-dhis/
Edit the file setenv.sh
:
sudo -u dhis vim /home/dhis/tomcat-dhis/bin/setenv.sh
export JAVA_HOME='/usr/lib/jvm/java-17-openjdk-amd64/'
export JAVA_OPTS='-Xms3g -Xmx6g'
export DHIS2_HOME='/home/dhis/config'
...
Edit the file startup.sh:
sudo -u dhis vim /home/dhis/tomcat-dhis/bin/startup.sh
...
export CATALINA_BASE="/home/dhis/tomcat-dhis"
/usr/share/tomcat9/bin/startup.sh
echo "Tomcat started"
Step7: download dhis2 version v40.3.0
wget -O dhis.war https://releases.dhis2.org/40/dhis2-stable-40.3.0.war
Move the WAR file into the Tomcatwebapps
directory.
sudo mv dhis.war /home/dhis/tomcat-dhis/webapps/ROOT.war
Running DHIS2
Step8: Start DHIS2
- Start the DHIS2 instance with the command below:
sudo -u dhis /home/dhis/tomcat-dhis/bin/startup.sh
Check the logs live:
tail -f /home/dhis/tomcat-dhis/logs/catalina.out
To stop the DHIS2 instance:
sudo -u dhis /home/dhis/tomcat-dhis/bin/shutdown.sh
If the WAR file deployed in
webapps
is named ROOT.war, you can now access your DHIS2 instance at the following URL: