{"id":31968385,"url":"https://github.com/ihcsim/compose-wso2","last_synced_at":"2025-10-14T18:52:37.794Z","repository":{"id":149608246,"uuid":"48411731","full_name":"ihcsim/compose-wso2","owner":"ihcsim","description":"Sets up a WSO2 cluster using docker-compose.","archived":false,"fork":false,"pushed_at":"2016-01-04T20:54:07.000Z","size":966,"stargazers_count":12,"open_issues_count":0,"forks_count":7,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-06T02:19:18.325Z","etag":null,"topics":["docker","docker-compose","wso2"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ihcsim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-22T05:15:26.000Z","updated_at":"2023-08-25T02:19:57.000Z","dependencies_parsed_at":"2023-04-17T15:55:55.600Z","dependency_job_id":null,"html_url":"https://github.com/ihcsim/compose-wso2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ihcsim/compose-wso2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihcsim%2Fcompose-wso2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihcsim%2Fcompose-wso2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihcsim%2Fcompose-wso2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihcsim%2Fcompose-wso2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ihcsim","download_url":"https://codeload.github.com/ihcsim/compose-wso2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ihcsim%2Fcompose-wso2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020337,"owners_count":26086867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-compose","wso2"],"created_at":"2025-10-14T18:52:33.226Z","updated_at":"2025-10-14T18:52:37.784Z","avatar_url":"https://github.com/ihcsim.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## compose-wso2\n\ncompose-wso2 sets up a collection of dockerized WSO2 components with a shared governance registry and SSO capability.\n\n### Description\n\nThese are the components included:\n\n1. API Manager\n2. Data Service Server\n3. Enterprise Service Bus\n4. Governance Registry\n5. Identity Server\n\nBefore you get started with a `docker-compose up`, note that:\n\n1. The WSO2 container images are quite large, ranging from 750MB to a whooping 1.0GB.\n2. The first run of `docker-compose up` takes a few minutes as the service images are pulled from my AWS S3 buckets, and the Governance Registry is started with the `-Dsetup` flag in order to initialize all the database tables. Try run `docker-compose pull` prior to running `docker-compose up`.\n3. This project utilizes [Compose's networking feature](https://docs.docker.com/compose/networking/) to facilitate inter-containers networking communication.\n4. To support [web browser-based SSO with WSO2 Identity Server](https://docs.wso2.com/display/IS510/Configuring+SAML2+Single-Sign-On+Across+Different+WSO2+Products), a new entry for the Identity Server hostname (`wso2identity`) must be added to your `/etc/hosts` file. Refer to the [Usage](#usage) section for more information.\n5. In the rest of this README, the `$DOCKER_HOST_IP` variable refers either to the value of `docker-machine ip \u003cmachine\u003e` if you are using Docker machine, or just `localhost` if you aren't using Docker machine.\n\n### Usage\n\n1. Set up the default environmental variables and change the `WSO2_GATEWAY` variable to your `$DOCKER_HOST_IP`: `source scripts/env.bash`\n2. Update your `/etc/hosts` file with the following line: `\u003c$WSO2_GATEWAY\u003e wso2identity` where `$WSO2_GATEWAY` has the same value as defined in your `scripts/env.bash` script.\n3. Pull services: `docker-compose pull \u003cservice\u003e`\n4. Run services: `docker-compose --x-networking up \u003cservice\u003e`\n5. Scale services: `docker-compose scale \u003cservice=counts\u003e`\n6. View logs: `docker-compose logs \u003cservice\u003e`\n\n### Web Admin Consoles\n\nThe exposed ports of each component can be changed using the `scripts/env.bash` script.\n\nComponents             | URL\n---------------------- | -----------------------------\nIdentity Server        | https://$DOCKER_HOST_IP:9443\nAPI Manager            | https://$DOCKER_HOST_IP:9444\nEnterprise Service Bus | https://$DOCKER_HOST_IP:9445\nData Service Server    | https://$DOCKER_HOST_IP:9446\nGovernance Registry    | https://$DOCKER_HOST_IP:9447/carbon\n\n### Governance Registry Persistance\n\nThe [Governance Registry](http://wso2.com/products/governance-registry/) is used to provide a shared governance partition backed by a MySQL database, as documented [here](https://docs.wso2.com/display/ESB490/Governance+Partition+in+a+Remote+Registry). The database `registrydb` is created by the `scripts/mysql/greg-init.sql` script on-start. \n\nTo test the shared governance partition set-up, navigate to the `/_system/governance` registry from any of the web consoles. Add or modify some resources, and expect the changes to be seen in the web consoles of other components. Note that caching is disabled in the `registry.xml` file of each component.\n\nThere are two others adjustments I had to make to get this to work:\n\n1. Override the default MySQL `sql-mode` using the `conf/mysql/my.cnf` script to remove the [`NO_ZERO_IN_DATE`](http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_in_date) and [`NO_ZERO_DATE`](http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_date) restrictions. WSO2 uses `DEFAULT 0` in some of their timestamp queries.\n2. Disable SSL by setting the `useSSL` parameter in the JDBC connection string as seen in the `conf/\u003ccomponent\u003e/master-datasources.xml` scripts.\n\n### Single Sign-On\n\nThe [Identity Server](http://wso2.com/products/identity-server/) is configured to support web browser-based SSO across all the components based on the steps described [here](https://docs.wso2.com/display/IS510/Configuring+SAML2+Single-Sign-On+Across+Different+WSO2+Products). A MySQL database is used as the [backing data source to store registry and user manager data](https://docs.wso2.com/display/IS510/Setting+up+MySQL). The database `identitydb` is created by the `scripts/mysql/is-init.sql` script on-start.\n\nInstead of defining the service provider for each component via the administrator console, I specified them in the `sso-idp-config.xml` file in accordance to this [example](https://docs.wso2.com/display/IS510/Configuring+a+SP+and+IdP+Using+Configuration+Files). There is an issue with logout where the Identity Server throws an `ERROR {org.wso2.carbon.identity.sso.saml.processors.LogoutRequestProcessor} -  No Established Sessions corresponding to Session Indexes provided.` exception.\n\nSince I am using Docker machine, I have to add the Identity Server hostname (`wso2identity`) to my `/etc/hosts` file. Refer to [Usage](#usage) section on the updates necessary for the `/etc/hosts` file. Otherwise, by default, all the Identity Server SSO web applications will redirect SAML requests back to `localhost`.\n\nThe following is a list of SSO-related TODOs:\n\n1. Fix logout issue.\n2. Replace the default embedded LDAP server with a Docker container as the primary user store.\n\n### Supported Environmental Variables\n\nThe default versions and port numbers of the WSO2 components, MySQL credentials and other environmental variables are defined in the `scripts/env.bash` script.\n\nThe following is the list of environmental variables that you will need to change to cater to your environment:\n\nVariables           | Description\n------------------- | --------------------------------\nCOMPOSE_PROJECT_NAME| Sets the project name. Refer Compose [documentation](https://docs.docker.com/compose/reference/overview/#compose-project-name) for more information.\nWSO2_GATEWAY        | This should be set to either the IP address of your Docker machine, or `localhost` if you aren't using Docker machine.\nAPIM_VERSION        | Version of the API Manager\nAPIM_HTTPS_PORT     | Exposed HTTPS port of the API Manager\nAPIM_HTTP_PORT      | Exposed HTTP port of the API Manager\nDSS_VERSION         | Version of the Data Service Server\nDSS_HTTPS_PORT      | Exposed HTTPS port of the Data Service Server\nDSS_HTTP_PORT       | Exposed HTTP port of the Data Service Server\nESB_VERSION         | Version of the Enterprise Service Bus\nESB_HTTPS_PORT      | Exposed HTTPS port of the Enterprise Service Bus\nESB_HTTP_PORT       | Exposed HTTP port of the Enterprise Service Bus\nGREG_VERSION        | Version of the Governance Registry\nGREG_HTTPS_PORT     | Exposed HTTPS port of the Governance Registry\nGREG_HTTP_PORT      | Exposed HTTPS port of the Governance Registry\nIS_VERSION          | Version of the Identity Server\nIS_HTTPS_PORT       | Exposed HTTPS port of the Identity Server\nIS_HTTP_PORT        | Exposed HTTP port of the Identity Server\nMYSQL_VERSION       | Version of the MySQL database\nMYSQL_ROOT_PASSWORD | MySQL root password\n\n### Override MySQL Configurations\n\nThe default MySQL configurations can be overridden by adding custom configuration files, suffixed with the `.cnf` extension, to the `conf/mysql` folder. For more information, see the MySQL official repository on [dockerhub](https://hub.docker.com/_/mysql/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihcsim%2Fcompose-wso2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fihcsim%2Fcompose-wso2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fihcsim%2Fcompose-wso2/lists"}