Remote deployment

One can make use of the platform's Ansible and Terraform scripts for setting up the remote server. Docker swarm has to be initiated on the server.

Remote deployments are done via ssh.Ensure the ssh key to be used has been added to the server and follow the steps below:

1. Edit the following fields in .env.*:

- OPENHIM_CORE_MEDIATOR_HOSTNAME_= <OPENHIM_SUBDOMAIN> (default localhost)_ - DOMAIN_NAME= <DOMAIN_NAME> of remote server - SUBDOMAINS= <SUBDOMAINS OF ALL EXPOSED SERVICES>

You may need to update the memory and CPU limits for the services according to the server's spec.

Example

OPENHIM_CORE_MEDIATOR_HOSTNAME=openhimcomms.domain.com
DOMAIN_NAME=qa.disi.gicsandbox.org
SUBDOMAINS=openhimcomms.domain.com,openhimcore.domain.com,openhimconsole.domain.com,kibana.domain.com,reports.domain.com,santempi.domain.com,santewww.domain.com

2. Run the following command to deploy:

DOCKER_HOST=ssh://<username>@<host> ./deploy-qa.sh init
  • username - user of the remote server with ssh key

  • host - is the domain name or the IP address of the remote server.

To verify success of deployment, one can ssh into the server and run the command docker service ls. This should list out the services deployed.

  • elasticsearch_analytics-datastore-elastic-search

  • jsreport_dashboard-visualiser-jsreport

  • kibana_dashboard-visualiser-kibana

  • logstash_data-mapper-logstash

  • kafka_kafdrop

  • kafka_kafka

  • kafka_kafka-minion

  • kafka_zookeeper-1

  • hapi-fhir_hapi-fhir

  • hapi-fhir_postgres-1

  • openhim_mongo-1

  • openhim_openhim-console

  • openhim_openhim-core

  • mpi_mpi-mediator

  • disi_reprocess-mediator

  • santempi_santedb-mpi

  • santempi_santedb-www

  • santempi_santempi-psql-1

  • reverse-proxy_reverse-proxy-nginx

  • monitoring_grafana

Accessing the servers

The following services can accessed using the domain and subdomains set in .env file

  • OpenHIM Console - https://openhimconsole.domain.com

    Credentials

    • username - root@openhim.org

    • password - instant101

  • OpenHIM Core - https://openhimcore.<DOMAIN_NAME>

    Credentials

    • Authorization - Custom test

  • Kibana - https://kibana.<DOMAIN NAME>

    Credentials

    • username - elastic

    • password - dev_password_only

  • Js Reports - https://reports.<DOMAIN_NAME>

    Credentials

    • username - admin

    • password - dev_password_only

  • Sante MPI - https://santempi.<DOMAIN_NAME>

    Credentials

    • One needs to get an access token using the following path /auth/oauth2_token by sending a form with the following fields:

      • grant_type=client_credentials

      • scope=*

      • client_id=<SANTE_CLIENT_ID> specified in the .env file

      • client_registry=<SANTE_CLIENT_SECRET> specified in the .env file

      • resource=oath2_token

    • Authorization: Bearer res_access_token

  • Sante Web - https://santewww.<DOMAIN_NAME>

    Credentials

    • username - Administrator

    • password - Mohawk123

Testing

HIV data can be sent to the OpenHIM Core, and the data can then be visualised in Kibana and JsReport. Test scripts are available in the test folder. Edit the openhimHost value in the test/package.json.The value should be the url of the OpenHIM Core. To send data, run the following command

yarn bootstrap:qa && yarn test:qa

Alternatively one can import the DISI CDR.postman_collection.json and use the Postman Client.

Last updated