Deployment Guide¶
Applies to
The current NidanEHR stack: OpenMRS 2.8.x · OpenELIS-Global 2 · Odoo 19 CE · Orthanc · Kafka 7.5 · Keycloak.
This guide provides the installation steps for deploying the NidanEHR stack in a production environment.
Prerequisites¶
- Operating System: Minimal 64-bit Linux distribution (Ubuntu Server LTS, Debian, or Rocky Linux).
- Docker Engine: Version 24 or later with the Docker Compose v2 plugin.
- Hardware Resources: Minimum 8 GB RAM for development or clinical-only deployments; 24 GB+ RAM for production environments containing billing.
- Port Availability: Ports
80(HTTP),443(HTTPS), and8443(OpenELIS TLS) must be open on the host firewall.
Deployment Steps¶
1. Set Up the Environment Configuration¶
Clone the repository and copy the environment template to create your .env file:
cd nidan-docker
cp env.template .env
Open the .env file and configure the settings:
1. Define your domain names in GATEWAY_DOMAIN and OPENELIS_DOMAIN.
2. Generate strong, unique passwords to replace all change-me-* placeholders (including DB roots, application passwords, and sync credentials).
3. Align the integration shared keys (NIDAN_OIS_SECRET and NIDAN_ODOO_SECRET).
2. Package Custom EMR Modules (OMODs)¶
OpenMRS requires custom modules to handle integration events. Build these from the source code repository and copy the compiled files to the Docker build path:
# Compile and copy OMOD files from the root repo directory
cd openmrs-backend/openmrs-module-fhir2 && mvn package -DskipTests
cp omod/target/*.omod ../../nidan-docker/openmrs/custom_modules/
cd ../openmrs-module-medication-administration && mvn package -DskipTests
cp omod/target/*.omod ../../nidan-docker/openmrs/custom_modules/
cd ../openmrs-module-ipd && mvn package -DskipTests
cp omod/target/*.omod ../../nidan-docker/openmrs/custom_modules/
3. Build and Pull Images¶
Build the locally-defined container images before launching the stack:
docker-compose build openmrs-backend openmrs-frontend gateway superset
4. Launch the Stack¶
Run the services in the background:
docker-compose up -d
Confirm all services run successfully:
docker-compose ps
SSL Certificates¶
The gateway reverse proxy routes TLS traffic. By default, it expects SSL certificates mapped into /certs/ on the host, or uses automated Let's Encrypt integration via Certbot.
To configure Certbot, verify CERTBOT_EMAIL and CERTBOT_DOMAINS are set correctly in your .env file prior to starting the gateway container.