DHIS2 Deployment Automation

Hi guys,
I have an automated deployment solution for Dhis2 based on ansible and I
want to share the solution with other implementers.
Is there a project where I can plug a simple repo?

1 Like

Hi @salad_guyo1

Thank you for wanting to share with the community. You could share the link to the repository with the description in the Implementation - Implémentation channel.

How different is this deployment from the current methods? Is it in Windows or Linux?

Hi @Gassim,
Thanks for your response. The approach essentially automates the official DHIS2 deployment process on Linux.

The key benefits of this approach include faster deployments, reduced risk of human error, the ability to easily switch between different deployment environments, and fine-tuning PostgreSQL configs based on the deployment needs.
I’d like to share the repository before the end of the week. This commitment will help me finalize and actualize it.

1 Like

Great, thanks for sharing!

Thank you for the commitment and for sharing with the community @salad_guyo1 ! Do you think it’ll be more appropriate to move this topic to Server Administration - Administration-du-Serveur or another category?

Thank you!

1 Like

Hi @Gassim, thanks for the guide. I have updated the topic and here is the repo that I promised to share

1 Like

Thank you @salad_guyo1 ! :slight_smile:

May I ask if you tried this on several dhis2 versions? Does it work for all versions?

Thanks!

I did a test run with version 2.41 on Ubuntu 24.04 and I expect it to work most of the earlier versions.
A quick test run can be done by updating the value of dhis2_app_war_url variable to desired version.
The main differences between the documented packages and the ones actually used are:
Ubuntu 18.04 to Ubuntu 24.04
PostgreSQL 12 to PostgreSQL 15
openjdk-17-jdk to openjdk-21-jdk

1 Like

Hi @salad_guyo1

Thanks very much for sharing this.

You probably haven’t realized that we are actually maintaining an ansible based install at GitHub - dhis2/dhis2-server-tools: Tools to support installation and management of DHIS2. Our official documentation is lagging but expect some updates real soon.

These tools are a little different to yours as they deploy the different components (proxy, tomcat, db etc) on separate containers or VMs which is recommended for managing resources more effectively. Also they apply quite a bit more security considerations than what is in the main docs at present.

What your playbook does is to install what we call a “boombox” with everything running together in the same system. That is not always a bad thing and is sometimes suitable for small deployments.

Its interesting that you have configured a caddy reverse proxy. I will take a closer look at that. Caddy is great. Currently we are supporting nginx and apache2, but could potentially incorporate your caddy config. Also we are very interested in haproxy in situations where load balancing is required.

Thanks again for sharing. And do please look at the repo above and share any feedback you might have.

Regards
Bob

3 Likes

Hello @bobj,

Thanks for the great work you guys are doing. I’ll definitely look into the repo and find what new approach we can adapt.

Thanks again for sharing.

1 Like

Hi Salad,
Are you in Nairobi? It would be great to catch up over coffee sometime. I’d love to exchange ideas and hear more about your Ansible tools.

1 Like

Hi @tkipkurgat,

Yes I’m in Nbi. Sure that’s fine.

1 Like

Please find my contact details below.
tito@dhis2.org
telegram_username: tkipkurgat