Requirements for hosting CHT

For production CHT deployments, Linux is recommended, with Ubuntu the most commonly used. For CHT development, Linux or macOS may be used. Windows can be used for either, but without recommendation.

Hosting a CHT instance in a cloud provider like AWS or on bare-metal requires you have sufficient hardware specifications, Docker and Docker Compose installed and other infrastructure requirements met.

Infrastructure Requirements

  • A static IP
  • A DNS Entry pointing to the IP
  • TLS certificates

Minimum Hardware Requirements

  • 4 GiB RAM
  • 2 CPU/vCPU
  • 8 GB Hard Disk (SSD preferred)
  • Root Access

Depending on the scale of your operation these may need to be increased. Be sure to monitor disk usage so that the 8 GB can be increased as needed.


Install both docker and docker-compose to run CHT and related containers.


Depending on which distro you run, install the Docker packages from Docker’s Linux options. Historically, Medic runs Ubuntu: see Docker CE and Docker-compose install pages.


Docker Desktop for Windows needs either Hyper-V support or Windows Subsystem for Linux 2 (WSL 2). Docker’s Windows Docker Desktop install page covers both scenarios.


See Docker’s macOS Docker Desktop install page.

Verify install

Test that docker and docker-compose installed correctly by showing their versions with sudo docker-compose --version and sudo docker --version. Note, your version may be different:

sudo docker-compose --version
docker-compose version 1.27.1, build 509cfb99

sudo docker --version
Docker version 19.03.12, build 48a66213fe

Finally, confirm you can run the “hello world” docker container: sudo docker run hello-world


There are serious implications to consider when deploying a CHT instance beyond the above requirements. Be sure to account for:

  • Alerting - How will alerts be sent in the case of downtime or degraded service?
  • Power failures and unplanned restarts - Will the server cleanly restart such that the CHT resumes service correctly?
  • Backups - What happens to the CHT data if there’s a hard drive failure?
  • Disaster Recovery - What happens if there is a flood at the facility and on-site active and backup data are destroyed?
  • Scale - What happens when the hardware deployed needs to be upgraded to increase capacity?
  • Updates - By definition TLS certificates expire and software needs to be updated - how will the deployment get these updates on a regular basis?
  • Security - While the TLS certificate will protect data on the LAN, is the server hard drive encrypted in the event of property theft?
  • Privacy - The CHT inherently carries sensitive patient medical information in the database. Are there sufficient measures in place to protect this sensitive data?

Hosting > 3.x > Self Hosting

Hosting the CHT on self run infrastructure

Hosting > 3.x > AWS Hosting

Hosting the CHT on Amazon EC2