|
| 1 | +version: '3.7' |
| 2 | + |
| 3 | +volumes: |
| 4 | + mysql_data: |
| 5 | + driver: local |
| 6 | + ttk-db-data: |
| 7 | + driver: local |
| 8 | + |
| 9 | +services: |
| 10 | + mojaloop-testing-toolkit: |
| 11 | + image: mojaloop/ml-testing-toolkit:v14.0.0 |
| 12 | + # image: mojaloop-testing-toolkit:local |
| 13 | + # build: |
| 14 | + # context: . |
| 15 | + # target: builder |
| 16 | + volumes: |
| 17 | + - "../../spec_files:/opt/mojaloop-testing-toolkit/spec_files" |
| 18 | + - "../../secrets:/opt/mojaloop-testing-toolkit/secrets" |
| 19 | + ports: |
| 20 | + - "5000:5000" |
| 21 | + - "5050:5050" |
| 22 | + environment: |
| 23 | + TTK_SYSTEM_CONFIG: |- |
| 24 | + { |
| 25 | + "HOSTING_ENABLED": true, |
| 26 | + "INBOUND_MUTUAL_TLS_ENABLED": true, |
| 27 | + "OUTBOUND_MUTUAL_TLS_ENABLED": true, |
| 28 | + "DB": { |
| 29 | + "URI": "mongodb://ttk:ttk@ttk-mongodb:27017/ttk" |
| 30 | + }, |
| 31 | + "OAUTH": { |
| 32 | + "AUTH_ENABLED": true, |
| 33 | + "APP_OAUTH_CLIENT_KEY": "ttk", |
| 34 | + "APP_OAUTH_CLIENT_SECRET": "23b898a5-63d2-4055-bbe1-54efcda37e7d", |
| 35 | + "OAUTH2_TOKEN_ISS": "http://keycloak:8080/auth/realms/testingtoolkit", |
| 36 | + "OAUTH2_ISSUER": "http://keycloak:8080/auth/realms/testingtoolkit/protocol/openid-connect/token", |
| 37 | + "EMBEDDED_CERTIFICATE": "-----BEGIN CERTIFICATE-----\nMIICrDCCAhWgAwIBAgIUBQ88qYAqQ1+I+ISsaIgYPqbya9QwDQYJKoZIhvcNAQEL\nBQAwaDELMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9u\nZG9uMREwDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNV\nBAMMCE1vZHVzYm94MB4XDTIwMDkzMDE3MDYwNloXDTIxMDkzMDE3MDYwNlowaDEL\nMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMREw\nDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNVBAMMCE1v\nZHVzYm94MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDda1T6cyWogfG/xlUb\n3+gWZI0jsnlSGbf3PF89NCgS+n6HUJ0A2Ezmu/n9Gfkm8Rjyst914Vq9ebsueXHI\nc+Ad76+q3MASF1hRUTfnvH/v6rDguPvI6Jb/M9jGn5b2hglcg3B9Y7Tgv70bcV7o\nCweP68CPbIrTWjR9gyjmSHfYhwIDAQABo1MwUTAdBgNVHQ4EFgQUEE+og3aDjUzC\nywQo45Fhjp5S9EowHwYDVR0jBBgwFoAUEE+og3aDjUzCywQo45Fhjp5S9EowDwYD\nVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQC2a7sxisCTQa9oRGMZRmJs\nFMZjia126qlRYm6ljjM2wWlqIBdxjzLhLJbAiWMyzGKTZdMOG51Ujc+NapKRLS4K\nHVnzcbtgRNq6GZk5C1L8BEzR6NxU/CdOkm2Vx811CTOT/YijpjtjF01K1aIZE+z8\nmdzyVY9ZybXqbNclLU7rwA==\n-----END CERTIFICATE-----" |
| 38 | + }, |
| 39 | + "KEYCLOAK": { |
| 40 | + "ENABLED": true, |
| 41 | + "API_URL": "http://keycloak:8080" |
| 42 | + }, |
| 43 | + "CONNECTION_MANAGER": { |
| 44 | + "ENABLED": true, |
| 45 | + "API_URL": "http://connection-manager-api:5061", |
| 46 | + "AUTH_ENABLED": true, |
| 47 | + "HUB_USERNAME": "hub", |
| 48 | + "HUB_PASSWORD": "hub" |
| 49 | + } |
| 50 | + } |
| 51 | + command: |
| 52 | + - sh |
| 53 | + - -c |
| 54 | + - "npm start" |
| 55 | + depends_on: |
| 56 | + - ttk-mongodb |
| 57 | + |
| 58 | + mojaloop-testing-toolkit-ui: |
| 59 | + image: mojaloop/ml-testing-toolkit-ui:v13.5.4 |
| 60 | + ports: |
| 61 | + - "6060:6060" |
| 62 | + environment: |
| 63 | + - API_BASE_URL=http://localhost:5050 |
| 64 | + - AUTH_ENABLED=TRUE |
| 65 | + command: |
| 66 | + - sh |
| 67 | + - /usr/share/nginx/start.sh |
| 68 | + |
| 69 | + keycloak-mysql: |
| 70 | + image: mysql:5.7 |
| 71 | + volumes: |
| 72 | + - mysql_data:/var/lib/mysql |
| 73 | + environment: |
| 74 | + MYSQL_ROOT_PASSWORD: root |
| 75 | + MYSQL_DATABASE: keycloak |
| 76 | + MYSQL_USER: keycloak |
| 77 | + MYSQL_PASSWORD: password |
| 78 | + keycloak: |
| 79 | + image: quay.io/keycloak/keycloak:latest |
| 80 | + volumes: |
| 81 | + - "./keycloak/keycloak-realm.json:/realm/realm.json" |
| 82 | + - "../../secrets/tls/hub_server_cert.pem:/etc/x509/https/tls.crt" |
| 83 | + - "../../secrets/tls/hub_server_key.key:/etc/x509/https/tls.key" |
| 84 | + environment: |
| 85 | + DB_VENDOR: MYSQL |
| 86 | + DB_ADDR: keycloak-mysql |
| 87 | + DB_DATABASE: keycloak |
| 88 | + DB_USER: keycloak |
| 89 | + DB_PASSWORD: password |
| 90 | + KEYCLOAK_USER: admin |
| 91 | + KEYCLOAK_PASSWORD: admin |
| 92 | + KEYCLOAK_IMPORT: /realm/realm.json -Dkeycloak.profile.feature.upload_scripts=enabled |
| 93 | + ports: |
| 94 | + - 8080:8080 |
| 95 | + - 8443:8443 |
| 96 | + depends_on: |
| 97 | + - keycloak-mysql |
| 98 | + |
| 99 | + ttk-mongodb: |
| 100 | + image: 'bitnami/mongodb:latest' |
| 101 | + restart: always |
| 102 | + environment: |
| 103 | + # MONGO_INITDB_ROOT_USERNAME: admin-user |
| 104 | + # MONGO_INITDB_ROOT_PASSWORD: admin-password |
| 105 | + # MONGO_INITDB_DATABASE: ttk |
| 106 | + MONGODB_USERNAME: ttk |
| 107 | + MONGODB_PASSWORD: ttk |
| 108 | + MONGODB_DATABASE: ttk |
| 109 | + ports: |
| 110 | + - 27017:27017 |
| 111 | + volumes: |
| 112 | + - ttk-db-data:/data/db |
| 113 | + # - ./mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh |
| 114 | + |
| 115 | + ## TLS related services |
| 116 | + connection-manager-db: |
| 117 | + # Using mariadb because mysql doesn't show any helpful error when docker disk is full as per https://github.com/docker-library/mysql/issues/69 |
| 118 | + image: mariadb |
| 119 | + hostname: connection-manager-db |
| 120 | + environment: |
| 121 | + - MYSQL_ROOT_PASSWORD=modus123 |
| 122 | + - MYSQL_DATABASE=mcm |
| 123 | + - MYSQL_USER=mcm |
| 124 | + - MYSQL_PASSWORD=mcm |
| 125 | + restart: always |
| 126 | + command: mysqld --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp |
| 127 | + connection-manager-api: |
| 128 | + image: modusbox/connection-manager-api:1.5.3 |
| 129 | + hostname: connection-manager-api |
| 130 | + environment: |
| 131 | + - DATABASE_HOST=connection-manager-db |
| 132 | + - DATABASE_PORT=3306 |
| 133 | + - DATABASE_USER=mcm |
| 134 | + - DATABASE_PASSWORD=mcm |
| 135 | + - DATABASE_SCHEMA=mcm |
| 136 | + - MYSQL_ROOT_PASSWORD=modus123 |
| 137 | + - PORT=5061 |
| 138 | + - P12_PASS_PHRASE='SOME_S3C4R3_P@SS' |
| 139 | + - OAUTH2_ISSUER=http://keycloak:8080/auth/realms/testingtoolkit/protocol/openid-connect/token |
| 140 | + - OAUTH2_TOKEN_ISS=http://keycloak:8080/auth/realms/testingtoolkit |
| 141 | + - AUTH_ENABLED="TRUE" |
| 142 | + - APP_OAUTH_CLIENT_KEY=ttk |
| 143 | + - APP_OAUTH_CLIENT_SECRET=23b898a5-63d2-4055-bbe1-54efcda37e7d |
| 144 | + - EMBEDDED_CERTIFICATE="-----BEGIN CERTIFICATE-----\nMIICrDCCAhWgAwIBAgIUBQ88qYAqQ1+I+ISsaIgYPqbya9QwDQYJKoZIhvcNAQEL\nBQAwaDELMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9u\nZG9uMREwDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNV\nBAMMCE1vZHVzYm94MB4XDTIwMDkzMDE3MDYwNloXDTIxMDkzMDE3MDYwNlowaDEL\nMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMREw\nDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNVBAMMCE1v\nZHVzYm94MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDda1T6cyWogfG/xlUb\n3+gWZI0jsnlSGbf3PF89NCgS+n6HUJ0A2Ezmu/n9Gfkm8Rjyst914Vq9ebsueXHI\nc+Ad76+q3MASF1hRUTfnvH/v6rDguPvI6Jb/M9jGn5b2hglcg3B9Y7Tgv70bcV7o\nCweP68CPbIrTWjR9gyjmSHfYhwIDAQABo1MwUTAdBgNVHQ4EFgQUEE+og3aDjUzC\nywQo45Fhjp5S9EowHwYDVR0jBBgwFoAUEE+og3aDjUzCywQo45Fhjp5S9EowDwYD\nVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQC2a7sxisCTQa9oRGMZRmJs\nFMZjia126qlRYm6ljjM2wWlqIBdxjzLhLJbAiWMyzGKTZdMOG51Ujc+NapKRLS4K\nHVnzcbtgRNq6GZk5C1L8BEzR6NxU/CdOkm2Vx811CTOT/YijpjtjF01K1aIZE+z8\nmdzyVY9ZybXqbNclLU7rwA==\n-----END CERTIFICATE-----" |
| 145 | + tty: true |
| 146 | + stdin_open: true |
| 147 | + ports: |
| 148 | + - "9091:5061" |
| 149 | + restart: always |
| 150 | + depends_on: |
| 151 | + - connection-manager-db |
| 152 | + connection-manager-ui: |
| 153 | + image: modusbox/connection-manager-ui:1.6.9 |
| 154 | + hostname: connection-manager-ui |
| 155 | + environment: |
| 156 | + - API_BASE_URL=http://localhost:9091 |
| 157 | + - AUTH_ENABLED="TRUE" |
| 158 | + tty: true |
| 159 | + stdin_open: true |
| 160 | + ports: |
| 161 | + - "9090:8080" |
| 162 | + restart: always |
| 163 | + |
| 164 | + |
| 165 | +networks: |
| 166 | + default: |
| 167 | + name: mojaloop-testing-toolkit |
0 commit comments