{"id":21711274,"url":"https://github.com/davidix/openmrs-docker","last_synced_at":"2026-04-15T18:02:34.925Z","repository":{"id":77109025,"uuid":"496965549","full_name":"davidix/OpenMRS-Docker","owner":"davidix","description":null,"archived":false,"fork":false,"pushed_at":"2022-05-27T11:13:02.000Z","size":1086,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T18:17:33.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-27T11:08:33.000Z","updated_at":"2022-05-27T11:11:42.000Z","dependencies_parsed_at":"2023-02-28T16:16:37.423Z","dependency_job_id":null,"html_url":"https://github.com/davidix/OpenMRS-Docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidix/OpenMRS-Docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidix%2FOpenMRS-Docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidix%2FOpenMRS-Docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidix%2FOpenMRS-Docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidix%2FOpenMRS-Docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidix","download_url":"https://codeload.github.com/davidix/OpenMRS-Docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidix%2FOpenMRS-Docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T23:20:53.785Z","updated_at":"2026-04-15T18:02:34.906Z","avatar_url":"https://github.com/davidix.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bahmni Docker Compose\n\nDocker Compose project to run Bahmni.\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"./readme/bahmni-logo-square.png\" alt=\"Bahmni Logo\" height=\"155\"\u003e\n  \u003cimg src=\"./readme/plus.png\" alt=\"plus sign\" height=\"50\"\u003e\n  \u003cimg src=\"./readme/vertical-logo-monochromatic.png\" alt=\"Docker Logo\" height=\"150\"\u003e\n  \u003c/p\u003e\n\n## Quick Start\n\n### Create your working directory:\n\nMove to the location of your choice, eg, your home folder:\n```\ncd ~/\n```\nThen create the working directory and save the path:\n```\nexport BAHMNI_DIR=$PWD/bahmni \u0026\u0026 \\\nmkdir $BAHMNI_DIR\n```\n\n### Download the Docker Compose project itself:\n\n```\nexport VERSION=2.0.0-SNAPSHOT \u0026\u0026 \\\n# Download the project \u0026\u0026 \\\nmvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:get -DremoteRepositories=https://nexus.mekomsolutions.net/repository/maven-public -Dartifact=net.mekomsolutions:bahmni-docker-compose:$VERSION:zip -Dtransitive=false --legacy-local-repository \u0026\u0026 \\\n# Unzip the project in $BAHMNI_DIR/bahmni-docker-compose-$VERSION \u0026\u0026 \\\nmvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:unpack -Dproject.basedir=$BAHMNI_DIR -Dartifact=net.mekomsolutions:bahmni-docker-compose:$VERSION:zip -DoutputDirectory=$BAHMNI_DIR/bahmni-docker-compose-$VERSION\n```\n\n### Download the Bahmni distribution of your choice:\n\nThe Docker images do not provide a default Bahmni distribution so you need to first fetch one.\n\nFetch the distribution of your choice:\n\nEg, Bahmni Distro **Haiti**:\n```\nexport DISTRO_GROUP=\"haiti\" \u0026\u0026 \\\nexport DISTRO_VERSION=\"1.2.0-SNAPSHOT\" \u0026\u0026 \\\n# Download the distro \u0026\u0026 \\\nmvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:get -DremoteRepositories=https://nexus.mekomsolutions.net/repository/maven-public -Dartifact=net.mekomsolutions:bahmni-distro-$DISTRO_GROUP:$DISTRO_VERSION:zip -Dtransitive=false --legacy-local-repository \u0026\u0026 \\\n# Unzip the distro in $BAHMNI_DIR/bahmni-distro-$DISTRO_GROUP-$DISTRO_VERSION \u0026\u0026 \\\nmvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:unpack -Dproject.basedir=$BAHMNI_DIR -Dartifact=net.mekomsolutions:bahmni-distro-$DISTRO_GROUP:$DISTRO_VERSION:zip -DoutputDirectory=$BAHMNI_DIR/bahmni-distro-$DISTRO_GROUP-$DISTRO_VERSION\n```\n\n\nThe Bahmni Docker project relies on environment variable to document where the Distro is to be found.\nAs an example, you can export the following variables:\n```\nexport DISTRO_PATH=$BAHMNI_DIR/bahmni-distro-$DISTRO_GROUP-$DISTRO_VERSION \u0026\u0026 \\\nexport OPENMRS_CONFIG_PATH=$DISTRO_PATH/openmrs_config \u0026\u0026 \\\nexport BAHMNI_CONFIG_PATH=$DISTRO_PATH/bahmni_config \u0026\u0026 \\\nexport OPENMRS_MODULES_PATH=$DISTRO_PATH/openmrs_modules \u0026\u0026 \\\nexport BAHMNI_APPS_PATH=$DISTRO_PATH/bahmni_emr/bahmniapps \u0026\u0026 \\\nexport ODOO_CONFIG_PATH=$DISTRO_PATH/odoo_config \u0026\u0026 \\\nexport ODOO_EXTRA_ADDONS=$DISTRO_PATH/odoo_addons \u0026\u0026 \\\nexport EIP_CONFIG_PATH=$DISTRO_PATH/eip_config \u0026\u0026 \\\n```\n\nThe complete list of available variables can be found in [.env](.env).\n\n### Start Bahmni:\n\n```\ncd $BAHMNI_DIR/bahmni-docker-compose-$VERSION \u0026\u0026 \\\ndocker-compose -p $DISTRO_GROUP up\n```\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./readme/docker-compose-up-shadow.png\" alt=\"docker-compose up\" height=\"200\"\u003e\n\u003c/p\u003e\n\n**Important:** This assumes that you run the `docker` command as the same user and in the same window in which you exported your variables.\nIf Docker is run as `sudo`, the variables won't have an effect. Make sure to either export them as root, or run `docker` with `sudo -E` option to preserve the user environment. See [Docker on Linux Post-install steps](https://docs.docker.com/engine/install/linux-postinstall/)\n\n### Access the servers:\n\n- Bahmni: http://localhost/\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"./readme/bahmni-EMR-login-shadow.png\" alt=\"Bahmni EMR login screen\" width=\"300\"\u003e\n\u003c/p\u003e\n\n\n- OpenMRS: http://localhost/openmrs\n\n\u003cins\u003eDefault credentials\u003c/ins\u003e:\n  - username: superman\n  - password: Admin123\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"./readme/openmrs-login-shadow.png\" alt=\"OpenMRS login screen\" width=\"300\"\u003e\n\u003c/p\u003e\n\n- Odoo: http://localhost:8069/\n\n\u003cins\u003eDefault credentials\u003c/ins\u003e:\n  - username: admin\n  - password: admin\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"./readme/odoo-login.png\" alt=\"Odoo login screen\" width=\"300\"\u003e\n\u003c/p\u003e\n\n- Metabase: http://localhost:9003/\n\n\u003cins\u003eDefault credentials\u003c/ins\u003e:\n  - username: admin@metabase.local\n  - password: Metapass123\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"./readme/metabase-login.png\" alt=\"Metabase login screen\" width=\"300\"\u003e\n\u003c/p\u003e\n\n- OpenELIS: http://localhost/openelis\n\n\u003cins\u003eDefault credentials\u003c/ins\u003e:\n  - username: admin\n  - password: adminADMIN!\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"./readme/openelis-login.png\" alt=\"OpenELIS login screen\" width=\"300\"\u003e\n\u003c/p\u003e\n\n## Advanced\n\n### TLS support\n\nTo enable TLS support, just export the variable:\n\n```\nexport PROXY_TLS=\"-DenableTLS\"\n```\nand restart the application.\n\nDefault certificates are self-signed and therefore unsecured.\n\nProvide your own valid certificates as a bound volume mounted at `/etc/tls/`.\n\n\n### Start from a backup file\n\nTo run a fresh system based on a production backup file (see [here](https://github.com/mekomsolutions/appliance-deployment/blob/main/README.md#backup-profile) for more details) follow these steps:\n\n1. Unzip the backup file and rename PostgreSQL database files to **\u003cdatabase\u003e.tar**:\n  Eg:\n  - OpenELIS : **clinlims.tar**\n  - Odoo : **odoo.tar**\n2. Move PostgreSQL database files to [./sqls/postgresql/restore](./sqls/postgresql/restore) folder\n3. For OpenMRS database please folow the steps [here](#start-with-a-custom-mysql-dump)\n4. Unzip the **filestore.zip** file and set the variables in **.env** file as following:\n   - Odoo:\n     - `ODOO_FILESTORE=\u003cfilestore-path\u003e/odoo`\n   - OpenMRS:\n     - `OPENMRS_LUCENE_PATH=\u003cfilestore-path\u003e/openmrs/lucene`\n     - `OPENMRS_ACTIVEMQ_PATH=\u003cfilestore-path\u003e/openmrs/activemq-data`\n     - `OPENMRS_CONFIG_CHECKSUMS_PATH=\u003cfilestore-path\u003e/openmrs/configuration_checksums`\n     - `BAHMNI_HOME_PATH=\u003cfilestore-path\u003e/openmrs/bahmni`\n\nNote: `\u003cfilestore-path\u003e` is the path of the folder where **filestore.zip** file was unzipped.\n\n5. Start PostgreSQL:\n\n```\ndocker-compose [-p \u003cproject-name\u003e] up -d postgresql\n```\n\n6. Start the restore service\n\n```\ndocker-compose [-p \u003cproject-name\u003e] -f postgres_restore.yml up\n```\n\n\nNow The restore is done, you can turn off postgresql by\n```\ndocker-compose [-p \u003cproject-name\u003e] stop postgresql\n```\nor simply start Bahmni as described [here](#start-bahmni)\n\n### Start with a custom MySQL dump\n\nTo start OpenMRS with your own database, just drop your data file (`.sql` or `.sql.gz`) in the [./sqls/mysql/](./sqls/mysql/) folder and recreate your volumes (`docker-compose -v down`).\n\n### Disable individual services\nIf you are developing, you may not want to run the complete Bahmni suite.\nYou can disable services by adding **docker-compose.override.yml** file at the project root with the following contents:\n\n**./docker-compose.override.yml**\n```\n#\n# Example file to disable docker-compose.yml services.\n#\nversion: \"3.7\"\n\nservices:\n  odoo:\n    entrypoint: [\"echo\", \"[ERROR] Service is disabled in docker-compose.override.yml file\"]\n  postgresql:\n    entrypoint: [\"echo\", \"[ERROR] Service is disabled in docker-compose.override.yml file\"]\n```\n\nYou can also of course comment the services directly in the [docker-compose.yml](./docker-compose.yml) file.\n\n### Develop in Bahmn Apps\n\nBahmni Docker project can be used to setup a dev environment for Bahmni. This is especially easy when working on Bahmni Apps.\n\n\nThis can be done by using `watch rsync ...` command to see your changes on the running server.\n1. Clone and build Bahmni Apps locally:\n```\ncd ~/repos\ngit clone https://github.com/Bahmni/openmrs-module-bahmniapps.git\ncd openmrs-module-bahmniapps/ui\n```\nChange JS and HTML files as you like.\n\n2. Run the `watch rsync` command to override the server files: (using `watch` makes it run every 2 seconds)\n```\nwatch rsync -av ~/repos/openmrs-module-bahmniapps/ui/ /tmp/bahmni-distro-haiti/bahmni_emr/bahmniapps/\n```\n\n### Debug the Java apps\n\nThe Java apps (OpenMRS, Bahmni Reports, Odoo Connect...) can be remote debugged very simply by setting a the `DEBUG: \"true\"` environment variable to the service.\n\nDon't forget to open the port `8000` on the service as well:\nEg:\n```\n...\nenvironment:\n  DEBUG: \"true\"\n...\n\nports:\n  - 8000:8000\n...\n```\n\n### Provide additional properties files to OpenMRS (including runtime properties)\n\nIn order to provide additional properties files to openmrs, you can drop your file in the [./properties/openmrs/](./properties/openmrs/) folder.\n\nFiles will be made available in the application directory after a convenient environment variable substitution is applied.\n\nSpecial case of _runtime properties_:\n\nIn order to provide additional runtime properties to OpenMRS, you can drop a file that is named such as `\u003cname\u003e-runtime.properties`.\nIt will be handled differently than the other properties files to be merged to the existing **openmrs-runtime.properties**\n\nFor instance:\n\n\nCreate a file named `initializer-runtime.properties` in **properties/openmrs/**, with following contents:\n```\ninitializer.exclude.locations=*void_h1*\n```\n\nThis will be added to the openmrs-runtime.properties file.\n\n### All environment variables\n\nThe complete list of available variables can be found in [.env](.env).\n\n## Dependencies\n\n- Docker\n- Docker Compose\n- Maven\n\n## Known limitations\n\n- Supported components:\n  - OpenMRS\n  - Bahmni Apps\n  - Bahmni Config\n  - Bahmni Mart\n  - Metabase\n  - Odoo 14 (Odoo 10 supported on branch 1.x using Odoo Connect)\n  - OpenELIS\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidix%2Fopenmrs-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidix%2Fopenmrs-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidix%2Fopenmrs-docker/lists"}