This is an automated email from the ASF dual-hosted git repository. angeh pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/fineract-cn-docker-compose.git
commit 610e8c5d9509f2e89b47c1a614adefa1d766b069 Author: Juhan Aasaru <[email protected]> AuthorDate: Wed Oct 2 14:55:32 2019 +0300 add all possible configuration parameters to docker-compose.yml script. update readme --- README.md | 25 ++++++++++++++----------- docker-compose.yml | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- env_variables | 1 + 3 files changed, 65 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 847739e..c4b3cfd 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,13 @@ This project contains Docker Compose Scripts for running Fineract CN especially - Docker - Docker-compose -## Deploy and provision Fineract CN +# Deploy and provision Fineract CN -You can either deploy and provision Fineract CN automatically using bash scripts or manually using postman. +You can either deploy and provision Fineract CN automatically using bash scripts or manually using Postman. +Postman is the preferred way as it is more tested and this way you understand better what is happening. +Also this way you don't have to start all the micro services (helpful if your workstation is lacking resources). -## 1. Deploy Fineract automtically using bash scripts +# 1. Deploy and provision Fineract automtically using bash scripts - To start up all the Fineract CN services run: @@ -63,14 +65,11 @@ Running all services together consumes a lot of memory. So you can start a subse For example you could start the following additional micro services and an fims-web-app: ``` -docker-compose up rhythm-ms identity-ms customer-ms accounting-ms deposit-ms portfolio-ms fims-web-app +docker-compose up rhythm-ms identity-ms customer-ms accounting-ms deposit-ms portfolio-ms office-ms fims-web-app ``` If you want you can add other micro services (listed in docker-compose.yml) to the list. - -# Provision - ## Provisioning the Micro Services Using Postman We provide a postman-request-collection as well as a postman-environment that defines variables that are used to hold values received in responses. @@ -116,7 +115,7 @@ docker-compose logs provisioner-ms 2. Reach out to [mailing list](https://lists.apache.org/[email protected]) with the relevant details -### Sign-in using fims-web-app +# Sign-in using fims-web-app Prerequisites: Fineract-CN has been successfully provisioned by following the instructions in the previous sections User ```mifos``` is created in the the last two requests (user creation and role assignment) in the postman request-list. @@ -133,7 +132,7 @@ password: password ``` ### Use the Postman scripts when running locally -Postman scripts use service names (postgres, provisioner-ms, etc) when refering to different services. +Postman scripts use service names (postgres, provisioner-ms, etc) when referring to different services. If you want to use the same Postman scripts when running micro services locally then add into your hosts (/etc/hosts in Unix) file: ``` @@ -159,6 +158,8 @@ If you want to use the same Postman scripts when running micro services locally ### How to reset everything and start from scratch +Run ./shut-down-and-reset.sh or + ``` cd external-tools docker-compose stop @@ -168,10 +169,12 @@ docker volume rm external_tools_postgres-volume docker-compose up ``` +### Automating Postman scripts + +You can use [Newman](https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/) to run Postman scripts from command line. -## TODO -- Provision the web services using a script +## TODO - Adjust scripts for Kubernetes There are some scripts in [https://github.com/openMF/fineract-cn-containers](https://github.com/openMF/fineract-cn-containers) diff --git a/docker-compose.yml b/docker-compose.yml index a1e4bb5..cb72194 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,6 +16,8 @@ services: eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2020 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.initialclientid: ${SYSTEM_INITIAL_CLIENT_ID} system.privateKey.exponent: ${PRIVATE_KEY_EXPONENT} @@ -39,6 +41,10 @@ services: ports: - "2021:2021" environment: + bonecp.partitionCount: 1 + bonecp.maxConnectionsPerPartition: 4 + bonecp.minConnectionsPerPartition: 1 + bonecp.acquireIncrement: 1 activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} cassandra.cluster.pwd: ${CASSANDRA_CLUSTER_PASSWORD} cassandra.cluster.user: ${CASSANDRA_CLUSTER_USER} @@ -46,8 +52,11 @@ services: cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} + identity.token.refresh.secureCookie: "false" # demoserver postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2021 system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} @@ -69,15 +78,19 @@ services: - "2022:2022" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} + rhythm.beatCheckRate: 600000 + rhythm.user: ${SCHEDULER_USER_NAME} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2022 system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} - rhythm.beatCheckRate: 600000 deploy: replicas: 1 restart_policy: @@ -85,7 +98,7 @@ services: networks: external_tools_default: fineract: - ipv4_address: ${RHYTHM_IP} + ipv4_address: ${RHYTHM_IP} office-ms: image: apache/fineract-cn-office:latest @@ -93,11 +106,14 @@ services: - "2023:2023" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2023 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -115,12 +131,16 @@ services: - "2024:2024" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2024 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat + system.initialclientid: ${SYSTEM_INITIAL_CLIENT_ID} system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} @@ -135,11 +155,14 @@ services: image: apache/fineract-cn-accounting:latest environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2025 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -155,6 +178,7 @@ services: - "2026:2026" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} @@ -162,6 +186,8 @@ services: custom.postgresql.user: ${POSTGRESQL_USER} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2026 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -177,11 +203,14 @@ services: - "2027:2027" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2027 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -197,11 +226,14 @@ services: - "2028:2028" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2028 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -217,11 +249,14 @@ services: - "2029:2029" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2029 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -237,11 +272,14 @@ services: - "2030:2030" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2030 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -257,11 +295,14 @@ services: - "2031:2031" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2031 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -277,11 +318,14 @@ services: - "2032:2032" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2032 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} @@ -294,14 +338,17 @@ services: notifications-ms: image: apache/fineract-cn-notifications:latest ports: - - "2033:2033" + - "2033:2033" environment: activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.clusterName: ${CASSANDRA_CLUSTER_NAME} cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} postgresql.host: ${POSTGRESQL_HOST} ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + server.max-http-header-size: ${SERVER_MAX_HTTP_HEADER_SIZE} + server.port: 2033 spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} diff --git a/env_variables b/env_variables index 12b167a..b17564f 100644 --- a/env_variables +++ b/env_variables @@ -13,6 +13,7 @@ POSTGRESQL_PORT=5432 POSTGRESQL_USER=postgres RIBBON_EUREKA_SERVER=eureka:9090 SYSTEM_INITIAL_CLIENT_ID=service-runner +SCHEDULER_USER_NAME=imhotep FIMS_WEB_APP_IP=172.16.238.19 PROVISIONER_IP=172.16.238.20 IDENTITY_IP=172.16.238.21
