You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@fineract.apache.org by Isaac Kamga <is...@mifos.org> on 2019/03/07 00:37:16 UTC

Re: Fineract CN Demo server setup

Hello fineracters,

+Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
<co...@gmail.com>

Is there any progress on this front ?

Most front-end projects (from last year's GSoC students and other
contributors) need this public demo-server in order to do rigorous testing.

At Your Service,
Isaac Kamga.

On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
cheetah@monkeysintown.com> wrote:

> Great, Courage! I'll have a look at this.
>
> On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <co...@gmail.com>
> wrote:
>
> > Hi Alek,
> >
> > I have migrated the Docker files to their respective Fineract
> repositories.
> > Here are draft PRs for three microservices. Please review it and I will
> > appreciate your feedback on any updates:
> > https://github.com/apache/fineract-cn-identity/pull/8
> > https://github.com/apache/fineract-cn-office/pull/8
> > https://github.com/apache/fineract-cn-customer/pull/9
> >
> > You could review already built docker images on
> > https://cloud.docker.com/u/anh3h/repository/list
> > It's just a rough sample though.
> >
> > In the main time, I am updating the Docker-compose file so it spins up a
> > swarm cluster.
> >
> > Thanks,
> > Courage.
> >
> > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <co...@gmail.com>
> > wrote:
> >
> >> Hi Alek,
> >>
> >> I think we can start with that.
> >> We can connect Docker Hub-Jenkins-GitHub.
> >> If Fineract can't use Jenkins at the moment, then
> >> we can connect GitHub directly to Docker Hub.
> >>
> >> Thanks,
> >> Courage
> >>
> >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> >> cheetah@monkeysintown.com> wrote:
> >>
> >>> Hi Courage,
> >>>
> >>> ... would be great if you could help out... especially with your
> >>> knowledge
> >>> about Docker.
> >>>
> >>> Preparing the Git repositories should be fairly easy... another nice
> >>> thing
> >>> to have: some kind of CI server to build and push images to Docker hub;
> >>> not
> >>> sure if Fineract is currently using Jenkins at Apache... in any case
> not
> >>> a
> >>> big thing... setting up things with Travis or similar is not a big
> deal.
> >>>
> >>> Anything else you can think of?
> >>>
> >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <co...@gmail.com>
> >>> wrote:
> >>>
> >>> > Hi Aleksandar,
> >>> >
> >>> > I can work with you on migrating the Fineract services from Docker
> >>> compose
> >>> > to Docker Swarm.
> >>> > Then pushing the Fineract images to Docker Hub so it's easily
> >>> accessible.
> >>> >
> >>> > I think that will require Ed to create a Docker Hub account for
> >>> > Mifos/Fineract.
> >>> >
> >>> > Thanks,
> >>> > Courage.
> >>> >
> >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> >>> > cheetah@monkeysintown.com> wrote:
> >>> >
> >>> > > Hi Juan,
> >>> > >
> >>> > > ... thanks for chiming in... and thanks for the pointer to the Git
> >>> > > repository with the Dockerfiles; that makes life already a lot
> >>> easier.
> >>> > >
> >>> > > You are right, once you have the docker-compose.yml files lined up
> >>> it's
> >>> > not
> >>> > > a big stretch to setup a Swarm cluster. After running such a
> cluster
> >>> for
> >>> > a
> >>> > > client of mine I just want to add:
> >>> > >
> >>> > > - a Swarm cluster with less than 3 nodes will not run very stable;
> >>> I'm
> >>> > > saying this, because at the moment we have 2 servers at our
> disposal
> >>> (I
> >>> > > think)
> >>> > > - colleagues told me that Swarm cluster worked less reliable for
> them
> >>> > than
> >>> > > other solutions; I don't think for a demo system that is too much
> of
> >>> a
> >>> > > concern, but again I had one running in a production environment
> and
> >>> had
> >>> > no
> >>> > > major problems
> >>> > >
> >>> > > If you want then let's connect (aleks@apache.org) and figure out
> >>> how we
> >>> > > can
> >>> > > proceed with this... before the next GSoC season begins ;-)
> >>> > >
> >>> > > Cheers
> >>> > >
> >>> > >
> >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <aa...@gmail.com>
> >>> wrote:
> >>> > >
> >>> > > > Hi Aleks
> >>> > > >
> >>> > > > Thanks for your work on pushing the demo server to live.
> >>> > > > I have played around with the containers also and I add my
> >>> feedback and
> >>> > > > ideas.
> >>> > > >
> >>> > > > > - it would come in handy to have default Fineract CN Docker
> >>> images
> >>> > > > published on Docker Hub
> >>> > > >
> >>> > > > I think this is a way to go. If we want to promote adoption of
> >>> > > Fineract-CN
> >>> > > > then public images
> >>> > > > lower the burden to anyone to download and get going with the
> >>> project.
> >>> > > > Does the CI server already exist that could potentially build the
> >>> > images?
> >>> > > >
> >>> > > >  >  - I suggest to add a Dockerfile in every microservice Git
> >>> > repository
> >>> > > > (e.
> >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> >>> fineract-cn-payroll)
> >>> > > and
> >>> > > > let a
> >>> > > >  >   CI server build and publish Docker images of these
> >>> > > >
> >>> > > > Yes. Most of the Dockerfiles already exist here
> >>> > > > https://github.com/openMF/fineract-cn-containers
> >>> > > > But they logically belong to the application's own code base so I
> >>> see
> >>> > no
> >>> > > > harm in adding all
> >>> > > > Dockerfiles to the app's own repository.
> >>> > > >
> >>> > > >   - I am assuming that we **don't** want to go all the way to
> >>> setup a
> >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is to just
> >>> have a
> >>> > > set
> >>> > > >
> >>> > > > If we plan to operate with docker-compose already (and run in two
> >>> > > servers)
> >>> > > > then I, in my opinion, it wouldn't be much overhead to create a
> >>> Swarm
> >>> > > > cluster.
> >>> > > > If I look at the instructions (
> >>> > > https://docs.docker.com/get-started/part4/)
> >>> > > > it doesn't seem like a lot of work.
> >>> > > > Also if something happens then Swarm can detect and relaunch
> >>> > containers.
> >>> > > > But I'm no system administrator myself so I might be mistaken in
> >>> terms
> >>> > of
> >>> > > > how much work it requires.
> >>> > > >
> >>> > > > > - to avoid code changes or Docker image rebuilds we should
> >>> introduce
> >>> > > > >   environment variables in the application.yml files of these
> >>> > > > microservice
> >>> > > > >   projects; e. g.:
> >>> > > > > cassandra:
> >>> > > > >   clusterName: staging_cluster
> >>> > > >  /---/
> >>> > > > > ... should look something like this:
> >>> > > > > cassandra:
> >>> > > > >   clusterName:
> >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> >>> > > > /---/
> >>> > > >
> >>> > > > I think there is no need to change application.yml files.
> >>> > > > In docker-compose.yml you can overwrite any application.yml
> >>> property in
> >>> > > > "environment" section like this:
> >>> > > >
> >>> > > >    environment:
> >>> > > >       -
> >>> > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> >>> > > >
> >>> > > > Juhan
> >>> > > >
> >>> > > >
> >>> > > >
> >>> > > > Kontakt Aleksandar Vidakovic (<ch...@monkeysintown.com>)
> >>> kirjutas
> >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> >>> > > >
> >>> > > > > Hi everyone,
> >>> > > > >
> >>> > > > > ... hope you all enjoyed the holidays and had a good start into
> >>> the
> >>> > new
> >>> > > > > year :-)
> >>> > > > >
> >>> > > > > I have to appologize for my radio silence concerning the demo
> >>> server,
> >>> > > > but I
> >>> > > > > got a bit steam rolled by work in the last 6 months.
> >>> > > > >
> >>> > > > > Anyway, I just wanted to get this effort going again and would
> >>> like
> >>> > to
> >>> > > > > discuss it with anyone interested.
> >>> > > > >
> >>> > > > > The current status:
> >>> > > > >
> >>> > > > >    - we have 2 (quite big) servers provided by the Apache
> >>> Foundation
> >>> > to
> >>> > > > run
> >>> > > > >    the demo setup
> >>> > > > >    - initially I tried to get it running on one, but was not
> >>> enough
> >>> > > (even
> >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> >>> > > > >    - I've used the demo server module with some minor
> >>> modifications
> >>> > to
> >>> > > > turn
> >>> > > > >    off non-essential components (thanks Myrle)
> >>> > > > >
> >>> > > > > Trying all of this took quite some time... even on the beefy
> >>> machine
> >>> > > from
> >>> > > > > Apache it took (as far as I remember) 30-40min until the demo
> >>> server
> >>> > > > > startup would ultimately fail.
> >>> > > > >
> >>> > > > > Instead of going down that route again I'd like to propose a
> >>> > different
> >>> > > > > strategy:
> >>> > > > >
> >>> > > > >    - I am assuming that we **don't** want to go all the way to
> >>> setup
> >>> > a
> >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the goal is to
> >>> just
> >>> > > have
> >>> > > > a
> >>> > > > > set
> >>> > > > >    of docker-compose.yml files to start the system
> >>> > > > >    - it would come in handy to have default Fineract CN Docker
> >>> images
> >>> > > > >    published on Docker Hub
> >>> > > > >    - I suggest to add a Dockerfile in every microservice Git
> >>> > repository
> >>> > > > (e.
> >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> >>> fineract-cn-payroll)
> >>> > > and
> >>> > > > > let a
> >>> > > > >    CI server build and publish Docker images of these
> >>> > > > >    - to avoid code changes or Docker image rebuilds we should
> >>> > introduce
> >>> > > > >    environment variables in the application.yml files of these
> >>> > > > microservice
> >>> > > > >    projects; e. g.:
> >>> > > > >
> >>> > > > > [code]
> >>> > > > > ...
> >>> > > > > cassandra:
> >>> > > > >   clusterName: staging_cluster
> >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
> >>> > > > >   keyspace: seshat
> >>> > > > >   cl:
> >>> > > > >     read: LOCAL_QUORUM
> >>> > > > >     write: LOCAL_QUORUM
> >>> > > > >     delete: LOCAL_QUORUM
> >>> > > > > ...
> >>> > > > > [/code]
> >>> > > > >
> >>> > > > > ... should look something like this:
> >>> > > > >
> >>> > > > > [code]
> >>> > > > > ...
> >>> > > > > cassandra:
> >>> > > > >   clusterName:
> >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> >>> > > > >   contactPoints:
> ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> >>> > > > >   keyspace: ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> >>> > > > >   cl:
> >>> > > > >     read: LOCAL_QUORUM
> >>> > > > >     write: LOCAL_QUORUM
> >>> > > > >     delete: LOCAL_QUORUM
> >>> > > > > ...
> >>> > > > > [/config]
> >>> > > > >
> >>> > > > >    - with the above changes we could then define
> >>> docker-compose.yml
> >>> > > files
> >>> > > > >    like this (pseudo file for customer microservice):
> >>> > > > >
> >>> > > > > [code]
> >>> > > > > version: '3.6'
> >>> > > > >
> >>> > > > > services:
> >>> > > > >   customer:
> >>> > > > >     image:
> >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> >>> > > > >     depends_on:
> >>> > > > >       - mongo
> >>> > > > >     env_file:
> >>> > > > >       - ./customer.env
> >>> > > > >     ports:
> >>> > > > >       - "10000:10000"
> >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> >>> > > > > -Dlogging.config=./logback.xml -jar
> >>> -Djava.net.preferIPv4Stack=true
> >>> > > > > fineract-cn-customer.jar"
> >>> > > > > [/code]
> >>> > > > >
> >>> > > > > ... and the customer.env file would contain something like
> this:
> >>> > > > >
> >>> > > > > [code]
> >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> >>> > > > >
> >>> > > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> >>> > > > > [/code]
> >>> > > > >
> >>> > > > >    - we would provide templates for those env files (e. g.
> >>> > > > >    "customer.env.template"); custom configurations (e. g.
> >>> > > "customer.env")
> >>> > > > >    should not be checked into Git
> >>> > > > >    - if no environment variables are provided then the defaults
> >>> in
> >>> > the
> >>> > > > >    application.yml config files kick in with reasonable values
> >>> for a
> >>> > > > local
> >>> > > > > dev
> >>> > > > >    machine deployment (given the required resources unlikely
> for
> >>> most
> >>> > > > devs)
> >>> > > > >
> >>> > > > >
> >>> > > > > Advantages:
> >>> > > > >
> >>> > > > >    - ready to consume Fineract CN Docker images
> >>> > > > >    - no lengthy builds
> >>> > > > >    - no re-build (Gradle, Docker) for configuration changes
> >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes) setup
> >>> > > > >    - the Docker images could still be used as the basic
> building
> >>> > blocks
> >>> > > > of
> >>> > > > >    more complex architectures (Kubernetes)
> >>> > > > >    - every service can be started/stopped separately which
> makes
> >>> > life a
> >>> > > > lot
> >>> > > > >    easier when we have to figure out the right configuration
> for
> >>> the
> >>> > > demo
> >>> > > > >    setup (I guess it would make it also easier for others that
> >>> would
> >>> > > like
> >>> > > > > to
> >>> > > > >    setup their own environments)
> >>> > > > >
> >>> > > > > I am using most (if not all) of the required bits and pieces
> for
> >>> this
> >>> > > > setup
> >>> > > > > on a daily basis and I think it should be not too complicated
> to
> >>> get
> >>> > > this
> >>> > > > > working. And it would not interfere (too much) with the
> existing
> >>> Git
> >>> > > > > repositories.
> >>> > > > >
> >>> > > > > Please let me know what you think...
> >>> > > > >
> >>> > > > > Cheers,
> >>> > > > >
> >>> > > > > Aleks
> >>> > > > >
> >>> > > >
> >>> > >
> >>> >
> >>>
> >>
>

Re: Fineract CN Demo server setup

Posted by Courage Angeh <co...@gmail.com>.
You have a point Yannick.

I also think Juhan should connect the Travis build to Mifos's docker hub
account for the Fineract CN images.
But only for the existing docker files. I am still working on a way to
provision the RSA keys in a secure and scalable manner so I think some code
might change at the level of the Docker files.

Victor, Patrick, Ed and I are working on getting an intern for the
containerization project. As much as there are beginner issues for
Fineract, I am not sure there are any for the Fineract CN and the
containerization project. I am a little concern about the learning slope
for a new intern entering the Fineract CN and containerization project, so
I am trying to leave some getting starters for him/her.

P.S: the is also testing the complete pipeline; from the Travis build and
publish, docker build and finally updating the (Docker / Kubernetes)
deployment.

Regards,
Courage.

On Mon, Apr 22, 2019 at 11:14 AM Awasum Yannick <ya...@gmail.com>
wrote:

> If Juhan wants to do it now, then maybe we should let him. There is always
> going to be beginner work to give any new contributor I think.
>
> Juhan cannot be waiting for an intern we have not chosen when he could do
> the work today.
>
> What do you think?
>
> On Mon, Apr 22, 2019, 15:04 Courage Angeh <co...@gmail.com> wrote:
>
> > Hi Juhan.
> >
> > Thats a good idea.
> >
> > Adding the remaining Docker scripts was added as part of the work for the
> > GSoC 2019 intern who is supposed to work on the containerization project.
> > He/she can work on updating the docker scripts to download the jar files
> > from the actifactory too.
> >
> > I think it will be a good idea and learning experience for a new dev to
> > join the fineract cn developement and deployment project.
> >
> > Nice work by the way.
> >
> > Regards,
> > Courage.
> >
> > On Mon, Apr 22, 2019, 5:40 AM Juhan Aasaru <aa...@gmail.com> wrote:
> >
> > > Hi!
> > >
> > > I have managed to set up Travis-CI and Artifactory to build and serve
> > > fineract-cn-* artifacts, these can be found here:
> > > https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
> > > It will take a few days before I can create pull requests (Vishwas is
> > > helping me to get required permissions / setup on travis-ci).
> > > But since the artifacts (built by travis from my forks -
> > > https://github.com/aasaru/fineract-cn-*) are already there in the
> > > Artifactory I
> > > already wanted to raise the topic how to proceed with Dockerfiles.
> > >
> > > As Courage wrote there are Dockerfiles created for some repos
> (identity,
> > > office customer).
> > > My plan would be to modify these Dockerfiles (and create missing ones)
> to
> > > use jar-s from the public repo:
> > >
> > > So for example identity Dockerfile (
> > > https://github.com/apache/fineract-cn-identity/blob/develop/Dockerfile
> )
> > > currently has:
> > >
> > > COPY identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar .
> > >
> > > I would switch it to download the jar from the Artifactory repository
> by
> > > default like this:
> > >
> > > RUN wget -O identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar
> > >
> > >
> >
> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/identity/service-boot/0.1.0-BUILD-SNAPSHOT/service-boot-0.1.0-BUILD-SNAPSHOT.jar
> > >
> > > Looking forward for your feedback.
> > >
> > > Juhan
> > >
> > > Kontakt Ed Cable (<ed...@mifos.org>) kirjutas kuupäeval E, 8. aprill
> > > 2019
> > > kell 17:26:
> > >
> > > > Awasum and Courage, thank you so much for volunteering to take on the
> > > > remaining effort. It's been a long time coming getting this
> > > infrastructure
> > > > up after Apache so graciously donated the two VMs.
> > > >
> > > > Awasum, can you request access on the ticket on JIRA where we were
> > > > allocated the VMs?
> > > >
> > > > Thanks,
> > > >
> > > > Ed
> > > >
> > > > On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com>
> > wrote:
> > > >
> > > > > Hi Awasum,
> > > > >
> > > > > I will be happy to help.
> > > > >
> > > > > Regards,
> > > > > Courage.
> > > > >
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > > >
> > > > > Virus-free.
> > > > > www.avast.com
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > > >
> > > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > > >
> > > > > On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org>
> > > > wrote:
> > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > How do I access the VMs provided by Infra for setting up a demo
> > > server
> > > > > for
> > > > > > Fineract CN? Are there 2 of them?
> > > > > >
> > > > > > Courage, will you like to work with me run FCN using Docker
> Compose
> > > > just
> > > > > so
> > > > > > the demo server gets up and running? It seems using Docker Swarm
> > will
> > > > > take
> > > > > > more time than we want and I think Aleks is very busy at this
> > moment.
> > > > > >
> > > > > > This is important for the community.
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <
> > isaac.kamga@mifos.org>
> > > > > > wrote:
> > > > > >
> > > > > > > Hey David,
> > > > > > >
> > > > > > > Did you fork the Fineract CN repos before running
> > initial-setup.sh
> > > > with
> > > > > > > your Github handle OR did you just use handle 'apache' ? Try
> > using
> > > > the
> > > > > > > handle 'apache' instead.
> > > > > > >
> > > > > > > Also endeavor to specify the errors you face by sharing using a
> > > > pasting
> > > > > > > service like pastebin.com
> > > > > > >
> > > > > > > Cheers,
> > > > > > > Isaac Kamga.
> > > > > > >
> > > > > > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > > > > > wiretoothtech@gmail.com> wrote:
> > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org>
> > > wrote:
> > > > > > > > > Hello fineracters,
> > > > > > > > >
> > > > > > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> ,
> +courage
> > > > angeh
> > > > > > > > > <co...@gmail.com>
> > > > > > > > >
> > > > > > > > > Is there any progress on this front ?
> > > > > > > > >
> > > > > > > > > Most front-end projects (from last year's GSoC students and
> > > other
> > > > > > > > > contributors) need this public demo-server in order to do
> > > > rigorous
> > > > > > > > testing.
> > > > > > > > >
> > > > > > > > > At Your Service,
> > > > > > > > > Isaac Kamga.
> > > > > > > > >
> > > > > > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > > > > > cheetah@monkeysintown.com> wrote:
> > > > > > > > >
> > > > > > > > > > Great, Courage! I'll have a look at this.
> > > > > > > > > >
> > > > > > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > > > > > courageangeh@gmail.com>
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi Alek,
> > > > > > > > > > >
> > > > > > > > > > > I have migrated the Docker files to their respective
> > > Fineract
> > > > > > > > > > repositories.
> > > > > > > > > > > Here are draft PRs for three microservices. Please
> review
> > > it
> > > > > and
> > > > > > I
> > > > > > > > will
> > > > > > > > > > > appreciate your feedback on any updates:
> > > > > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > > > > >
> > > > > > > > > > > You could review already built docker images on
> > > > > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > > > > It's just a rough sample though.
> > > > > > > > > > >
> > > > > > > > > > > In the main time, I am updating the Docker-compose file
> > so
> > > it
> > > > > > spins
> > > > > > > > up a
> > > > > > > > > > > swarm cluster.
> > > > > > > > > > >
> > > > > > > > > > > Thanks,
> > > > > > > > > > > Courage.
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > > > > courageangeh@gmail.com
> > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > >> Hi Alek,
> > > > > > > > > > >>
> > > > > > > > > > >> I think we can start with that.
> > > > > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > > > > >>
> > > > > > > > > > >> Thanks,
> > > > > > > > > > >> Courage
> > > > > > > > > > >>
> > > > > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > > > > > >>
> > > > > > > > > > >>> Hi Courage,
> > > > > > > > > > >>>
> > > > > > > > > > >>> ... would be great if you could help out...
> especially
> > > with
> > > > > > your
> > > > > > > > > > >>> knowledge
> > > > > > > > > > >>> about Docker.
> > > > > > > > > > >>>
> > > > > > > > > > >>> Preparing the Git repositories should be fairly
> easy...
> > > > > another
> > > > > > > > nice
> > > > > > > > > > >>> thing
> > > > > > > > > > >>> to have: some kind of CI server to build and push
> > images
> > > to
> > > > > > > Docker
> > > > > > > > hub;
> > > > > > > > > > >>> not
> > > > > > > > > > >>> sure if Fineract is currently using Jenkins at
> > Apache...
> > > in
> > > > > any
> > > > > > > > case
> > > > > > > > > > not
> > > > > > > > > > >>> a
> > > > > > > > > > >>> big thing... setting up things with Travis or similar
> > is
> > > > not
> > > > > a
> > > > > > > big
> > > > > > > > > > deal.
> > > > > > > > > > >>>
> > > > > > > > > > >>> Anything else you can think of?
> > > > > > > > > > >>>
> > > > > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > > > > courageangeh@gmail.com>
> > > > > > > > > > >>> wrote:
> > > > > > > > > > >>>
> > > > > > > > > > >>> > Hi Aleksandar,
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > I can work with you on migrating the Fineract
> > services
> > > > from
> > > > > > > > Docker
> > > > > > > > > > >>> compose
> > > > > > > > > > >>> > to Docker Swarm.
> > > > > > > > > > >>> > Then pushing the Fineract images to Docker Hub so
> > it's
> > > > > easily
> > > > > > > > > > >>> accessible.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > I think that will require Ed to create a Docker Hub
> > > > account
> > > > > > for
> > > > > > > > > > >>> > Mifos/Fineract.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > Thanks,
> > > > > > > > > > >>> > Courage.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar
> Vidakovic
> > <
> > > > > > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > > Hi Juan,
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > ... thanks for chiming in... and thanks for the
> > > pointer
> > > > > to
> > > > > > > the
> > > > > > > > Git
> > > > > > > > > > >>> > > repository with the Dockerfiles; that makes life
> > > > already
> > > > > a
> > > > > > > lot
> > > > > > > > > > >>> easier.
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > You are right, once you have the
> docker-compose.yml
> > > > files
> > > > > > > > lined up
> > > > > > > > > > >>> it's
> > > > > > > > > > >>> > not
> > > > > > > > > > >>> > > a big stretch to setup a Swarm cluster. After
> > running
> > > > > such
> > > > > > a
> > > > > > > > > > cluster
> > > > > > > > > > >>> for
> > > > > > > > > > >>> > a
> > > > > > > > > > >>> > > client of mine I just want to add:
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not
> > run
> > > > > very
> > > > > > > > stable;
> > > > > > > > > > >>> I'm
> > > > > > > > > > >>> > > saying this, because at the moment we have 2
> > servers
> > > at
> > > > > our
> > > > > > > > > > disposal
> > > > > > > > > > >>> (I
> > > > > > > > > > >>> > > think)
> > > > > > > > > > >>> > > - colleagues told me that Swarm cluster worked
> less
> > > > > > reliable
> > > > > > > > for
> > > > > > > > > > them
> > > > > > > > > > >>> > than
> > > > > > > > > > >>> > > other solutions; I don't think for a demo system
> > that
> > > > is
> > > > > > too
> > > > > > > > much
> > > > > > > > > > of
> > > > > > > > > > >>> a
> > > > > > > > > > >>> > > concern, but again I had one running in a
> > production
> > > > > > > > environment
> > > > > > > > > > and
> > > > > > > > > > >>> had
> > > > > > > > > > >>> > no
> > > > > > > > > > >>> > > major problems
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > If you want then let's connect (aleks@apache.org
> )
> > > and
> > > > > > figure
> > > > > > > > out
> > > > > > > > > > >>> how we
> > > > > > > > > > >>> > > can
> > > > > > > > > > >>> > > proceed with this... before the next GSoC season
> > > begins
> > > > > ;-)
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > Cheers
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > > > > > aasaru@gmail.com
> > > > > > > > >
> > > > > > > > > > >>> wrote:
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > > Hi Aleks
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Thanks for your work on pushing the demo server
> > to
> > > > > live.
> > > > > > > > > > >>> > > > I have played around with the containers also
> > and I
> > > > add
> > > > > > my
> > > > > > > > > > >>> feedback and
> > > > > > > > > > >>> > > > ideas.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > - it would come in handy to have default
> > Fineract
> > > > CN
> > > > > > > Docker
> > > > > > > > > > >>> images
> > > > > > > > > > >>> > > > published on Docker Hub
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > I think this is a way to go. If we want to
> > promote
> > > > > > adoption
> > > > > > > > of
> > > > > > > > > > >>> > > Fineract-CN
> > > > > > > > > > >>> > > > then public images
> > > > > > > > > > >>> > > > lower the burden to anyone to download and get
> > > going
> > > > > with
> > > > > > > the
> > > > > > > > > > >>> project.
> > > > > > > > > > >>> > > > Does the CI server already exist that could
> > > > potentially
> > > > > > > > build the
> > > > > > > > > > >>> > images?
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> > > > > microservice
> > > > > > > Git
> > > > > > > > > > >>> > repository
> > > > > > > > > > >>> > > > (e.
> > > > > > > > > > >>> > > >  >    g. fineract-cn-customer,
> > fineract-cn-teller,
> > > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > > >>> > > and
> > > > > > > > > > >>> > > > let a
> > > > > > > > > > >>> > > >  >   CI server build and publish Docker images
> of
> > > > these
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > > > > > >>> > > >
> https://github.com/openMF/fineract-cn-containers
> > > > > > > > > > >>> > > > But they logically belong to the application's
> > own
> > > > code
> > > > > > > base
> > > > > > > > so I
> > > > > > > > > > >>> see
> > > > > > > > > > >>> > no
> > > > > > > > > > >>> > > > harm in adding all
> > > > > > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >   - I am assuming that we **don't** want to go
> > all
> > > > the
> > > > > > way
> > > > > > > to
> > > > > > > > > > >>> setup a
> > > > > > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster;
> the
> > > goal
> > > > > is
> > > > > > to
> > > > > > > > just
> > > > > > > > > > >>> have a
> > > > > > > > > > >>> > > set
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > If we plan to operate with docker-compose
> already
> > > > (and
> > > > > > run
> > > > > > > > in two
> > > > > > > > > > >>> > > servers)
> > > > > > > > > > >>> > > > then I, in my opinion, it wouldn't be much
> > overhead
> > > > to
> > > > > > > > create a
> > > > > > > > > > >>> Swarm
> > > > > > > > > > >>> > > > cluster.
> > > > > > > > > > >>> > > > If I look at the instructions (
> > > > > > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > > > > > >>> > > > Also if something happens then Swarm can detect
> > and
> > > > > > > relaunch
> > > > > > > > > > >>> > containers.
> > > > > > > > > > >>> > > > But I'm no system administrator myself so I
> might
> > > be
> > > > > > > > mistaken in
> > > > > > > > > > >>> terms
> > > > > > > > > > >>> > of
> > > > > > > > > > >>> > > > how much work it requires.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > - to avoid code changes or Docker image
> > rebuilds
> > > we
> > > > > > > should
> > > > > > > > > > >>> introduce
> > > > > > > > > > >>> > > > >   environment variables in the
> application.yml
> > > > files
> > > > > of
> > > > > > > > these
> > > > > > > > > > >>> > > > microservice
> > > > > > > > > > >>> > > > >   projects; e. g.:
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > > >>> > > >  /---/
> > > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > > >>> > > >
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > > >>> > > > /---/
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > I think there is no need to change
> > application.yml
> > > > > files.
> > > > > > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > > > > > application.yml
> > > > > > > > > > >>> property in
> > > > > > > > > > >>> > > > "environment" section like this:
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >    environment:
> > > > > > > > > > >>> > > >       -
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Juhan
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> > > > > cheetah@monkeysintown.com
> > > > > > >)
> > > > > > > > > > >>> kirjutas
> > > > > > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > Hi everyone,
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... hope you all enjoyed the holidays and
> had a
> > > > good
> > > > > > > start
> > > > > > > > into
> > > > > > > > > > >>> the
> > > > > > > > > > >>> > new
> > > > > > > > > > >>> > > > > year :-)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > I have to appologize for my radio silence
> > > > concerning
> > > > > > the
> > > > > > > > demo
> > > > > > > > > > >>> server,
> > > > > > > > > > >>> > > > but I
> > > > > > > > > > >>> > > > > got a bit steam rolled by work in the last 6
> > > > months.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Anyway, I just wanted to get this effort
> going
> > > > again
> > > > > > and
> > > > > > > > would
> > > > > > > > > > >>> like
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > The current status:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - we have 2 (quite big) servers provided
> by
> > > the
> > > > > > Apache
> > > > > > > > > > >>> Foundation
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > run
> > > > > > > > > > >>> > > > >    the demo setup
> > > > > > > > > > >>> > > > >    - initially I tried to get it running on
> > one,
> > > > but
> > > > > > was
> > > > > > > > not
> > > > > > > > > > >>> enough
> > > > > > > > > > >>> > > (even
> > > > > > > > > > >>> > > > >    with 32GB of RAM and some swap
> configuration
> > > > > tricks)
> > > > > > > > > > >>> > > > >    - I've used the demo server module with
> some
> > > > minor
> > > > > > > > > > >>> modifications
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > turn
> > > > > > > > > > >>> > > > >    off non-essential components (thanks
> Myrle)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Trying all of this took quite some time...
> even
> > > on
> > > > > the
> > > > > > > > beefy
> > > > > > > > > > >>> machine
> > > > > > > > > > >>> > > from
> > > > > > > > > > >>> > > > > Apache it took (as far as I remember)
> 30-40min
> > > > until
> > > > > > the
> > > > > > > > demo
> > > > > > > > > > >>> server
> > > > > > > > > > >>> > > > > startup would ultimately fail.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Instead of going down that route again I'd
> like
> > > to
> > > > > > > propose
> > > > > > > > a
> > > > > > > > > > >>> > different
> > > > > > > > > > >>> > > > > strategy:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - I am assuming that we **don't** want to
> go
> > > all
> > > > > the
> > > > > > > > way to
> > > > > > > > > > >>> setup
> > > > > > > > > > >>> > a
> > > > > > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm)
> cluster;
> > > the
> > > > > > goal
> > > > > > > > is to
> > > > > > > > > > >>> just
> > > > > > > > > > >>> > > have
> > > > > > > > > > >>> > > > a
> > > > > > > > > > >>> > > > > set
> > > > > > > > > > >>> > > > >    of docker-compose.yml files to start the
> > > system
> > > > > > > > > > >>> > > > >    - it would come in handy to have default
> > > > Fineract
> > > > > CN
> > > > > > > > Docker
> > > > > > > > > > >>> images
> > > > > > > > > > >>> > > > >    published on Docker Hub
> > > > > > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > > > > > microservice
> > > > > > > > Git
> > > > > > > > > > >>> > repository
> > > > > > > > > > >>> > > > (e.
> > > > > > > > > > >>> > > > >    g. fineract-cn-customer,
> fineract-cn-teller,
> > > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > > >>> > > and
> > > > > > > > > > >>> > > > > let a
> > > > > > > > > > >>> > > > >    CI server build and publish Docker images
> of
> > > > these
> > > > > > > > > > >>> > > > >    - to avoid code changes or Docker image
> > > rebuilds
> > > > > we
> > > > > > > > should
> > > > > > > > > > >>> > introduce
> > > > > > > > > > >>> > > > >    environment variables in the
> application.yml
> > > > files
> > > > > > of
> > > > > > > > these
> > > > > > > > > > >>> > > > microservice
> > > > > > > > > > >>> > > > >    projects; e. g.:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,
> 127.0.0.2:9042
> > ,
> > > > > > > > 127.0.0.3:9042
> > > > > > > > > > >>> > > > >   keyspace: seshat
> > > > > > > > > > >>> > > > >   cl:
> > > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > > >>> > > >
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > > >>> > > > >   contactPoints:
> > > > > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
> }
> > > > > > > > > > >>> > > > >   keyspace:
> > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > > > > > >>> > > > >   cl:
> > > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > [/config]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - with the above changes we could then
> > define
> > > > > > > > > > >>> docker-compose.yml
> > > > > > > > > > >>> > > files
> > > > > > > > > > >>> > > > >    like this (pseudo file for customer
> > > > microservice):
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > version: '3.6'
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > services:
> > > > > > > > > > >>> > > > >   customer:
> > > > > > > > > > >>> > > > >     image:
> > > > > > > > > > >>> >
> > > > > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > > > > > >>> > > > >     depends_on:
> > > > > > > > > > >>> > > > >       - mongo
> > > > > > > > > > >>> > > > >     env_file:
> > > > > > > > > > >>> > > > >       - ./customer.env
> > > > > > > > > > >>> > > > >     ports:
> > > > > > > > > > >>> > > > >       - "10000:10000"
> > > > > > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> > > > > -Duser.timezone=UTC
> > > > > > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... and the customer.env file would contain
> > > > something
> > > > > > > like
> > > > > > > > > > this:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > >
> > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - we would provide templates for those env
> > > files
> > > > > (e.
> > > > > > > g.
> > > > > > > > > > >>> > > > >    "customer.env.template"); custom
> > > configurations
> > > > > (e.
> > > > > > g.
> > > > > > > > > > >>> > > "customer.env")
> > > > > > > > > > >>> > > > >    should not be checked into Git
> > > > > > > > > > >>> > > > >    - if no environment variables are provided
> > > then
> > > > > the
> > > > > > > > defaults
> > > > > > > > > > >>> in
> > > > > > > > > > >>> > the
> > > > > > > > > > >>> > > > >    application.yml config files kick in with
> > > > > reasonable
> > > > > > > > values
> > > > > > > > > > >>> for a
> > > > > > > > > > >>> > > > local
> > > > > > > > > > >>> > > > > dev
> > > > > > > > > > >>> > > > >    machine deployment (given the required
> > > resources
> > > > > > > > unlikely
> > > > > > > > > > for
> > > > > > > > > > >>> most
> > > > > > > > > > >>> > > > devs)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Advantages:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - ready to consume Fineract CN Docker
> images
> > > > > > > > > > >>> > > > >    - no lengthy builds
> > > > > > > > > > >>> > > > >    - no re-build (Gradle, Docker) for
> > > configuration
> > > > > > > changes
> > > > > > > > > > >>> > > > >    - no requirement to do cluster (Swarm,
> > > > Kubernetes)
> > > > > > > setup
> > > > > > > > > > >>> > > > >    - the Docker images could still be used as
> > the
> > > > > basic
> > > > > > > > > > building
> > > > > > > > > > >>> > blocks
> > > > > > > > > > >>> > > > of
> > > > > > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > > > > > >>> > > > >    - every service can be started/stopped
> > > > separately
> > > > > > > which
> > > > > > > > > > makes
> > > > > > > > > > >>> > life a
> > > > > > > > > > >>> > > > lot
> > > > > > > > > > >>> > > > >    easier when we have to figure out the
> right
> > > > > > > > configuration
> > > > > > > > > > for
> > > > > > > > > > >>> the
> > > > > > > > > > >>> > > demo
> > > > > > > > > > >>> > > > >    setup (I guess it would make it also
> easier
> > > for
> > > > > > others
> > > > > > > > that
> > > > > > > > > > >>> would
> > > > > > > > > > >>> > > like
> > > > > > > > > > >>> > > > > to
> > > > > > > > > > >>> > > > >    setup their own environments)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > I am using most (if not all) of the required
> > bits
> > > > and
> > > > > > > > pieces
> > > > > > > > > > for
> > > > > > > > > > >>> this
> > > > > > > > > > >>> > > > setup
> > > > > > > > > > >>> > > > > on a daily basis and I think it should be not
> > too
> > > > > > > > complicated
> > > > > > > > > > to
> > > > > > > > > > >>> get
> > > > > > > > > > >>> > > this
> > > > > > > > > > >>> > > > > working. And it would not interfere (too
> much)
> > > with
> > > > > the
> > > > > > > > > > existing
> > > > > > > > > > >>> Git
> > > > > > > > > > >>> > > > > repositories.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Please let me know what you think...
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Cheers,
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Aleks
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > > >>
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > Hi Isaac,
> > > > > > > >
> > > > > > > > I would know, if you noticed difficulties, in setup
> Fineract-CN
> > > and
> > > > > all
> > > > > > > > its module and demo-server. i am using digital Ocean,
> followed
> > > all
> > > > > the
> > > > > > > > instructions, yet had some errors in compilation using the
> > > > > > > > initial-setup.sh, also the fims-web-apps doesn't work. Could
> > you
> > > > try
> > > > > to
> > > > > > > > confirm, I need help on this.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > David Alozie
> > > > > > > > wiretoothtech@gmail.com
> > > > > > > > +234 809 944 7105
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > > >
> > > > > Virus-free.
> > > > > www.avast.com
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > > >
> > > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > > >
> > > >
> > >
> >
>

Re: Fineract CN Demo server setup

Posted by Ed Cable <ed...@mifos.org>.
I would definitely want Juhan to proceed ahead with the work he would like
to do. We can always add additional scope to the containerization project
if and when that might kick off.

+1 to Awasum's suggestion.

Ed

On Mon, Apr 22, 2019 at 8:14 AM Awasum Yannick <ya...@gmail.com>
wrote:

> If Juhan wants to do it now, then maybe we should let him. There is always
> going to be beginner work to give any new contributor I think.
>
> Juhan cannot be waiting for an intern we have not chosen when he could do
> the work today.
>
> What do you think?
>
> On Mon, Apr 22, 2019, 15:04 Courage Angeh <co...@gmail.com> wrote:
>
> > Hi Juhan.
> >
> > Thats a good idea.
> >
> > Adding the remaining Docker scripts was added as part of the work for the
> > GSoC 2019 intern who is supposed to work on the containerization project.
> > He/she can work on updating the docker scripts to download the jar files
> > from the actifactory too.
> >
> > I think it will be a good idea and learning experience for a new dev to
> > join the fineract cn developement and deployment project.
> >
> > Nice work by the way.
> >
> > Regards,
> > Courage.
> >
> > On Mon, Apr 22, 2019, 5:40 AM Juhan Aasaru <aa...@gmail.com> wrote:
> >
> > > Hi!
> > >
> > > I have managed to set up Travis-CI and Artifactory to build and serve
> > > fineract-cn-* artifacts, these can be found here:
> > > https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
> > > It will take a few days before I can create pull requests (Vishwas is
> > > helping me to get required permissions / setup on travis-ci).
> > > But since the artifacts (built by travis from my forks -
> > > https://github.com/aasaru/fineract-cn-*) are already there in the
> > > Artifactory I
> > > already wanted to raise the topic how to proceed with Dockerfiles.
> > >
> > > As Courage wrote there are Dockerfiles created for some repos
> (identity,
> > > office customer).
> > > My plan would be to modify these Dockerfiles (and create missing ones)
> to
> > > use jar-s from the public repo:
> > >
> > > So for example identity Dockerfile (
> > > https://github.com/apache/fineract-cn-identity/blob/develop/Dockerfile
> )
> > > currently has:
> > >
> > > COPY identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar .
> > >
> > > I would switch it to download the jar from the Artifactory repository
> by
> > > default like this:
> > >
> > > RUN wget -O identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar
> > >
> > >
> >
> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/identity/service-boot/0.1.0-BUILD-SNAPSHOT/service-boot-0.1.0-BUILD-SNAPSHOT.jar
> > >
> > > Looking forward for your feedback.
> > >
> > > Juhan
> > >
> > > Kontakt Ed Cable (<ed...@mifos.org>) kirjutas kuupäeval E, 8. aprill
> > > 2019
> > > kell 17:26:
> > >
> > > > Awasum and Courage, thank you so much for volunteering to take on the
> > > > remaining effort. It's been a long time coming getting this
> > > infrastructure
> > > > up after Apache so graciously donated the two VMs.
> > > >
> > > > Awasum, can you request access on the ticket on JIRA where we were
> > > > allocated the VMs?
> > > >
> > > > Thanks,
> > > >
> > > > Ed
> > > >
> > > > On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com>
> > wrote:
> > > >
> > > > > Hi Awasum,
> > > > >
> > > > > I will be happy to help.
> > > > >
> > > > > Regards,
> > > > > Courage.
> > > > >
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > > >
> > > > > Virus-free.
> > > > > www.avast.com
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > > >
> > > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > > >
> > > > > On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org>
> > > > wrote:
> > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > How do I access the VMs provided by Infra for setting up a demo
> > > server
> > > > > for
> > > > > > Fineract CN? Are there 2 of them?
> > > > > >
> > > > > > Courage, will you like to work with me run FCN using Docker
> Compose
> > > > just
> > > > > so
> > > > > > the demo server gets up and running? It seems using Docker Swarm
> > will
> > > > > take
> > > > > > more time than we want and I think Aleks is very busy at this
> > moment.
> > > > > >
> > > > > > This is important for the community.
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <
> > isaac.kamga@mifos.org>
> > > > > > wrote:
> > > > > >
> > > > > > > Hey David,
> > > > > > >
> > > > > > > Did you fork the Fineract CN repos before running
> > initial-setup.sh
> > > > with
> > > > > > > your Github handle OR did you just use handle 'apache' ? Try
> > using
> > > > the
> > > > > > > handle 'apache' instead.
> > > > > > >
> > > > > > > Also endeavor to specify the errors you face by sharing using a
> > > > pasting
> > > > > > > service like pastebin.com
> > > > > > >
> > > > > > > Cheers,
> > > > > > > Isaac Kamga.
> > > > > > >
> > > > > > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > > > > > wiretoothtech@gmail.com> wrote:
> > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org>
> > > wrote:
> > > > > > > > > Hello fineracters,
> > > > > > > > >
> > > > > > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> ,
> +courage
> > > > angeh
> > > > > > > > > <co...@gmail.com>
> > > > > > > > >
> > > > > > > > > Is there any progress on this front ?
> > > > > > > > >
> > > > > > > > > Most front-end projects (from last year's GSoC students and
> > > other
> > > > > > > > > contributors) need this public demo-server in order to do
> > > > rigorous
> > > > > > > > testing.
> > > > > > > > >
> > > > > > > > > At Your Service,
> > > > > > > > > Isaac Kamga.
> > > > > > > > >
> > > > > > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > > > > > cheetah@monkeysintown.com> wrote:
> > > > > > > > >
> > > > > > > > > > Great, Courage! I'll have a look at this.
> > > > > > > > > >
> > > > > > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > > > > > courageangeh@gmail.com>
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi Alek,
> > > > > > > > > > >
> > > > > > > > > > > I have migrated the Docker files to their respective
> > > Fineract
> > > > > > > > > > repositories.
> > > > > > > > > > > Here are draft PRs for three microservices. Please
> review
> > > it
> > > > > and
> > > > > > I
> > > > > > > > will
> > > > > > > > > > > appreciate your feedback on any updates:
> > > > > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > > > > >
> > > > > > > > > > > You could review already built docker images on
> > > > > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > > > > It's just a rough sample though.
> > > > > > > > > > >
> > > > > > > > > > > In the main time, I am updating the Docker-compose file
> > so
> > > it
> > > > > > spins
> > > > > > > > up a
> > > > > > > > > > > swarm cluster.
> > > > > > > > > > >
> > > > > > > > > > > Thanks,
> > > > > > > > > > > Courage.
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > > > > courageangeh@gmail.com
> > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > >> Hi Alek,
> > > > > > > > > > >>
> > > > > > > > > > >> I think we can start with that.
> > > > > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > > > > >>
> > > > > > > > > > >> Thanks,
> > > > > > > > > > >> Courage
> > > > > > > > > > >>
> > > > > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > > > > > >>
> > > > > > > > > > >>> Hi Courage,
> > > > > > > > > > >>>
> > > > > > > > > > >>> ... would be great if you could help out...
> especially
> > > with
> > > > > > your
> > > > > > > > > > >>> knowledge
> > > > > > > > > > >>> about Docker.
> > > > > > > > > > >>>
> > > > > > > > > > >>> Preparing the Git repositories should be fairly
> easy...
> > > > > another
> > > > > > > > nice
> > > > > > > > > > >>> thing
> > > > > > > > > > >>> to have: some kind of CI server to build and push
> > images
> > > to
> > > > > > > Docker
> > > > > > > > hub;
> > > > > > > > > > >>> not
> > > > > > > > > > >>> sure if Fineract is currently using Jenkins at
> > Apache...
> > > in
> > > > > any
> > > > > > > > case
> > > > > > > > > > not
> > > > > > > > > > >>> a
> > > > > > > > > > >>> big thing... setting up things with Travis or similar
> > is
> > > > not
> > > > > a
> > > > > > > big
> > > > > > > > > > deal.
> > > > > > > > > > >>>
> > > > > > > > > > >>> Anything else you can think of?
> > > > > > > > > > >>>
> > > > > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > > > > courageangeh@gmail.com>
> > > > > > > > > > >>> wrote:
> > > > > > > > > > >>>
> > > > > > > > > > >>> > Hi Aleksandar,
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > I can work with you on migrating the Fineract
> > services
> > > > from
> > > > > > > > Docker
> > > > > > > > > > >>> compose
> > > > > > > > > > >>> > to Docker Swarm.
> > > > > > > > > > >>> > Then pushing the Fineract images to Docker Hub so
> > it's
> > > > > easily
> > > > > > > > > > >>> accessible.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > I think that will require Ed to create a Docker Hub
> > > > account
> > > > > > for
> > > > > > > > > > >>> > Mifos/Fineract.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > Thanks,
> > > > > > > > > > >>> > Courage.
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar
> Vidakovic
> > <
> > > > > > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > > > > > >>> >
> > > > > > > > > > >>> > > Hi Juan,
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > ... thanks for chiming in... and thanks for the
> > > pointer
> > > > > to
> > > > > > > the
> > > > > > > > Git
> > > > > > > > > > >>> > > repository with the Dockerfiles; that makes life
> > > > already
> > > > > a
> > > > > > > lot
> > > > > > > > > > >>> easier.
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > You are right, once you have the
> docker-compose.yml
> > > > files
> > > > > > > > lined up
> > > > > > > > > > >>> it's
> > > > > > > > > > >>> > not
> > > > > > > > > > >>> > > a big stretch to setup a Swarm cluster. After
> > running
> > > > > such
> > > > > > a
> > > > > > > > > > cluster
> > > > > > > > > > >>> for
> > > > > > > > > > >>> > a
> > > > > > > > > > >>> > > client of mine I just want to add:
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not
> > run
> > > > > very
> > > > > > > > stable;
> > > > > > > > > > >>> I'm
> > > > > > > > > > >>> > > saying this, because at the moment we have 2
> > servers
> > > at
> > > > > our
> > > > > > > > > > disposal
> > > > > > > > > > >>> (I
> > > > > > > > > > >>> > > think)
> > > > > > > > > > >>> > > - colleagues told me that Swarm cluster worked
> less
> > > > > > reliable
> > > > > > > > for
> > > > > > > > > > them
> > > > > > > > > > >>> > than
> > > > > > > > > > >>> > > other solutions; I don't think for a demo system
> > that
> > > > is
> > > > > > too
> > > > > > > > much
> > > > > > > > > > of
> > > > > > > > > > >>> a
> > > > > > > > > > >>> > > concern, but again I had one running in a
> > production
> > > > > > > > environment
> > > > > > > > > > and
> > > > > > > > > > >>> had
> > > > > > > > > > >>> > no
> > > > > > > > > > >>> > > major problems
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > If you want then let's connect (aleks@apache.org
> )
> > > and
> > > > > > figure
> > > > > > > > out
> > > > > > > > > > >>> how we
> > > > > > > > > > >>> > > can
> > > > > > > > > > >>> > > proceed with this... before the next GSoC season
> > > begins
> > > > > ;-)
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > Cheers
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > > > > > aasaru@gmail.com
> > > > > > > > >
> > > > > > > > > > >>> wrote:
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> > > > Hi Aleks
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Thanks for your work on pushing the demo server
> > to
> > > > > live.
> > > > > > > > > > >>> > > > I have played around with the containers also
> > and I
> > > > add
> > > > > > my
> > > > > > > > > > >>> feedback and
> > > > > > > > > > >>> > > > ideas.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > - it would come in handy to have default
> > Fineract
> > > > CN
> > > > > > > Docker
> > > > > > > > > > >>> images
> > > > > > > > > > >>> > > > published on Docker Hub
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > I think this is a way to go. If we want to
> > promote
> > > > > > adoption
> > > > > > > > of
> > > > > > > > > > >>> > > Fineract-CN
> > > > > > > > > > >>> > > > then public images
> > > > > > > > > > >>> > > > lower the burden to anyone to download and get
> > > going
> > > > > with
> > > > > > > the
> > > > > > > > > > >>> project.
> > > > > > > > > > >>> > > > Does the CI server already exist that could
> > > > potentially
> > > > > > > > build the
> > > > > > > > > > >>> > images?
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> > > > > microservice
> > > > > > > Git
> > > > > > > > > > >>> > repository
> > > > > > > > > > >>> > > > (e.
> > > > > > > > > > >>> > > >  >    g. fineract-cn-customer,
> > fineract-cn-teller,
> > > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > > >>> > > and
> > > > > > > > > > >>> > > > let a
> > > > > > > > > > >>> > > >  >   CI server build and publish Docker images
> of
> > > > these
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > > > > > >>> > > >
> https://github.com/openMF/fineract-cn-containers
> > > > > > > > > > >>> > > > But they logically belong to the application's
> > own
> > > > code
> > > > > > > base
> > > > > > > > so I
> > > > > > > > > > >>> see
> > > > > > > > > > >>> > no
> > > > > > > > > > >>> > > > harm in adding all
> > > > > > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >   - I am assuming that we **don't** want to go
> > all
> > > > the
> > > > > > way
> > > > > > > to
> > > > > > > > > > >>> setup a
> > > > > > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster;
> the
> > > goal
> > > > > is
> > > > > > to
> > > > > > > > just
> > > > > > > > > > >>> have a
> > > > > > > > > > >>> > > set
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > If we plan to operate with docker-compose
> already
> > > > (and
> > > > > > run
> > > > > > > > in two
> > > > > > > > > > >>> > > servers)
> > > > > > > > > > >>> > > > then I, in my opinion, it wouldn't be much
> > overhead
> > > > to
> > > > > > > > create a
> > > > > > > > > > >>> Swarm
> > > > > > > > > > >>> > > > cluster.
> > > > > > > > > > >>> > > > If I look at the instructions (
> > > > > > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > > > > > >>> > > > Also if something happens then Swarm can detect
> > and
> > > > > > > relaunch
> > > > > > > > > > >>> > containers.
> > > > > > > > > > >>> > > > But I'm no system administrator myself so I
> might
> > > be
> > > > > > > > mistaken in
> > > > > > > > > > >>> terms
> > > > > > > > > > >>> > of
> > > > > > > > > > >>> > > > how much work it requires.
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > - to avoid code changes or Docker image
> > rebuilds
> > > we
> > > > > > > should
> > > > > > > > > > >>> introduce
> > > > > > > > > > >>> > > > >   environment variables in the
> application.yml
> > > > files
> > > > > of
> > > > > > > > these
> > > > > > > > > > >>> > > > microservice
> > > > > > > > > > >>> > > > >   projects; e. g.:
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > > >>> > > >  /---/
> > > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > > >>> > > >
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > > >>> > > > /---/
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > I think there is no need to change
> > application.yml
> > > > > files.
> > > > > > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > > > > > application.yml
> > > > > > > > > > >>> property in
> > > > > > > > > > >>> > > > "environment" section like this:
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >    environment:
> > > > > > > > > > >>> > > >       -
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Juhan
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> > > > > cheetah@monkeysintown.com
> > > > > > >)
> > > > > > > > > > >>> kirjutas
> > > > > > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > > > > Hi everyone,
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... hope you all enjoyed the holidays and
> had a
> > > > good
> > > > > > > start
> > > > > > > > into
> > > > > > > > > > >>> the
> > > > > > > > > > >>> > new
> > > > > > > > > > >>> > > > > year :-)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > I have to appologize for my radio silence
> > > > concerning
> > > > > > the
> > > > > > > > demo
> > > > > > > > > > >>> server,
> > > > > > > > > > >>> > > > but I
> > > > > > > > > > >>> > > > > got a bit steam rolled by work in the last 6
> > > > months.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Anyway, I just wanted to get this effort
> going
> > > > again
> > > > > > and
> > > > > > > > would
> > > > > > > > > > >>> like
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > The current status:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - we have 2 (quite big) servers provided
> by
> > > the
> > > > > > Apache
> > > > > > > > > > >>> Foundation
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > run
> > > > > > > > > > >>> > > > >    the demo setup
> > > > > > > > > > >>> > > > >    - initially I tried to get it running on
> > one,
> > > > but
> > > > > > was
> > > > > > > > not
> > > > > > > > > > >>> enough
> > > > > > > > > > >>> > > (even
> > > > > > > > > > >>> > > > >    with 32GB of RAM and some swap
> configuration
> > > > > tricks)
> > > > > > > > > > >>> > > > >    - I've used the demo server module with
> some
> > > > minor
> > > > > > > > > > >>> modifications
> > > > > > > > > > >>> > to
> > > > > > > > > > >>> > > > turn
> > > > > > > > > > >>> > > > >    off non-essential components (thanks
> Myrle)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Trying all of this took quite some time...
> even
> > > on
> > > > > the
> > > > > > > > beefy
> > > > > > > > > > >>> machine
> > > > > > > > > > >>> > > from
> > > > > > > > > > >>> > > > > Apache it took (as far as I remember)
> 30-40min
> > > > until
> > > > > > the
> > > > > > > > demo
> > > > > > > > > > >>> server
> > > > > > > > > > >>> > > > > startup would ultimately fail.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Instead of going down that route again I'd
> like
> > > to
> > > > > > > propose
> > > > > > > > a
> > > > > > > > > > >>> > different
> > > > > > > > > > >>> > > > > strategy:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - I am assuming that we **don't** want to
> go
> > > all
> > > > > the
> > > > > > > > way to
> > > > > > > > > > >>> setup
> > > > > > > > > > >>> > a
> > > > > > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm)
> cluster;
> > > the
> > > > > > goal
> > > > > > > > is to
> > > > > > > > > > >>> just
> > > > > > > > > > >>> > > have
> > > > > > > > > > >>> > > > a
> > > > > > > > > > >>> > > > > set
> > > > > > > > > > >>> > > > >    of docker-compose.yml files to start the
> > > system
> > > > > > > > > > >>> > > > >    - it would come in handy to have default
> > > > Fineract
> > > > > CN
> > > > > > > > Docker
> > > > > > > > > > >>> images
> > > > > > > > > > >>> > > > >    published on Docker Hub
> > > > > > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > > > > > microservice
> > > > > > > > Git
> > > > > > > > > > >>> > repository
> > > > > > > > > > >>> > > > (e.
> > > > > > > > > > >>> > > > >    g. fineract-cn-customer,
> fineract-cn-teller,
> > > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > > >>> > > and
> > > > > > > > > > >>> > > > > let a
> > > > > > > > > > >>> > > > >    CI server build and publish Docker images
> of
> > > > these
> > > > > > > > > > >>> > > > >    - to avoid code changes or Docker image
> > > rebuilds
> > > > > we
> > > > > > > > should
> > > > > > > > > > >>> > introduce
> > > > > > > > > > >>> > > > >    environment variables in the
> application.yml
> > > > files
> > > > > > of
> > > > > > > > these
> > > > > > > > > > >>> > > > microservice
> > > > > > > > > > >>> > > > >    projects; e. g.:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,
> 127.0.0.2:9042
> > ,
> > > > > > > > 127.0.0.3:9042
> > > > > > > > > > >>> > > > >   keyspace: seshat
> > > > > > > > > > >>> > > > >   cl:
> > > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > > >>> > > >
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > > >>> > > > >   contactPoints:
> > > > > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
> }
> > > > > > > > > > >>> > > > >   keyspace:
> > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > > > > > >>> > > > >   cl:
> > > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > > >>> > > > > ...
> > > > > > > > > > >>> > > > > [/config]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - with the above changes we could then
> > define
> > > > > > > > > > >>> docker-compose.yml
> > > > > > > > > > >>> > > files
> > > > > > > > > > >>> > > > >    like this (pseudo file for customer
> > > > microservice):
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > > version: '3.6'
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > services:
> > > > > > > > > > >>> > > > >   customer:
> > > > > > > > > > >>> > > > >     image:
> > > > > > > > > > >>> >
> > > > > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > > > > > >>> > > > >     depends_on:
> > > > > > > > > > >>> > > > >       - mongo
> > > > > > > > > > >>> > > > >     env_file:
> > > > > > > > > > >>> > > > >       - ./customer.env
> > > > > > > > > > >>> > > > >     ports:
> > > > > > > > > > >>> > > > >       - "10000:10000"
> > > > > > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> > > > > -Duser.timezone=UTC
> > > > > > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > ... and the customer.env file would contain
> > > > something
> > > > > > > like
> > > > > > > > > > this:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > [code]
> > > > > > > > > > >>> > > > >
> > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > > > > > >>> > > > > [/code]
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - we would provide templates for those env
> > > files
> > > > > (e.
> > > > > > > g.
> > > > > > > > > > >>> > > > >    "customer.env.template"); custom
> > > configurations
> > > > > (e.
> > > > > > g.
> > > > > > > > > > >>> > > "customer.env")
> > > > > > > > > > >>> > > > >    should not be checked into Git
> > > > > > > > > > >>> > > > >    - if no environment variables are provided
> > > then
> > > > > the
> > > > > > > > defaults
> > > > > > > > > > >>> in
> > > > > > > > > > >>> > the
> > > > > > > > > > >>> > > > >    application.yml config files kick in with
> > > > > reasonable
> > > > > > > > values
> > > > > > > > > > >>> for a
> > > > > > > > > > >>> > > > local
> > > > > > > > > > >>> > > > > dev
> > > > > > > > > > >>> > > > >    machine deployment (given the required
> > > resources
> > > > > > > > unlikely
> > > > > > > > > > for
> > > > > > > > > > >>> most
> > > > > > > > > > >>> > > > devs)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Advantages:
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > >    - ready to consume Fineract CN Docker
> images
> > > > > > > > > > >>> > > > >    - no lengthy builds
> > > > > > > > > > >>> > > > >    - no re-build (Gradle, Docker) for
> > > configuration
> > > > > > > changes
> > > > > > > > > > >>> > > > >    - no requirement to do cluster (Swarm,
> > > > Kubernetes)
> > > > > > > setup
> > > > > > > > > > >>> > > > >    - the Docker images could still be used as
> > the
> > > > > basic
> > > > > > > > > > building
> > > > > > > > > > >>> > blocks
> > > > > > > > > > >>> > > > of
> > > > > > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > > > > > >>> > > > >    - every service can be started/stopped
> > > > separately
> > > > > > > which
> > > > > > > > > > makes
> > > > > > > > > > >>> > life a
> > > > > > > > > > >>> > > > lot
> > > > > > > > > > >>> > > > >    easier when we have to figure out the
> right
> > > > > > > > configuration
> > > > > > > > > > for
> > > > > > > > > > >>> the
> > > > > > > > > > >>> > > demo
> > > > > > > > > > >>> > > > >    setup (I guess it would make it also
> easier
> > > for
> > > > > > others
> > > > > > > > that
> > > > > > > > > > >>> would
> > > > > > > > > > >>> > > like
> > > > > > > > > > >>> > > > > to
> > > > > > > > > > >>> > > > >    setup their own environments)
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > I am using most (if not all) of the required
> > bits
> > > > and
> > > > > > > > pieces
> > > > > > > > > > for
> > > > > > > > > > >>> this
> > > > > > > > > > >>> > > > setup
> > > > > > > > > > >>> > > > > on a daily basis and I think it should be not
> > too
> > > > > > > > complicated
> > > > > > > > > > to
> > > > > > > > > > >>> get
> > > > > > > > > > >>> > > this
> > > > > > > > > > >>> > > > > working. And it would not interfere (too
> much)
> > > with
> > > > > the
> > > > > > > > > > existing
> > > > > > > > > > >>> Git
> > > > > > > > > > >>> > > > > repositories.
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Please let me know what you think...
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Cheers,
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > > > Aleks
> > > > > > > > > > >>> > > > >
> > > > > > > > > > >>> > > >
> > > > > > > > > > >>> > >
> > > > > > > > > > >>> >
> > > > > > > > > > >>>
> > > > > > > > > > >>
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > Hi Isaac,
> > > > > > > >
> > > > > > > > I would know, if you noticed difficulties, in setup
> Fineract-CN
> > > and
> > > > > all
> > > > > > > > its module and demo-server. i am using digital Ocean,
> followed
> > > all
> > > > > the
> > > > > > > > instructions, yet had some errors in compilation using the
> > > > > > > > initial-setup.sh, also the fims-web-apps doesn't work. Could
> > you
> > > > try
> > > > > to
> > > > > > > > confirm, I need help on this.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > David Alozie
> > > > > > > > wiretoothtech@gmail.com
> > > > > > > > +234 809 944 7105
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > > >
> > > > > Virus-free.
> > > > > www.avast.com
> > > > > <
> > > > >
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > > >
> > > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > > >
> > > >
> > >
> >
>


-- 
*Ed Cable*
President/CEO, Mifos Initiative
edcable@mifos.org | Skype: edcable | Mobile: +1.484.477.8649

*Collectively Creating a World of 3 Billion Maries | *http://mifos.org
<http://facebook.com/mifos>  <http://www.twitter.com/mifos>

Re: Fineract CN Demo server setup

Posted by Awasum Yannick <ya...@gmail.com>.
If Juhan wants to do it now, then maybe we should let him. There is always
going to be beginner work to give any new contributor I think.

Juhan cannot be waiting for an intern we have not chosen when he could do
the work today.

What do you think?

On Mon, Apr 22, 2019, 15:04 Courage Angeh <co...@gmail.com> wrote:

> Hi Juhan.
>
> Thats a good idea.
>
> Adding the remaining Docker scripts was added as part of the work for the
> GSoC 2019 intern who is supposed to work on the containerization project.
> He/she can work on updating the docker scripts to download the jar files
> from the actifactory too.
>
> I think it will be a good idea and learning experience for a new dev to
> join the fineract cn developement and deployment project.
>
> Nice work by the way.
>
> Regards,
> Courage.
>
> On Mon, Apr 22, 2019, 5:40 AM Juhan Aasaru <aa...@gmail.com> wrote:
>
> > Hi!
> >
> > I have managed to set up Travis-CI and Artifactory to build and serve
> > fineract-cn-* artifacts, these can be found here:
> > https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
> > It will take a few days before I can create pull requests (Vishwas is
> > helping me to get required permissions / setup on travis-ci).
> > But since the artifacts (built by travis from my forks -
> > https://github.com/aasaru/fineract-cn-*) are already there in the
> > Artifactory I
> > already wanted to raise the topic how to proceed with Dockerfiles.
> >
> > As Courage wrote there are Dockerfiles created for some repos (identity,
> > office customer).
> > My plan would be to modify these Dockerfiles (and create missing ones) to
> > use jar-s from the public repo:
> >
> > So for example identity Dockerfile (
> > https://github.com/apache/fineract-cn-identity/blob/develop/Dockerfile)
> > currently has:
> >
> > COPY identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar .
> >
> > I would switch it to download the jar from the Artifactory repository by
> > default like this:
> >
> > RUN wget -O identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar
> >
> >
> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/identity/service-boot/0.1.0-BUILD-SNAPSHOT/service-boot-0.1.0-BUILD-SNAPSHOT.jar
> >
> > Looking forward for your feedback.
> >
> > Juhan
> >
> > Kontakt Ed Cable (<ed...@mifos.org>) kirjutas kuupäeval E, 8. aprill
> > 2019
> > kell 17:26:
> >
> > > Awasum and Courage, thank you so much for volunteering to take on the
> > > remaining effort. It's been a long time coming getting this
> > infrastructure
> > > up after Apache so graciously donated the two VMs.
> > >
> > > Awasum, can you request access on the ticket on JIRA where we were
> > > allocated the VMs?
> > >
> > > Thanks,
> > >
> > > Ed
> > >
> > > On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com>
> wrote:
> > >
> > > > Hi Awasum,
> > > >
> > > > I will be happy to help.
> > > >
> > > > Regards,
> > > > Courage.
> > > >
> > > > <
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > >
> > > > Virus-free.
> > > > www.avast.com
> > > > <
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > >
> > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > >
> > > > On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org>
> > > wrote:
> > > >
> > > > > Hi All,
> > > > >
> > > > > How do I access the VMs provided by Infra for setting up a demo
> > server
> > > > for
> > > > > Fineract CN? Are there 2 of them?
> > > > >
> > > > > Courage, will you like to work with me run FCN using Docker Compose
> > > just
> > > > so
> > > > > the demo server gets up and running? It seems using Docker Swarm
> will
> > > > take
> > > > > more time than we want and I think Aleks is very busy at this
> moment.
> > > > >
> > > > > This is important for the community.
> > > > >
> > > > > Thanks
> > > > >
> > > > > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <
> isaac.kamga@mifos.org>
> > > > > wrote:
> > > > >
> > > > > > Hey David,
> > > > > >
> > > > > > Did you fork the Fineract CN repos before running
> initial-setup.sh
> > > with
> > > > > > your Github handle OR did you just use handle 'apache' ? Try
> using
> > > the
> > > > > > handle 'apache' instead.
> > > > > >
> > > > > > Also endeavor to specify the errors you face by sharing using a
> > > pasting
> > > > > > service like pastebin.com
> > > > > >
> > > > > > Cheers,
> > > > > > Isaac Kamga.
> > > > > >
> > > > > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > > > > wiretoothtech@gmail.com> wrote:
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org>
> > wrote:
> > > > > > > > Hello fineracters,
> > > > > > > >
> > > > > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage
> > > angeh
> > > > > > > > <co...@gmail.com>
> > > > > > > >
> > > > > > > > Is there any progress on this front ?
> > > > > > > >
> > > > > > > > Most front-end projects (from last year's GSoC students and
> > other
> > > > > > > > contributors) need this public demo-server in order to do
> > > rigorous
> > > > > > > testing.
> > > > > > > >
> > > > > > > > At Your Service,
> > > > > > > > Isaac Kamga.
> > > > > > > >
> > > > > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > > > > cheetah@monkeysintown.com> wrote:
> > > > > > > >
> > > > > > > > > Great, Courage! I'll have a look at this.
> > > > > > > > >
> > > > > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > > > > courageangeh@gmail.com>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Alek,
> > > > > > > > > >
> > > > > > > > > > I have migrated the Docker files to their respective
> > Fineract
> > > > > > > > > repositories.
> > > > > > > > > > Here are draft PRs for three microservices. Please review
> > it
> > > > and
> > > > > I
> > > > > > > will
> > > > > > > > > > appreciate your feedback on any updates:
> > > > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > > > >
> > > > > > > > > > You could review already built docker images on
> > > > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > > > It's just a rough sample though.
> > > > > > > > > >
> > > > > > > > > > In the main time, I am updating the Docker-compose file
> so
> > it
> > > > > spins
> > > > > > > up a
> > > > > > > > > > swarm cluster.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Courage.
> > > > > > > > > >
> > > > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > > > courageangeh@gmail.com
> > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > >> Hi Alek,
> > > > > > > > > >>
> > > > > > > > > >> I think we can start with that.
> > > > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > > > >>
> > > > > > > > > >> Thanks,
> > > > > > > > > >> Courage
> > > > > > > > > >>
> > > > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > > > > >>
> > > > > > > > > >>> Hi Courage,
> > > > > > > > > >>>
> > > > > > > > > >>> ... would be great if you could help out... especially
> > with
> > > > > your
> > > > > > > > > >>> knowledge
> > > > > > > > > >>> about Docker.
> > > > > > > > > >>>
> > > > > > > > > >>> Preparing the Git repositories should be fairly easy...
> > > > another
> > > > > > > nice
> > > > > > > > > >>> thing
> > > > > > > > > >>> to have: some kind of CI server to build and push
> images
> > to
> > > > > > Docker
> > > > > > > hub;
> > > > > > > > > >>> not
> > > > > > > > > >>> sure if Fineract is currently using Jenkins at
> Apache...
> > in
> > > > any
> > > > > > > case
> > > > > > > > > not
> > > > > > > > > >>> a
> > > > > > > > > >>> big thing... setting up things with Travis or similar
> is
> > > not
> > > > a
> > > > > > big
> > > > > > > > > deal.
> > > > > > > > > >>>
> > > > > > > > > >>> Anything else you can think of?
> > > > > > > > > >>>
> > > > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > > > courageangeh@gmail.com>
> > > > > > > > > >>> wrote:
> > > > > > > > > >>>
> > > > > > > > > >>> > Hi Aleksandar,
> > > > > > > > > >>> >
> > > > > > > > > >>> > I can work with you on migrating the Fineract
> services
> > > from
> > > > > > > Docker
> > > > > > > > > >>> compose
> > > > > > > > > >>> > to Docker Swarm.
> > > > > > > > > >>> > Then pushing the Fineract images to Docker Hub so
> it's
> > > > easily
> > > > > > > > > >>> accessible.
> > > > > > > > > >>> >
> > > > > > > > > >>> > I think that will require Ed to create a Docker Hub
> > > account
> > > > > for
> > > > > > > > > >>> > Mifos/Fineract.
> > > > > > > > > >>> >
> > > > > > > > > >>> > Thanks,
> > > > > > > > > >>> > Courage.
> > > > > > > > > >>> >
> > > > > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic
> <
> > > > > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > > > > >>> >
> > > > > > > > > >>> > > Hi Juan,
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > ... thanks for chiming in... and thanks for the
> > pointer
> > > > to
> > > > > > the
> > > > > > > Git
> > > > > > > > > >>> > > repository with the Dockerfiles; that makes life
> > > already
> > > > a
> > > > > > lot
> > > > > > > > > >>> easier.
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > You are right, once you have the docker-compose.yml
> > > files
> > > > > > > lined up
> > > > > > > > > >>> it's
> > > > > > > > > >>> > not
> > > > > > > > > >>> > > a big stretch to setup a Swarm cluster. After
> running
> > > > such
> > > > > a
> > > > > > > > > cluster
> > > > > > > > > >>> for
> > > > > > > > > >>> > a
> > > > > > > > > >>> > > client of mine I just want to add:
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not
> run
> > > > very
> > > > > > > stable;
> > > > > > > > > >>> I'm
> > > > > > > > > >>> > > saying this, because at the moment we have 2
> servers
> > at
> > > > our
> > > > > > > > > disposal
> > > > > > > > > >>> (I
> > > > > > > > > >>> > > think)
> > > > > > > > > >>> > > - colleagues told me that Swarm cluster worked less
> > > > > reliable
> > > > > > > for
> > > > > > > > > them
> > > > > > > > > >>> > than
> > > > > > > > > >>> > > other solutions; I don't think for a demo system
> that
> > > is
> > > > > too
> > > > > > > much
> > > > > > > > > of
> > > > > > > > > >>> a
> > > > > > > > > >>> > > concern, but again I had one running in a
> production
> > > > > > > environment
> > > > > > > > > and
> > > > > > > > > >>> had
> > > > > > > > > >>> > no
> > > > > > > > > >>> > > major problems
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > If you want then let's connect (aleks@apache.org)
> > and
> > > > > figure
> > > > > > > out
> > > > > > > > > >>> how we
> > > > > > > > > >>> > > can
> > > > > > > > > >>> > > proceed with this... before the next GSoC season
> > begins
> > > > ;-)
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > Cheers
> > > > > > > > > >>> > >
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > > > > aasaru@gmail.com
> > > > > > > >
> > > > > > > > > >>> wrote:
> > > > > > > > > >>> > >
> > > > > > > > > >>> > > > Hi Aleks
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > Thanks for your work on pushing the demo server
> to
> > > > live.
> > > > > > > > > >>> > > > I have played around with the containers also
> and I
> > > add
> > > > > my
> > > > > > > > > >>> feedback and
> > > > > > > > > >>> > > > ideas.
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > > - it would come in handy to have default
> Fineract
> > > CN
> > > > > > Docker
> > > > > > > > > >>> images
> > > > > > > > > >>> > > > published on Docker Hub
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > I think this is a way to go. If we want to
> promote
> > > > > adoption
> > > > > > > of
> > > > > > > > > >>> > > Fineract-CN
> > > > > > > > > >>> > > > then public images
> > > > > > > > > >>> > > > lower the burden to anyone to download and get
> > going
> > > > with
> > > > > > the
> > > > > > > > > >>> project.
> > > > > > > > > >>> > > > Does the CI server already exist that could
> > > potentially
> > > > > > > build the
> > > > > > > > > >>> > images?
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> > > > microservice
> > > > > > Git
> > > > > > > > > >>> > repository
> > > > > > > > > >>> > > > (e.
> > > > > > > > > >>> > > >  >    g. fineract-cn-customer,
> fineract-cn-teller,
> > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > >>> > > and
> > > > > > > > > >>> > > > let a
> > > > > > > > > >>> > > >  >   CI server build and publish Docker images of
> > > these
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > > > > > > >>> > > > But they logically belong to the application's
> own
> > > code
> > > > > > base
> > > > > > > so I
> > > > > > > > > >>> see
> > > > > > > > > >>> > no
> > > > > > > > > >>> > > > harm in adding all
> > > > > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >   - I am assuming that we **don't** want to go
> all
> > > the
> > > > > way
> > > > > > to
> > > > > > > > > >>> setup a
> > > > > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the
> > goal
> > > > is
> > > > > to
> > > > > > > just
> > > > > > > > > >>> have a
> > > > > > > > > >>> > > set
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > If we plan to operate with docker-compose already
> > > (and
> > > > > run
> > > > > > > in two
> > > > > > > > > >>> > > servers)
> > > > > > > > > >>> > > > then I, in my opinion, it wouldn't be much
> overhead
> > > to
> > > > > > > create a
> > > > > > > > > >>> Swarm
> > > > > > > > > >>> > > > cluster.
> > > > > > > > > >>> > > > If I look at the instructions (
> > > > > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > > > > >>> > > > Also if something happens then Swarm can detect
> and
> > > > > > relaunch
> > > > > > > > > >>> > containers.
> > > > > > > > > >>> > > > But I'm no system administrator myself so I might
> > be
> > > > > > > mistaken in
> > > > > > > > > >>> terms
> > > > > > > > > >>> > of
> > > > > > > > > >>> > > > how much work it requires.
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > > - to avoid code changes or Docker image
> rebuilds
> > we
> > > > > > should
> > > > > > > > > >>> introduce
> > > > > > > > > >>> > > > >   environment variables in the application.yml
> > > files
> > > > of
> > > > > > > these
> > > > > > > > > >>> > > > microservice
> > > > > > > > > >>> > > > >   projects; e. g.:
> > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > >>> > > >  /---/
> > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > >>> > > >
> > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > >>> > > > /---/
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > I think there is no need to change
> application.yml
> > > > files.
> > > > > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > > > > application.yml
> > > > > > > > > >>> property in
> > > > > > > > > >>> > > > "environment" section like this:
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >    environment:
> > > > > > > > > >>> > > >       -
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > >
> > > > > > > > > >>> >
> > > > > > > > > >>>
> > > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > Juhan
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> > > > cheetah@monkeysintown.com
> > > > > >)
> > > > > > > > > >>> kirjutas
> > > > > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > > > > Hi everyone,
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > ... hope you all enjoyed the holidays and had a
> > > good
> > > > > > start
> > > > > > > into
> > > > > > > > > >>> the
> > > > > > > > > >>> > new
> > > > > > > > > >>> > > > > year :-)
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > I have to appologize for my radio silence
> > > concerning
> > > > > the
> > > > > > > demo
> > > > > > > > > >>> server,
> > > > > > > > > >>> > > > but I
> > > > > > > > > >>> > > > > got a bit steam rolled by work in the last 6
> > > months.
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Anyway, I just wanted to get this effort going
> > > again
> > > > > and
> > > > > > > would
> > > > > > > > > >>> like
> > > > > > > > > >>> > to
> > > > > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > The current status:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >    - we have 2 (quite big) servers provided by
> > the
> > > > > Apache
> > > > > > > > > >>> Foundation
> > > > > > > > > >>> > to
> > > > > > > > > >>> > > > run
> > > > > > > > > >>> > > > >    the demo setup
> > > > > > > > > >>> > > > >    - initially I tried to get it running on
> one,
> > > but
> > > > > was
> > > > > > > not
> > > > > > > > > >>> enough
> > > > > > > > > >>> > > (even
> > > > > > > > > >>> > > > >    with 32GB of RAM and some swap configuration
> > > > tricks)
> > > > > > > > > >>> > > > >    - I've used the demo server module with some
> > > minor
> > > > > > > > > >>> modifications
> > > > > > > > > >>> > to
> > > > > > > > > >>> > > > turn
> > > > > > > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Trying all of this took quite some time... even
> > on
> > > > the
> > > > > > > beefy
> > > > > > > > > >>> machine
> > > > > > > > > >>> > > from
> > > > > > > > > >>> > > > > Apache it took (as far as I remember) 30-40min
> > > until
> > > > > the
> > > > > > > demo
> > > > > > > > > >>> server
> > > > > > > > > >>> > > > > startup would ultimately fail.
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Instead of going down that route again I'd like
> > to
> > > > > > propose
> > > > > > > a
> > > > > > > > > >>> > different
> > > > > > > > > >>> > > > > strategy:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >    - I am assuming that we **don't** want to go
> > all
> > > > the
> > > > > > > way to
> > > > > > > > > >>> setup
> > > > > > > > > >>> > a
> > > > > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster;
> > the
> > > > > goal
> > > > > > > is to
> > > > > > > > > >>> just
> > > > > > > > > >>> > > have
> > > > > > > > > >>> > > > a
> > > > > > > > > >>> > > > > set
> > > > > > > > > >>> > > > >    of docker-compose.yml files to start the
> > system
> > > > > > > > > >>> > > > >    - it would come in handy to have default
> > > Fineract
> > > > CN
> > > > > > > Docker
> > > > > > > > > >>> images
> > > > > > > > > >>> > > > >    published on Docker Hub
> > > > > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > > > > microservice
> > > > > > > Git
> > > > > > > > > >>> > repository
> > > > > > > > > >>> > > > (e.
> > > > > > > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > > >>> > > and
> > > > > > > > > >>> > > > > let a
> > > > > > > > > >>> > > > >    CI server build and publish Docker images of
> > > these
> > > > > > > > > >>> > > > >    - to avoid code changes or Docker image
> > rebuilds
> > > > we
> > > > > > > should
> > > > > > > > > >>> > introduce
> > > > > > > > > >>> > > > >    environment variables in the application.yml
> > > files
> > > > > of
> > > > > > > these
> > > > > > > > > >>> > > > microservice
> > > > > > > > > >>> > > > >    projects; e. g.:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > [code]
> > > > > > > > > >>> > > > > ...
> > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042
> ,
> > > > > > > 127.0.0.3:9042
> > > > > > > > > >>> > > > >   keyspace: seshat
> > > > > > > > > >>> > > > >   cl:
> > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > >>> > > > > ...
> > > > > > > > > >>> > > > > [/code]
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > [code]
> > > > > > > > > >>> > > > > ...
> > > > > > > > > >>> > > > > cassandra:
> > > > > > > > > >>> > > > >   clusterName:
> > > > > > > > > >>> > > >
> > > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > > >>> > > > >   contactPoints:
> > > > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > > > > > > >>> > > > >   keyspace:
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > > > > >>> > > > >   cl:
> > > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > > >>> > > > > ...
> > > > > > > > > >>> > > > > [/config]
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >    - with the above changes we could then
> define
> > > > > > > > > >>> docker-compose.yml
> > > > > > > > > >>> > > files
> > > > > > > > > >>> > > > >    like this (pseudo file for customer
> > > microservice):
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > [code]
> > > > > > > > > >>> > > > > version: '3.6'
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > services:
> > > > > > > > > >>> > > > >   customer:
> > > > > > > > > >>> > > > >     image:
> > > > > > > > > >>> >
> > > > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > > > > >>> > > > >     depends_on:
> > > > > > > > > >>> > > > >       - mongo
> > > > > > > > > >>> > > > >     env_file:
> > > > > > > > > >>> > > > >       - ./customer.env
> > > > > > > > > >>> > > > >     ports:
> > > > > > > > > >>> > > > >       - "10000:10000"
> > > > > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> > > > -Duser.timezone=UTC
> > > > > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > > > > >>> > > > > [/code]
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > ... and the customer.env file would contain
> > > something
> > > > > > like
> > > > > > > > > this:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > [code]
> > > > > > > > > >>> > > > >
> > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > >
> > > > > > > > > >>> >
> > > > > > > > > >>>
> > > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > > > > >>> > > > > [/code]
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >    - we would provide templates for those env
> > files
> > > > (e.
> > > > > > g.
> > > > > > > > > >>> > > > >    "customer.env.template"); custom
> > configurations
> > > > (e.
> > > > > g.
> > > > > > > > > >>> > > "customer.env")
> > > > > > > > > >>> > > > >    should not be checked into Git
> > > > > > > > > >>> > > > >    - if no environment variables are provided
> > then
> > > > the
> > > > > > > defaults
> > > > > > > > > >>> in
> > > > > > > > > >>> > the
> > > > > > > > > >>> > > > >    application.yml config files kick in with
> > > > reasonable
> > > > > > > values
> > > > > > > > > >>> for a
> > > > > > > > > >>> > > > local
> > > > > > > > > >>> > > > > dev
> > > > > > > > > >>> > > > >    machine deployment (given the required
> > resources
> > > > > > > unlikely
> > > > > > > > > for
> > > > > > > > > >>> most
> > > > > > > > > >>> > > > devs)
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Advantages:
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > > > > > > >>> > > > >    - no lengthy builds
> > > > > > > > > >>> > > > >    - no re-build (Gradle, Docker) for
> > configuration
> > > > > > changes
> > > > > > > > > >>> > > > >    - no requirement to do cluster (Swarm,
> > > Kubernetes)
> > > > > > setup
> > > > > > > > > >>> > > > >    - the Docker images could still be used as
> the
> > > > basic
> > > > > > > > > building
> > > > > > > > > >>> > blocks
> > > > > > > > > >>> > > > of
> > > > > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > > > > >>> > > > >    - every service can be started/stopped
> > > separately
> > > > > > which
> > > > > > > > > makes
> > > > > > > > > >>> > life a
> > > > > > > > > >>> > > > lot
> > > > > > > > > >>> > > > >    easier when we have to figure out the right
> > > > > > > configuration
> > > > > > > > > for
> > > > > > > > > >>> the
> > > > > > > > > >>> > > demo
> > > > > > > > > >>> > > > >    setup (I guess it would make it also easier
> > for
> > > > > others
> > > > > > > that
> > > > > > > > > >>> would
> > > > > > > > > >>> > > like
> > > > > > > > > >>> > > > > to
> > > > > > > > > >>> > > > >    setup their own environments)
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > I am using most (if not all) of the required
> bits
> > > and
> > > > > > > pieces
> > > > > > > > > for
> > > > > > > > > >>> this
> > > > > > > > > >>> > > > setup
> > > > > > > > > >>> > > > > on a daily basis and I think it should be not
> too
> > > > > > > complicated
> > > > > > > > > to
> > > > > > > > > >>> get
> > > > > > > > > >>> > > this
> > > > > > > > > >>> > > > > working. And it would not interfere (too much)
> > with
> > > > the
> > > > > > > > > existing
> > > > > > > > > >>> Git
> > > > > > > > > >>> > > > > repositories.
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Please let me know what you think...
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Cheers,
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > > > Aleks
> > > > > > > > > >>> > > > >
> > > > > > > > > >>> > > >
> > > > > > > > > >>> > >
> > > > > > > > > >>> >
> > > > > > > > > >>>
> > > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > > Hi Isaac,
> > > > > > >
> > > > > > > I would know, if you noticed difficulties, in setup Fineract-CN
> > and
> > > > all
> > > > > > > its module and demo-server. i am using digital Ocean, followed
> > all
> > > > the
> > > > > > > instructions, yet had some errors in compilation using the
> > > > > > > initial-setup.sh, also the fims-web-apps doesn't work. Could
> you
> > > try
> > > > to
> > > > > > > confirm, I need help on this.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > David Alozie
> > > > > > > wiretoothtech@gmail.com
> > > > > > > +234 809 944 7105
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > > <
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > > >
> > > > Virus-free.
> > > > www.avast.com
> > > > <
> > > >
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > > >
> > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > > >
> > >
> >
>

Re: Fineract CN Demo server setup

Posted by Courage Angeh <co...@gmail.com>.
Hi Juhan.

Thats a good idea.

Adding the remaining Docker scripts was added as part of the work for the
GSoC 2019 intern who is supposed to work on the containerization project.
He/she can work on updating the docker scripts to download the jar files
from the actifactory too.

I think it will be a good idea and learning experience for a new dev to
join the fineract cn developement and deployment project.

Nice work by the way.

Regards,
Courage.

On Mon, Apr 22, 2019, 5:40 AM Juhan Aasaru <aa...@gmail.com> wrote:

> Hi!
>
> I have managed to set up Travis-CI and Artifactory to build and serve
> fineract-cn-* artifacts, these can be found here:
> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
> It will take a few days before I can create pull requests (Vishwas is
> helping me to get required permissions / setup on travis-ci).
> But since the artifacts (built by travis from my forks -
> https://github.com/aasaru/fineract-cn-*) are already there in the
> Artifactory I
> already wanted to raise the topic how to proceed with Dockerfiles.
>
> As Courage wrote there are Dockerfiles created for some repos (identity,
> office customer).
> My plan would be to modify these Dockerfiles (and create missing ones) to
> use jar-s from the public repo:
>
> So for example identity Dockerfile (
> https://github.com/apache/fineract-cn-identity/blob/develop/Dockerfile)
> currently has:
>
> COPY identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar .
>
> I would switch it to download the jar from the Artifactory repository by
> default like this:
>
> RUN wget -O identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar
>
> https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/identity/service-boot/0.1.0-BUILD-SNAPSHOT/service-boot-0.1.0-BUILD-SNAPSHOT.jar
>
> Looking forward for your feedback.
>
> Juhan
>
> Kontakt Ed Cable (<ed...@mifos.org>) kirjutas kuupäeval E, 8. aprill
> 2019
> kell 17:26:
>
> > Awasum and Courage, thank you so much for volunteering to take on the
> > remaining effort. It's been a long time coming getting this
> infrastructure
> > up after Apache so graciously donated the two VMs.
> >
> > Awasum, can you request access on the ticket on JIRA where we were
> > allocated the VMs?
> >
> > Thanks,
> >
> > Ed
> >
> > On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com> wrote:
> >
> > > Hi Awasum,
> > >
> > > I will be happy to help.
> > >
> > > Regards,
> > > Courage.
> > >
> > > <
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > >
> > > Virus-free.
> > > www.avast.com
> > > <
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > >
> > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > >
> > > On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org>
> > wrote:
> > >
> > > > Hi All,
> > > >
> > > > How do I access the VMs provided by Infra for setting up a demo
> server
> > > for
> > > > Fineract CN? Are there 2 of them?
> > > >
> > > > Courage, will you like to work with me run FCN using Docker Compose
> > just
> > > so
> > > > the demo server gets up and running? It seems using Docker Swarm will
> > > take
> > > > more time than we want and I think Aleks is very busy at this moment.
> > > >
> > > > This is important for the community.
> > > >
> > > > Thanks
> > > >
> > > > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <is...@mifos.org>
> > > > wrote:
> > > >
> > > > > Hey David,
> > > > >
> > > > > Did you fork the Fineract CN repos before running initial-setup.sh
> > with
> > > > > your Github handle OR did you just use handle 'apache' ? Try using
> > the
> > > > > handle 'apache' instead.
> > > > >
> > > > > Also endeavor to specify the errors you face by sharing using a
> > pasting
> > > > > service like pastebin.com
> > > > >
> > > > > Cheers,
> > > > > Isaac Kamga.
> > > > >
> > > > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > > > wiretoothtech@gmail.com> wrote:
> > > > >
> > > > > >
> > > > > >
> > > > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org>
> wrote:
> > > > > > > Hello fineracters,
> > > > > > >
> > > > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage
> > angeh
> > > > > > > <co...@gmail.com>
> > > > > > >
> > > > > > > Is there any progress on this front ?
> > > > > > >
> > > > > > > Most front-end projects (from last year's GSoC students and
> other
> > > > > > > contributors) need this public demo-server in order to do
> > rigorous
> > > > > > testing.
> > > > > > >
> > > > > > > At Your Service,
> > > > > > > Isaac Kamga.
> > > > > > >
> > > > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > > > cheetah@monkeysintown.com> wrote:
> > > > > > >
> > > > > > > > Great, Courage! I'll have a look at this.
> > > > > > > >
> > > > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > > > courageangeh@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi Alek,
> > > > > > > > >
> > > > > > > > > I have migrated the Docker files to their respective
> Fineract
> > > > > > > > repositories.
> > > > > > > > > Here are draft PRs for three microservices. Please review
> it
> > > and
> > > > I
> > > > > > will
> > > > > > > > > appreciate your feedback on any updates:
> > > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > > >
> > > > > > > > > You could review already built docker images on
> > > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > > It's just a rough sample though.
> > > > > > > > >
> > > > > > > > > In the main time, I am updating the Docker-compose file so
> it
> > > > spins
> > > > > > up a
> > > > > > > > > swarm cluster.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Courage.
> > > > > > > > >
> > > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > > courageangeh@gmail.com
> > > > > > >
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > >> Hi Alek,
> > > > > > > > >>
> > > > > > > > >> I think we can start with that.
> > > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > > >>
> > > > > > > > >> Thanks,
> > > > > > > > >> Courage
> > > > > > > > >>
> > > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > > > >>
> > > > > > > > >>> Hi Courage,
> > > > > > > > >>>
> > > > > > > > >>> ... would be great if you could help out... especially
> with
> > > > your
> > > > > > > > >>> knowledge
> > > > > > > > >>> about Docker.
> > > > > > > > >>>
> > > > > > > > >>> Preparing the Git repositories should be fairly easy...
> > > another
> > > > > > nice
> > > > > > > > >>> thing
> > > > > > > > >>> to have: some kind of CI server to build and push images
> to
> > > > > Docker
> > > > > > hub;
> > > > > > > > >>> not
> > > > > > > > >>> sure if Fineract is currently using Jenkins at Apache...
> in
> > > any
> > > > > > case
> > > > > > > > not
> > > > > > > > >>> a
> > > > > > > > >>> big thing... setting up things with Travis or similar is
> > not
> > > a
> > > > > big
> > > > > > > > deal.
> > > > > > > > >>>
> > > > > > > > >>> Anything else you can think of?
> > > > > > > > >>>
> > > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > > courageangeh@gmail.com>
> > > > > > > > >>> wrote:
> > > > > > > > >>>
> > > > > > > > >>> > Hi Aleksandar,
> > > > > > > > >>> >
> > > > > > > > >>> > I can work with you on migrating the Fineract services
> > from
> > > > > > Docker
> > > > > > > > >>> compose
> > > > > > > > >>> > to Docker Swarm.
> > > > > > > > >>> > Then pushing the Fineract images to Docker Hub so it's
> > > easily
> > > > > > > > >>> accessible.
> > > > > > > > >>> >
> > > > > > > > >>> > I think that will require Ed to create a Docker Hub
> > account
> > > > for
> > > > > > > > >>> > Mifos/Fineract.
> > > > > > > > >>> >
> > > > > > > > >>> > Thanks,
> > > > > > > > >>> > Courage.
> > > > > > > > >>> >
> > > > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > > > >>> >
> > > > > > > > >>> > > Hi Juan,
> > > > > > > > >>> > >
> > > > > > > > >>> > > ... thanks for chiming in... and thanks for the
> pointer
> > > to
> > > > > the
> > > > > > Git
> > > > > > > > >>> > > repository with the Dockerfiles; that makes life
> > already
> > > a
> > > > > lot
> > > > > > > > >>> easier.
> > > > > > > > >>> > >
> > > > > > > > >>> > > You are right, once you have the docker-compose.yml
> > files
> > > > > > lined up
> > > > > > > > >>> it's
> > > > > > > > >>> > not
> > > > > > > > >>> > > a big stretch to setup a Swarm cluster. After running
> > > such
> > > > a
> > > > > > > > cluster
> > > > > > > > >>> for
> > > > > > > > >>> > a
> > > > > > > > >>> > > client of mine I just want to add:
> > > > > > > > >>> > >
> > > > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not run
> > > very
> > > > > > stable;
> > > > > > > > >>> I'm
> > > > > > > > >>> > > saying this, because at the moment we have 2 servers
> at
> > > our
> > > > > > > > disposal
> > > > > > > > >>> (I
> > > > > > > > >>> > > think)
> > > > > > > > >>> > > - colleagues told me that Swarm cluster worked less
> > > > reliable
> > > > > > for
> > > > > > > > them
> > > > > > > > >>> > than
> > > > > > > > >>> > > other solutions; I don't think for a demo system that
> > is
> > > > too
> > > > > > much
> > > > > > > > of
> > > > > > > > >>> a
> > > > > > > > >>> > > concern, but again I had one running in a production
> > > > > > environment
> > > > > > > > and
> > > > > > > > >>> had
> > > > > > > > >>> > no
> > > > > > > > >>> > > major problems
> > > > > > > > >>> > >
> > > > > > > > >>> > > If you want then let's connect (aleks@apache.org)
> and
> > > > figure
> > > > > > out
> > > > > > > > >>> how we
> > > > > > > > >>> > > can
> > > > > > > > >>> > > proceed with this... before the next GSoC season
> begins
> > > ;-)
> > > > > > > > >>> > >
> > > > > > > > >>> > > Cheers
> > > > > > > > >>> > >
> > > > > > > > >>> > >
> > > > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > > > aasaru@gmail.com
> > > > > > >
> > > > > > > > >>> wrote:
> > > > > > > > >>> > >
> > > > > > > > >>> > > > Hi Aleks
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > Thanks for your work on pushing the demo server to
> > > live.
> > > > > > > > >>> > > > I have played around with the containers also and I
> > add
> > > > my
> > > > > > > > >>> feedback and
> > > > > > > > >>> > > > ideas.
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > > - it would come in handy to have default Fineract
> > CN
> > > > > Docker
> > > > > > > > >>> images
> > > > > > > > >>> > > > published on Docker Hub
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > I think this is a way to go. If we want to promote
> > > > adoption
> > > > > > of
> > > > > > > > >>> > > Fineract-CN
> > > > > > > > >>> > > > then public images
> > > > > > > > >>> > > > lower the burden to anyone to download and get
> going
> > > with
> > > > > the
> > > > > > > > >>> project.
> > > > > > > > >>> > > > Does the CI server already exist that could
> > potentially
> > > > > > build the
> > > > > > > > >>> > images?
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> > > microservice
> > > > > Git
> > > > > > > > >>> > repository
> > > > > > > > >>> > > > (e.
> > > > > > > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > >>> > > and
> > > > > > > > >>> > > > let a
> > > > > > > > >>> > > >  >   CI server build and publish Docker images of
> > these
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > > > > > >>> > > > But they logically belong to the application's own
> > code
> > > > > base
> > > > > > so I
> > > > > > > > >>> see
> > > > > > > > >>> > no
> > > > > > > > >>> > > > harm in adding all
> > > > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >   - I am assuming that we **don't** want to go all
> > the
> > > > way
> > > > > to
> > > > > > > > >>> setup a
> > > > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the
> goal
> > > is
> > > > to
> > > > > > just
> > > > > > > > >>> have a
> > > > > > > > >>> > > set
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > If we plan to operate with docker-compose already
> > (and
> > > > run
> > > > > > in two
> > > > > > > > >>> > > servers)
> > > > > > > > >>> > > > then I, in my opinion, it wouldn't be much overhead
> > to
> > > > > > create a
> > > > > > > > >>> Swarm
> > > > > > > > >>> > > > cluster.
> > > > > > > > >>> > > > If I look at the instructions (
> > > > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > > > >>> > > > Also if something happens then Swarm can detect and
> > > > > relaunch
> > > > > > > > >>> > containers.
> > > > > > > > >>> > > > But I'm no system administrator myself so I might
> be
> > > > > > mistaken in
> > > > > > > > >>> terms
> > > > > > > > >>> > of
> > > > > > > > >>> > > > how much work it requires.
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > > - to avoid code changes or Docker image rebuilds
> we
> > > > > should
> > > > > > > > >>> introduce
> > > > > > > > >>> > > > >   environment variables in the application.yml
> > files
> > > of
> > > > > > these
> > > > > > > > >>> > > > microservice
> > > > > > > > >>> > > > >   projects; e. g.:
> > > > > > > > >>> > > > > cassandra:
> > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > >>> > > >  /---/
> > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > >>> > > > > cassandra:
> > > > > > > > >>> > > > >   clusterName:
> > > > > > > > >>> > > >
> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > >>> > > > /---/
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > I think there is no need to change application.yml
> > > files.
> > > > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > > > application.yml
> > > > > > > > >>> property in
> > > > > > > > >>> > > > "environment" section like this:
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >    environment:
> > > > > > > > >>> > > >       -
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >
> > > > > > > > >>> > >
> > > > > > > > >>> >
> > > > > > > > >>>
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > Juhan
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> > > cheetah@monkeysintown.com
> > > > >)
> > > > > > > > >>> kirjutas
> > > > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > > > >>> > > >
> > > > > > > > >>> > > > > Hi everyone,
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > ... hope you all enjoyed the holidays and had a
> > good
> > > > > start
> > > > > > into
> > > > > > > > >>> the
> > > > > > > > >>> > new
> > > > > > > > >>> > > > > year :-)
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > I have to appologize for my radio silence
> > concerning
> > > > the
> > > > > > demo
> > > > > > > > >>> server,
> > > > > > > > >>> > > > but I
> > > > > > > > >>> > > > > got a bit steam rolled by work in the last 6
> > months.
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Anyway, I just wanted to get this effort going
> > again
> > > > and
> > > > > > would
> > > > > > > > >>> like
> > > > > > > > >>> > to
> > > > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > The current status:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >    - we have 2 (quite big) servers provided by
> the
> > > > Apache
> > > > > > > > >>> Foundation
> > > > > > > > >>> > to
> > > > > > > > >>> > > > run
> > > > > > > > >>> > > > >    the demo setup
> > > > > > > > >>> > > > >    - initially I tried to get it running on one,
> > but
> > > > was
> > > > > > not
> > > > > > > > >>> enough
> > > > > > > > >>> > > (even
> > > > > > > > >>> > > > >    with 32GB of RAM and some swap configuration
> > > tricks)
> > > > > > > > >>> > > > >    - I've used the demo server module with some
> > minor
> > > > > > > > >>> modifications
> > > > > > > > >>> > to
> > > > > > > > >>> > > > turn
> > > > > > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Trying all of this took quite some time... even
> on
> > > the
> > > > > > beefy
> > > > > > > > >>> machine
> > > > > > > > >>> > > from
> > > > > > > > >>> > > > > Apache it took (as far as I remember) 30-40min
> > until
> > > > the
> > > > > > demo
> > > > > > > > >>> server
> > > > > > > > >>> > > > > startup would ultimately fail.
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Instead of going down that route again I'd like
> to
> > > > > propose
> > > > > > a
> > > > > > > > >>> > different
> > > > > > > > >>> > > > > strategy:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >    - I am assuming that we **don't** want to go
> all
> > > the
> > > > > > way to
> > > > > > > > >>> setup
> > > > > > > > >>> > a
> > > > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster;
> the
> > > > goal
> > > > > > is to
> > > > > > > > >>> just
> > > > > > > > >>> > > have
> > > > > > > > >>> > > > a
> > > > > > > > >>> > > > > set
> > > > > > > > >>> > > > >    of docker-compose.yml files to start the
> system
> > > > > > > > >>> > > > >    - it would come in handy to have default
> > Fineract
> > > CN
> > > > > > Docker
> > > > > > > > >>> images
> > > > > > > > >>> > > > >    published on Docker Hub
> > > > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > > > microservice
> > > > > > Git
> > > > > > > > >>> > repository
> > > > > > > > >>> > > > (e.
> > > > > > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > > > >>> fineract-cn-payroll)
> > > > > > > > >>> > > and
> > > > > > > > >>> > > > > let a
> > > > > > > > >>> > > > >    CI server build and publish Docker images of
> > these
> > > > > > > > >>> > > > >    - to avoid code changes or Docker image
> rebuilds
> > > we
> > > > > > should
> > > > > > > > >>> > introduce
> > > > > > > > >>> > > > >    environment variables in the application.yml
> > files
> > > > of
> > > > > > these
> > > > > > > > >>> > > > microservice
> > > > > > > > >>> > > > >    projects; e. g.:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > [code]
> > > > > > > > >>> > > > > ...
> > > > > > > > >>> > > > > cassandra:
> > > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> > > > > > 127.0.0.3:9042
> > > > > > > > >>> > > > >   keyspace: seshat
> > > > > > > > >>> > > > >   cl:
> > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > >>> > > > > ...
> > > > > > > > >>> > > > > [/code]
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > ... should look something like this:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > [code]
> > > > > > > > >>> > > > > ...
> > > > > > > > >>> > > > > cassandra:
> > > > > > > > >>> > > > >   clusterName:
> > > > > > > > >>> > > >
> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > > >>> > > > >   contactPoints:
> > > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > > > > > >>> > > > >   keyspace:
> > > > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > > > >>> > > > >   cl:
> > > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > > >>> > > > > ...
> > > > > > > > >>> > > > > [/config]
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >    - with the above changes we could then define
> > > > > > > > >>> docker-compose.yml
> > > > > > > > >>> > > files
> > > > > > > > >>> > > > >    like this (pseudo file for customer
> > microservice):
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > [code]
> > > > > > > > >>> > > > > version: '3.6'
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > services:
> > > > > > > > >>> > > > >   customer:
> > > > > > > > >>> > > > >     image:
> > > > > > > > >>> >
> > > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > > > >>> > > > >     depends_on:
> > > > > > > > >>> > > > >       - mongo
> > > > > > > > >>> > > > >     env_file:
> > > > > > > > >>> > > > >       - ./customer.env
> > > > > > > > >>> > > > >     ports:
> > > > > > > > >>> > > > >       - "10000:10000"
> > > > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> > > -Duser.timezone=UTC
> > > > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > > > >>> > > > > [/code]
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > ... and the customer.env file would contain
> > something
> > > > > like
> > > > > > > > this:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > [code]
> > > > > > > > >>> > > > >
> > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > >
> > > > > > > > >>> > >
> > > > > > > > >>> >
> > > > > > > > >>>
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > > > >>> > > > > [/code]
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >    - we would provide templates for those env
> files
> > > (e.
> > > > > g.
> > > > > > > > >>> > > > >    "customer.env.template"); custom
> configurations
> > > (e.
> > > > g.
> > > > > > > > >>> > > "customer.env")
> > > > > > > > >>> > > > >    should not be checked into Git
> > > > > > > > >>> > > > >    - if no environment variables are provided
> then
> > > the
> > > > > > defaults
> > > > > > > > >>> in
> > > > > > > > >>> > the
> > > > > > > > >>> > > > >    application.yml config files kick in with
> > > reasonable
> > > > > > values
> > > > > > > > >>> for a
> > > > > > > > >>> > > > local
> > > > > > > > >>> > > > > dev
> > > > > > > > >>> > > > >    machine deployment (given the required
> resources
> > > > > > unlikely
> > > > > > > > for
> > > > > > > > >>> most
> > > > > > > > >>> > > > devs)
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Advantages:
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > > > > > >>> > > > >    - no lengthy builds
> > > > > > > > >>> > > > >    - no re-build (Gradle, Docker) for
> configuration
> > > > > changes
> > > > > > > > >>> > > > >    - no requirement to do cluster (Swarm,
> > Kubernetes)
> > > > > setup
> > > > > > > > >>> > > > >    - the Docker images could still be used as the
> > > basic
> > > > > > > > building
> > > > > > > > >>> > blocks
> > > > > > > > >>> > > > of
> > > > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > > > >>> > > > >    - every service can be started/stopped
> > separately
> > > > > which
> > > > > > > > makes
> > > > > > > > >>> > life a
> > > > > > > > >>> > > > lot
> > > > > > > > >>> > > > >    easier when we have to figure out the right
> > > > > > configuration
> > > > > > > > for
> > > > > > > > >>> the
> > > > > > > > >>> > > demo
> > > > > > > > >>> > > > >    setup (I guess it would make it also easier
> for
> > > > others
> > > > > > that
> > > > > > > > >>> would
> > > > > > > > >>> > > like
> > > > > > > > >>> > > > > to
> > > > > > > > >>> > > > >    setup their own environments)
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > I am using most (if not all) of the required bits
> > and
> > > > > > pieces
> > > > > > > > for
> > > > > > > > >>> this
> > > > > > > > >>> > > > setup
> > > > > > > > >>> > > > > on a daily basis and I think it should be not too
> > > > > > complicated
> > > > > > > > to
> > > > > > > > >>> get
> > > > > > > > >>> > > this
> > > > > > > > >>> > > > > working. And it would not interfere (too much)
> with
> > > the
> > > > > > > > existing
> > > > > > > > >>> Git
> > > > > > > > >>> > > > > repositories.
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Please let me know what you think...
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Cheers,
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > > > Aleks
> > > > > > > > >>> > > > >
> > > > > > > > >>> > > >
> > > > > > > > >>> > >
> > > > > > > > >>> >
> > > > > > > > >>>
> > > > > > > > >>
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > > Hi Isaac,
> > > > > >
> > > > > > I would know, if you noticed difficulties, in setup Fineract-CN
> and
> > > all
> > > > > > its module and demo-server. i am using digital Ocean, followed
> all
> > > the
> > > > > > instructions, yet had some errors in compilation using the
> > > > > > initial-setup.sh, also the fims-web-apps doesn't work. Could you
> > try
> > > to
> > > > > > confirm, I need help on this.
> > > > > >
> > > > > > Thanks,
> > > > > > David Alozie
> > > > > > wiretoothtech@gmail.com
> > > > > > +234 809 944 7105
> > > > > >
> > > > >
> > > >
> > >
> > > <
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > > >
> > > Virus-free.
> > > www.avast.com
> > > <
> > >
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > > >
> > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> > >
> >
>

Re: Fineract CN Demo server setup

Posted by Juhan Aasaru <aa...@gmail.com>.
Hi!

I have managed to set up Travis-CI and Artifactory to build and serve
fineract-cn-* artifacts, these can be found here:
https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/
It will take a few days before I can create pull requests (Vishwas is
helping me to get required permissions / setup on travis-ci).
But since the artifacts (built by travis from my forks -
https://github.com/aasaru/fineract-cn-*) are already there in the
Artifactory I
already wanted to raise the topic how to proceed with Dockerfiles.

As Courage wrote there are Dockerfiles created for some repos (identity,
office customer).
My plan would be to modify these Dockerfiles (and create missing ones) to
use jar-s from the public repo:

So for example identity Dockerfile (
https://github.com/apache/fineract-cn-identity/blob/develop/Dockerfile)
currently has:

COPY identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar .

I would switch it to download the jar from the Artifactory repository by
default like this:

RUN wget -O identity-service-boot-0.1.0-BUILD-SNAPSHOT.jar
https://mifos.jfrog.io/mifos/libs-snapshot/org/apache/fineract/cn/identity/service-boot/0.1.0-BUILD-SNAPSHOT/service-boot-0.1.0-BUILD-SNAPSHOT.jar

Looking forward for your feedback.

Juhan

Kontakt Ed Cable (<ed...@mifos.org>) kirjutas kuupäeval E, 8. aprill 2019
kell 17:26:

> Awasum and Courage, thank you so much for volunteering to take on the
> remaining effort. It's been a long time coming getting this infrastructure
> up after Apache so graciously donated the two VMs.
>
> Awasum, can you request access on the ticket on JIRA where we were
> allocated the VMs?
>
> Thanks,
>
> Ed
>
> On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com> wrote:
>
> > Hi Awasum,
> >
> > I will be happy to help.
> >
> > Regards,
> > Courage.
> >
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > >
> > Virus-free.
> > www.avast.com
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > >
> > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> >
> > On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org>
> wrote:
> >
> > > Hi All,
> > >
> > > How do I access the VMs provided by Infra for setting up a demo server
> > for
> > > Fineract CN? Are there 2 of them?
> > >
> > > Courage, will you like to work with me run FCN using Docker Compose
> just
> > so
> > > the demo server gets up and running? It seems using Docker Swarm will
> > take
> > > more time than we want and I think Aleks is very busy at this moment.
> > >
> > > This is important for the community.
> > >
> > > Thanks
> > >
> > > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <is...@mifos.org>
> > > wrote:
> > >
> > > > Hey David,
> > > >
> > > > Did you fork the Fineract CN repos before running initial-setup.sh
> with
> > > > your Github handle OR did you just use handle 'apache' ? Try using
> the
> > > > handle 'apache' instead.
> > > >
> > > > Also endeavor to specify the errors you face by sharing using a
> pasting
> > > > service like pastebin.com
> > > >
> > > > Cheers,
> > > > Isaac Kamga.
> > > >
> > > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > > wiretoothtech@gmail.com> wrote:
> > > >
> > > > >
> > > > >
> > > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote:
> > > > > > Hello fineracters,
> > > > > >
> > > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage
> angeh
> > > > > > <co...@gmail.com>
> > > > > >
> > > > > > Is there any progress on this front ?
> > > > > >
> > > > > > Most front-end projects (from last year's GSoC students and other
> > > > > > contributors) need this public demo-server in order to do
> rigorous
> > > > > testing.
> > > > > >
> > > > > > At Your Service,
> > > > > > Isaac Kamga.
> > > > > >
> > > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > > cheetah@monkeysintown.com> wrote:
> > > > > >
> > > > > > > Great, Courage! I'll have a look at this.
> > > > > > >
> > > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > > courageangeh@gmail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Alek,
> > > > > > > >
> > > > > > > > I have migrated the Docker files to their respective Fineract
> > > > > > > repositories.
> > > > > > > > Here are draft PRs for three microservices. Please review it
> > and
> > > I
> > > > > will
> > > > > > > > appreciate your feedback on any updates:
> > > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > > >
> > > > > > > > You could review already built docker images on
> > > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > > It's just a rough sample though.
> > > > > > > >
> > > > > > > > In the main time, I am updating the Docker-compose file so it
> > > spins
> > > > > up a
> > > > > > > > swarm cluster.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Courage.
> > > > > > > >
> > > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > > courageangeh@gmail.com
> > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > >> Hi Alek,
> > > > > > > >>
> > > > > > > >> I think we can start with that.
> > > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > > >>
> > > > > > > >> Thanks,
> > > > > > > >> Courage
> > > > > > > >>
> > > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > > >>
> > > > > > > >>> Hi Courage,
> > > > > > > >>>
> > > > > > > >>> ... would be great if you could help out... especially with
> > > your
> > > > > > > >>> knowledge
> > > > > > > >>> about Docker.
> > > > > > > >>>
> > > > > > > >>> Preparing the Git repositories should be fairly easy...
> > another
> > > > > nice
> > > > > > > >>> thing
> > > > > > > >>> to have: some kind of CI server to build and push images to
> > > > Docker
> > > > > hub;
> > > > > > > >>> not
> > > > > > > >>> sure if Fineract is currently using Jenkins at Apache... in
> > any
> > > > > case
> > > > > > > not
> > > > > > > >>> a
> > > > > > > >>> big thing... setting up things with Travis or similar is
> not
> > a
> > > > big
> > > > > > > deal.
> > > > > > > >>>
> > > > > > > >>> Anything else you can think of?
> > > > > > > >>>
> > > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > > courageangeh@gmail.com>
> > > > > > > >>> wrote:
> > > > > > > >>>
> > > > > > > >>> > Hi Aleksandar,
> > > > > > > >>> >
> > > > > > > >>> > I can work with you on migrating the Fineract services
> from
> > > > > Docker
> > > > > > > >>> compose
> > > > > > > >>> > to Docker Swarm.
> > > > > > > >>> > Then pushing the Fineract images to Docker Hub so it's
> > easily
> > > > > > > >>> accessible.
> > > > > > > >>> >
> > > > > > > >>> > I think that will require Ed to create a Docker Hub
> account
> > > for
> > > > > > > >>> > Mifos/Fineract.
> > > > > > > >>> >
> > > > > > > >>> > Thanks,
> > > > > > > >>> > Courage.
> > > > > > > >>> >
> > > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > > >>> >
> > > > > > > >>> > > Hi Juan,
> > > > > > > >>> > >
> > > > > > > >>> > > ... thanks for chiming in... and thanks for the pointer
> > to
> > > > the
> > > > > Git
> > > > > > > >>> > > repository with the Dockerfiles; that makes life
> already
> > a
> > > > lot
> > > > > > > >>> easier.
> > > > > > > >>> > >
> > > > > > > >>> > > You are right, once you have the docker-compose.yml
> files
> > > > > lined up
> > > > > > > >>> it's
> > > > > > > >>> > not
> > > > > > > >>> > > a big stretch to setup a Swarm cluster. After running
> > such
> > > a
> > > > > > > cluster
> > > > > > > >>> for
> > > > > > > >>> > a
> > > > > > > >>> > > client of mine I just want to add:
> > > > > > > >>> > >
> > > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not run
> > very
> > > > > stable;
> > > > > > > >>> I'm
> > > > > > > >>> > > saying this, because at the moment we have 2 servers at
> > our
> > > > > > > disposal
> > > > > > > >>> (I
> > > > > > > >>> > > think)
> > > > > > > >>> > > - colleagues told me that Swarm cluster worked less
> > > reliable
> > > > > for
> > > > > > > them
> > > > > > > >>> > than
> > > > > > > >>> > > other solutions; I don't think for a demo system that
> is
> > > too
> > > > > much
> > > > > > > of
> > > > > > > >>> a
> > > > > > > >>> > > concern, but again I had one running in a production
> > > > > environment
> > > > > > > and
> > > > > > > >>> had
> > > > > > > >>> > no
> > > > > > > >>> > > major problems
> > > > > > > >>> > >
> > > > > > > >>> > > If you want then let's connect (aleks@apache.org) and
> > > figure
> > > > > out
> > > > > > > >>> how we
> > > > > > > >>> > > can
> > > > > > > >>> > > proceed with this... before the next GSoC season begins
> > ;-)
> > > > > > > >>> > >
> > > > > > > >>> > > Cheers
> > > > > > > >>> > >
> > > > > > > >>> > >
> > > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > > aasaru@gmail.com
> > > > > >
> > > > > > > >>> wrote:
> > > > > > > >>> > >
> > > > > > > >>> > > > Hi Aleks
> > > > > > > >>> > > >
> > > > > > > >>> > > > Thanks for your work on pushing the demo server to
> > live.
> > > > > > > >>> > > > I have played around with the containers also and I
> add
> > > my
> > > > > > > >>> feedback and
> > > > > > > >>> > > > ideas.
> > > > > > > >>> > > >
> > > > > > > >>> > > > > - it would come in handy to have default Fineract
> CN
> > > > Docker
> > > > > > > >>> images
> > > > > > > >>> > > > published on Docker Hub
> > > > > > > >>> > > >
> > > > > > > >>> > > > I think this is a way to go. If we want to promote
> > > adoption
> > > > > of
> > > > > > > >>> > > Fineract-CN
> > > > > > > >>> > > > then public images
> > > > > > > >>> > > > lower the burden to anyone to download and get going
> > with
> > > > the
> > > > > > > >>> project.
> > > > > > > >>> > > > Does the CI server already exist that could
> potentially
> > > > > build the
> > > > > > > >>> > images?
> > > > > > > >>> > > >
> > > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> > microservice
> > > > Git
> > > > > > > >>> > repository
> > > > > > > >>> > > > (e.
> > > > > > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > > >>> fineract-cn-payroll)
> > > > > > > >>> > > and
> > > > > > > >>> > > > let a
> > > > > > > >>> > > >  >   CI server build and publish Docker images of
> these
> > > > > > > >>> > > >
> > > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > > > > >>> > > > But they logically belong to the application's own
> code
> > > > base
> > > > > so I
> > > > > > > >>> see
> > > > > > > >>> > no
> > > > > > > >>> > > > harm in adding all
> > > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > > >>> > > >
> > > > > > > >>> > > >   - I am assuming that we **don't** want to go all
> the
> > > way
> > > > to
> > > > > > > >>> setup a
> > > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal
> > is
> > > to
> > > > > just
> > > > > > > >>> have a
> > > > > > > >>> > > set
> > > > > > > >>> > > >
> > > > > > > >>> > > > If we plan to operate with docker-compose already
> (and
> > > run
> > > > > in two
> > > > > > > >>> > > servers)
> > > > > > > >>> > > > then I, in my opinion, it wouldn't be much overhead
> to
> > > > > create a
> > > > > > > >>> Swarm
> > > > > > > >>> > > > cluster.
> > > > > > > >>> > > > If I look at the instructions (
> > > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > > >>> > > > Also if something happens then Swarm can detect and
> > > > relaunch
> > > > > > > >>> > containers.
> > > > > > > >>> > > > But I'm no system administrator myself so I might be
> > > > > mistaken in
> > > > > > > >>> terms
> > > > > > > >>> > of
> > > > > > > >>> > > > how much work it requires.
> > > > > > > >>> > > >
> > > > > > > >>> > > > > - to avoid code changes or Docker image rebuilds we
> > > > should
> > > > > > > >>> introduce
> > > > > > > >>> > > > >   environment variables in the application.yml
> files
> > of
> > > > > these
> > > > > > > >>> > > > microservice
> > > > > > > >>> > > > >   projects; e. g.:
> > > > > > > >>> > > > > cassandra:
> > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > >>> > > >  /---/
> > > > > > > >>> > > > > ... should look something like this:
> > > > > > > >>> > > > > cassandra:
> > > > > > > >>> > > > >   clusterName:
> > > > > > > >>> > > >
> > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > >>> > > > /---/
> > > > > > > >>> > > >
> > > > > > > >>> > > > I think there is no need to change application.yml
> > files.
> > > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > > application.yml
> > > > > > > >>> property in
> > > > > > > >>> > > > "environment" section like this:
> > > > > > > >>> > > >
> > > > > > > >>> > > >    environment:
> > > > > > > >>> > > >       -
> > > > > > > >>> > > >
> > > > > > > >>> > > >
> > > > > > > >>> > >
> > > > > > > >>> >
> > > > > > > >>>
> > > > > > >
> > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > > >>> > > >
> > > > > > > >>> > > > Juhan
> > > > > > > >>> > > >
> > > > > > > >>> > > >
> > > > > > > >>> > > >
> > > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> > cheetah@monkeysintown.com
> > > >)
> > > > > > > >>> kirjutas
> > > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > > >>> > > >
> > > > > > > >>> > > > > Hi everyone,
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > ... hope you all enjoyed the holidays and had a
> good
> > > > start
> > > > > into
> > > > > > > >>> the
> > > > > > > >>> > new
> > > > > > > >>> > > > > year :-)
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > I have to appologize for my radio silence
> concerning
> > > the
> > > > > demo
> > > > > > > >>> server,
> > > > > > > >>> > > > but I
> > > > > > > >>> > > > > got a bit steam rolled by work in the last 6
> months.
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Anyway, I just wanted to get this effort going
> again
> > > and
> > > > > would
> > > > > > > >>> like
> > > > > > > >>> > to
> > > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > The current status:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >    - we have 2 (quite big) servers provided by the
> > > Apache
> > > > > > > >>> Foundation
> > > > > > > >>> > to
> > > > > > > >>> > > > run
> > > > > > > >>> > > > >    the demo setup
> > > > > > > >>> > > > >    - initially I tried to get it running on one,
> but
> > > was
> > > > > not
> > > > > > > >>> enough
> > > > > > > >>> > > (even
> > > > > > > >>> > > > >    with 32GB of RAM and some swap configuration
> > tricks)
> > > > > > > >>> > > > >    - I've used the demo server module with some
> minor
> > > > > > > >>> modifications
> > > > > > > >>> > to
> > > > > > > >>> > > > turn
> > > > > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Trying all of this took quite some time... even on
> > the
> > > > > beefy
> > > > > > > >>> machine
> > > > > > > >>> > > from
> > > > > > > >>> > > > > Apache it took (as far as I remember) 30-40min
> until
> > > the
> > > > > demo
> > > > > > > >>> server
> > > > > > > >>> > > > > startup would ultimately fail.
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Instead of going down that route again I'd like to
> > > > propose
> > > > > a
> > > > > > > >>> > different
> > > > > > > >>> > > > > strategy:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >    - I am assuming that we **don't** want to go all
> > the
> > > > > way to
> > > > > > > >>> setup
> > > > > > > >>> > a
> > > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the
> > > goal
> > > > > is to
> > > > > > > >>> just
> > > > > > > >>> > > have
> > > > > > > >>> > > > a
> > > > > > > >>> > > > > set
> > > > > > > >>> > > > >    of docker-compose.yml files to start the system
> > > > > > > >>> > > > >    - it would come in handy to have default
> Fineract
> > CN
> > > > > Docker
> > > > > > > >>> images
> > > > > > > >>> > > > >    published on Docker Hub
> > > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > > microservice
> > > > > Git
> > > > > > > >>> > repository
> > > > > > > >>> > > > (e.
> > > > > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > > >>> fineract-cn-payroll)
> > > > > > > >>> > > and
> > > > > > > >>> > > > > let a
> > > > > > > >>> > > > >    CI server build and publish Docker images of
> these
> > > > > > > >>> > > > >    - to avoid code changes or Docker image rebuilds
> > we
> > > > > should
> > > > > > > >>> > introduce
> > > > > > > >>> > > > >    environment variables in the application.yml
> files
> > > of
> > > > > these
> > > > > > > >>> > > > microservice
> > > > > > > >>> > > > >    projects; e. g.:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > [code]
> > > > > > > >>> > > > > ...
> > > > > > > >>> > > > > cassandra:
> > > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> > > > > 127.0.0.3:9042
> > > > > > > >>> > > > >   keyspace: seshat
> > > > > > > >>> > > > >   cl:
> > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > >>> > > > > ...
> > > > > > > >>> > > > > [/code]
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > ... should look something like this:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > [code]
> > > > > > > >>> > > > > ...
> > > > > > > >>> > > > > cassandra:
> > > > > > > >>> > > > >   clusterName:
> > > > > > > >>> > > >
> > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > > >>> > > > >   contactPoints:
> > > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > > > > >>> > > > >   keyspace:
> > > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > > >>> > > > >   cl:
> > > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > > >>> > > > > ...
> > > > > > > >>> > > > > [/config]
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >    - with the above changes we could then define
> > > > > > > >>> docker-compose.yml
> > > > > > > >>> > > files
> > > > > > > >>> > > > >    like this (pseudo file for customer
> microservice):
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > [code]
> > > > > > > >>> > > > > version: '3.6'
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > services:
> > > > > > > >>> > > > >   customer:
> > > > > > > >>> > > > >     image:
> > > > > > > >>> >
> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > > >>> > > > >     depends_on:
> > > > > > > >>> > > > >       - mongo
> > > > > > > >>> > > > >     env_file:
> > > > > > > >>> > > > >       - ./customer.env
> > > > > > > >>> > > > >     ports:
> > > > > > > >>> > > > >       - "10000:10000"
> > > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> > -Duser.timezone=UTC
> > > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > > >>> > > > > [/code]
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > ... and the customer.env file would contain
> something
> > > > like
> > > > > > > this:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > [code]
> > > > > > > >>> > > > >
> FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >
> > > > > > > >>> > > >
> > > > > > > >>> > >
> > > > > > > >>> >
> > > > > > > >>>
> > > > > > >
> > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > > >>> > > > > [/code]
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >    - we would provide templates for those env files
> > (e.
> > > > g.
> > > > > > > >>> > > > >    "customer.env.template"); custom configurations
> > (e.
> > > g.
> > > > > > > >>> > > "customer.env")
> > > > > > > >>> > > > >    should not be checked into Git
> > > > > > > >>> > > > >    - if no environment variables are provided then
> > the
> > > > > defaults
> > > > > > > >>> in
> > > > > > > >>> > the
> > > > > > > >>> > > > >    application.yml config files kick in with
> > reasonable
> > > > > values
> > > > > > > >>> for a
> > > > > > > >>> > > > local
> > > > > > > >>> > > > > dev
> > > > > > > >>> > > > >    machine deployment (given the required resources
> > > > > unlikely
> > > > > > > for
> > > > > > > >>> most
> > > > > > > >>> > > > devs)
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Advantages:
> > > > > > > >>> > > > >
> > > > > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > > > > >>> > > > >    - no lengthy builds
> > > > > > > >>> > > > >    - no re-build (Gradle, Docker) for configuration
> > > > changes
> > > > > > > >>> > > > >    - no requirement to do cluster (Swarm,
> Kubernetes)
> > > > setup
> > > > > > > >>> > > > >    - the Docker images could still be used as the
> > basic
> > > > > > > building
> > > > > > > >>> > blocks
> > > > > > > >>> > > > of
> > > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > > >>> > > > >    - every service can be started/stopped
> separately
> > > > which
> > > > > > > makes
> > > > > > > >>> > life a
> > > > > > > >>> > > > lot
> > > > > > > >>> > > > >    easier when we have to figure out the right
> > > > > configuration
> > > > > > > for
> > > > > > > >>> the
> > > > > > > >>> > > demo
> > > > > > > >>> > > > >    setup (I guess it would make it also easier for
> > > others
> > > > > that
> > > > > > > >>> would
> > > > > > > >>> > > like
> > > > > > > >>> > > > > to
> > > > > > > >>> > > > >    setup their own environments)
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > I am using most (if not all) of the required bits
> and
> > > > > pieces
> > > > > > > for
> > > > > > > >>> this
> > > > > > > >>> > > > setup
> > > > > > > >>> > > > > on a daily basis and I think it should be not too
> > > > > complicated
> > > > > > > to
> > > > > > > >>> get
> > > > > > > >>> > > this
> > > > > > > >>> > > > > working. And it would not interfere (too much) with
> > the
> > > > > > > existing
> > > > > > > >>> Git
> > > > > > > >>> > > > > repositories.
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Please let me know what you think...
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Cheers,
> > > > > > > >>> > > > >
> > > > > > > >>> > > > > Aleks
> > > > > > > >>> > > > >
> > > > > > > >>> > > >
> > > > > > > >>> > >
> > > > > > > >>> >
> > > > > > > >>>
> > > > > > > >>
> > > > > > >
> > > > > >
> > > > >
> > > > > Hi Isaac,
> > > > >
> > > > > I would know, if you noticed difficulties, in setup Fineract-CN and
> > all
> > > > > its module and demo-server. i am using digital Ocean, followed all
> > the
> > > > > instructions, yet had some errors in compilation using the
> > > > > initial-setup.sh, also the fims-web-apps doesn't work. Could you
> try
> > to
> > > > > confirm, I need help on this.
> > > > >
> > > > > Thanks,
> > > > > David Alozie
> > > > > wiretoothtech@gmail.com
> > > > > +234 809 944 7105
> > > > >
> > > >
> > >
> >
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> > >
> > Virus-free.
> > www.avast.com
> > <
> >
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> > >
> > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
> >
>

Re: Fineract CN Demo server setup

Posted by Ed Cable <ed...@mifos.org>.
Awasum and Courage, thank you so much for volunteering to take on the
remaining effort. It's been a long time coming getting this infrastructure
up after Apache so graciously donated the two VMs.

Awasum, can you request access on the ticket on JIRA where we were
allocated the VMs?

Thanks,

Ed

On Sun, Apr 7, 2019, 20:34 Courage Angeh <co...@gmail.com> wrote:

> Hi Awasum,
>
> I will be happy to help.
>
> Regards,
> Courage.
>
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> >
> Virus-free.
> www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org> wrote:
>
> > Hi All,
> >
> > How do I access the VMs provided by Infra for setting up a demo server
> for
> > Fineract CN? Are there 2 of them?
> >
> > Courage, will you like to work with me run FCN using Docker Compose just
> so
> > the demo server gets up and running? It seems using Docker Swarm will
> take
> > more time than we want and I think Aleks is very busy at this moment.
> >
> > This is important for the community.
> >
> > Thanks
> >
> > On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <is...@mifos.org>
> > wrote:
> >
> > > Hey David,
> > >
> > > Did you fork the Fineract CN repos before running initial-setup.sh with
> > > your Github handle OR did you just use handle 'apache' ? Try using the
> > > handle 'apache' instead.
> > >
> > > Also endeavor to specify the errors you face by sharing using a pasting
> > > service like pastebin.com
> > >
> > > Cheers,
> > > Isaac Kamga.
> > >
> > > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > > wiretoothtech@gmail.com> wrote:
> > >
> > > >
> > > >
> > > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote:
> > > > > Hello fineracters,
> > > > >
> > > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> > > > > <co...@gmail.com>
> > > > >
> > > > > Is there any progress on this front ?
> > > > >
> > > > > Most front-end projects (from last year's GSoC students and other
> > > > > contributors) need this public demo-server in order to do rigorous
> > > > testing.
> > > > >
> > > > > At Your Service,
> > > > > Isaac Kamga.
> > > > >
> > > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > > cheetah@monkeysintown.com> wrote:
> > > > >
> > > > > > Great, Courage! I'll have a look at this.
> > > > > >
> > > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > > courageangeh@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Alek,
> > > > > > >
> > > > > > > I have migrated the Docker files to their respective Fineract
> > > > > > repositories.
> > > > > > > Here are draft PRs for three microservices. Please review it
> and
> > I
> > > > will
> > > > > > > appreciate your feedback on any updates:
> > > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > > >
> > > > > > > You could review already built docker images on
> > > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > > It's just a rough sample though.
> > > > > > >
> > > > > > > In the main time, I am updating the Docker-compose file so it
> > spins
> > > > up a
> > > > > > > swarm cluster.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Courage.
> > > > > > >
> > > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > > courageangeh@gmail.com
> > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > >> Hi Alek,
> > > > > > >>
> > > > > > >> I think we can start with that.
> > > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > > >>
> > > > > > >> Thanks,
> > > > > > >> Courage
> > > > > > >>
> > > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > > >>
> > > > > > >>> Hi Courage,
> > > > > > >>>
> > > > > > >>> ... would be great if you could help out... especially with
> > your
> > > > > > >>> knowledge
> > > > > > >>> about Docker.
> > > > > > >>>
> > > > > > >>> Preparing the Git repositories should be fairly easy...
> another
> > > > nice
> > > > > > >>> thing
> > > > > > >>> to have: some kind of CI server to build and push images to
> > > Docker
> > > > hub;
> > > > > > >>> not
> > > > > > >>> sure if Fineract is currently using Jenkins at Apache... in
> any
> > > > case
> > > > > > not
> > > > > > >>> a
> > > > > > >>> big thing... setting up things with Travis or similar is not
> a
> > > big
> > > > > > deal.
> > > > > > >>>
> > > > > > >>> Anything else you can think of?
> > > > > > >>>
> > > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > > courageangeh@gmail.com>
> > > > > > >>> wrote:
> > > > > > >>>
> > > > > > >>> > Hi Aleksandar,
> > > > > > >>> >
> > > > > > >>> > I can work with you on migrating the Fineract services from
> > > > Docker
> > > > > > >>> compose
> > > > > > >>> > to Docker Swarm.
> > > > > > >>> > Then pushing the Fineract images to Docker Hub so it's
> easily
> > > > > > >>> accessible.
> > > > > > >>> >
> > > > > > >>> > I think that will require Ed to create a Docker Hub account
> > for
> > > > > > >>> > Mifos/Fineract.
> > > > > > >>> >
> > > > > > >>> > Thanks,
> > > > > > >>> > Courage.
> > > > > > >>> >
> > > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > > >>> >
> > > > > > >>> > > Hi Juan,
> > > > > > >>> > >
> > > > > > >>> > > ... thanks for chiming in... and thanks for the pointer
> to
> > > the
> > > > Git
> > > > > > >>> > > repository with the Dockerfiles; that makes life already
> a
> > > lot
> > > > > > >>> easier.
> > > > > > >>> > >
> > > > > > >>> > > You are right, once you have the docker-compose.yml files
> > > > lined up
> > > > > > >>> it's
> > > > > > >>> > not
> > > > > > >>> > > a big stretch to setup a Swarm cluster. After running
> such
> > a
> > > > > > cluster
> > > > > > >>> for
> > > > > > >>> > a
> > > > > > >>> > > client of mine I just want to add:
> > > > > > >>> > >
> > > > > > >>> > > - a Swarm cluster with less than 3 nodes will not run
> very
> > > > stable;
> > > > > > >>> I'm
> > > > > > >>> > > saying this, because at the moment we have 2 servers at
> our
> > > > > > disposal
> > > > > > >>> (I
> > > > > > >>> > > think)
> > > > > > >>> > > - colleagues told me that Swarm cluster worked less
> > reliable
> > > > for
> > > > > > them
> > > > > > >>> > than
> > > > > > >>> > > other solutions; I don't think for a demo system that is
> > too
> > > > much
> > > > > > of
> > > > > > >>> a
> > > > > > >>> > > concern, but again I had one running in a production
> > > > environment
> > > > > > and
> > > > > > >>> had
> > > > > > >>> > no
> > > > > > >>> > > major problems
> > > > > > >>> > >
> > > > > > >>> > > If you want then let's connect (aleks@apache.org) and
> > figure
> > > > out
> > > > > > >>> how we
> > > > > > >>> > > can
> > > > > > >>> > > proceed with this... before the next GSoC season begins
> ;-)
> > > > > > >>> > >
> > > > > > >>> > > Cheers
> > > > > > >>> > >
> > > > > > >>> > >
> > > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > > aasaru@gmail.com
> > > > >
> > > > > > >>> wrote:
> > > > > > >>> > >
> > > > > > >>> > > > Hi Aleks
> > > > > > >>> > > >
> > > > > > >>> > > > Thanks for your work on pushing the demo server to
> live.
> > > > > > >>> > > > I have played around with the containers also and I add
> > my
> > > > > > >>> feedback and
> > > > > > >>> > > > ideas.
> > > > > > >>> > > >
> > > > > > >>> > > > > - it would come in handy to have default Fineract CN
> > > Docker
> > > > > > >>> images
> > > > > > >>> > > > published on Docker Hub
> > > > > > >>> > > >
> > > > > > >>> > > > I think this is a way to go. If we want to promote
> > adoption
> > > > of
> > > > > > >>> > > Fineract-CN
> > > > > > >>> > > > then public images
> > > > > > >>> > > > lower the burden to anyone to download and get going
> with
> > > the
> > > > > > >>> project.
> > > > > > >>> > > > Does the CI server already exist that could potentially
> > > > build the
> > > > > > >>> > images?
> > > > > > >>> > > >
> > > > > > >>> > > >  >  - I suggest to add a Dockerfile in every
> microservice
> > > Git
> > > > > > >>> > repository
> > > > > > >>> > > > (e.
> > > > > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > >>> fineract-cn-payroll)
> > > > > > >>> > > and
> > > > > > >>> > > > let a
> > > > > > >>> > > >  >   CI server build and publish Docker images of these
> > > > > > >>> > > >
> > > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > > > >>> > > > But they logically belong to the application's own code
> > > base
> > > > so I
> > > > > > >>> see
> > > > > > >>> > no
> > > > > > >>> > > > harm in adding all
> > > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > > >>> > > >
> > > > > > >>> > > >   - I am assuming that we **don't** want to go all the
> > way
> > > to
> > > > > > >>> setup a
> > > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal
> is
> > to
> > > > just
> > > > > > >>> have a
> > > > > > >>> > > set
> > > > > > >>> > > >
> > > > > > >>> > > > If we plan to operate with docker-compose already (and
> > run
> > > > in two
> > > > > > >>> > > servers)
> > > > > > >>> > > > then I, in my opinion, it wouldn't be much overhead to
> > > > create a
> > > > > > >>> Swarm
> > > > > > >>> > > > cluster.
> > > > > > >>> > > > If I look at the instructions (
> > > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > > >>> > > > Also if something happens then Swarm can detect and
> > > relaunch
> > > > > > >>> > containers.
> > > > > > >>> > > > But I'm no system administrator myself so I might be
> > > > mistaken in
> > > > > > >>> terms
> > > > > > >>> > of
> > > > > > >>> > > > how much work it requires.
> > > > > > >>> > > >
> > > > > > >>> > > > > - to avoid code changes or Docker image rebuilds we
> > > should
> > > > > > >>> introduce
> > > > > > >>> > > > >   environment variables in the application.yml files
> of
> > > > these
> > > > > > >>> > > > microservice
> > > > > > >>> > > > >   projects; e. g.:
> > > > > > >>> > > > > cassandra:
> > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > >>> > > >  /---/
> > > > > > >>> > > > > ... should look something like this:
> > > > > > >>> > > > > cassandra:
> > > > > > >>> > > > >   clusterName:
> > > > > > >>> > > >
> > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > >>> > > > /---/
> > > > > > >>> > > >
> > > > > > >>> > > > I think there is no need to change application.yml
> files.
> > > > > > >>> > > > In docker-compose.yml you can overwrite any
> > application.yml
> > > > > > >>> property in
> > > > > > >>> > > > "environment" section like this:
> > > > > > >>> > > >
> > > > > > >>> > > >    environment:
> > > > > > >>> > > >       -
> > > > > > >>> > > >
> > > > > > >>> > > >
> > > > > > >>> > >
> > > > > > >>> >
> > > > > > >>>
> > > > > >
> > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > > >>> > > >
> > > > > > >>> > > > Juhan
> > > > > > >>> > > >
> > > > > > >>> > > >
> > > > > > >>> > > >
> > > > > > >>> > > > Kontakt Aleksandar Vidakovic (<
> cheetah@monkeysintown.com
> > >)
> > > > > > >>> kirjutas
> > > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > > >>> > > >
> > > > > > >>> > > > > Hi everyone,
> > > > > > >>> > > > >
> > > > > > >>> > > > > ... hope you all enjoyed the holidays and had a good
> > > start
> > > > into
> > > > > > >>> the
> > > > > > >>> > new
> > > > > > >>> > > > > year :-)
> > > > > > >>> > > > >
> > > > > > >>> > > > > I have to appologize for my radio silence concerning
> > the
> > > > demo
> > > > > > >>> server,
> > > > > > >>> > > > but I
> > > > > > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > > > > > >>> > > > >
> > > > > > >>> > > > > Anyway, I just wanted to get this effort going again
> > and
> > > > would
> > > > > > >>> like
> > > > > > >>> > to
> > > > > > >>> > > > > discuss it with anyone interested.
> > > > > > >>> > > > >
> > > > > > >>> > > > > The current status:
> > > > > > >>> > > > >
> > > > > > >>> > > > >    - we have 2 (quite big) servers provided by the
> > Apache
> > > > > > >>> Foundation
> > > > > > >>> > to
> > > > > > >>> > > > run
> > > > > > >>> > > > >    the demo setup
> > > > > > >>> > > > >    - initially I tried to get it running on one, but
> > was
> > > > not
> > > > > > >>> enough
> > > > > > >>> > > (even
> > > > > > >>> > > > >    with 32GB of RAM and some swap configuration
> tricks)
> > > > > > >>> > > > >    - I've used the demo server module with some minor
> > > > > > >>> modifications
> > > > > > >>> > to
> > > > > > >>> > > > turn
> > > > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > > > >>> > > > >
> > > > > > >>> > > > > Trying all of this took quite some time... even on
> the
> > > > beefy
> > > > > > >>> machine
> > > > > > >>> > > from
> > > > > > >>> > > > > Apache it took (as far as I remember) 30-40min until
> > the
> > > > demo
> > > > > > >>> server
> > > > > > >>> > > > > startup would ultimately fail.
> > > > > > >>> > > > >
> > > > > > >>> > > > > Instead of going down that route again I'd like to
> > > propose
> > > > a
> > > > > > >>> > different
> > > > > > >>> > > > > strategy:
> > > > > > >>> > > > >
> > > > > > >>> > > > >    - I am assuming that we **don't** want to go all
> the
> > > > way to
> > > > > > >>> setup
> > > > > > >>> > a
> > > > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the
> > goal
> > > > is to
> > > > > > >>> just
> > > > > > >>> > > have
> > > > > > >>> > > > a
> > > > > > >>> > > > > set
> > > > > > >>> > > > >    of docker-compose.yml files to start the system
> > > > > > >>> > > > >    - it would come in handy to have default Fineract
> CN
> > > > Docker
> > > > > > >>> images
> > > > > > >>> > > > >    published on Docker Hub
> > > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> > microservice
> > > > Git
> > > > > > >>> > repository
> > > > > > >>> > > > (e.
> > > > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > > >>> fineract-cn-payroll)
> > > > > > >>> > > and
> > > > > > >>> > > > > let a
> > > > > > >>> > > > >    CI server build and publish Docker images of these
> > > > > > >>> > > > >    - to avoid code changes or Docker image rebuilds
> we
> > > > should
> > > > > > >>> > introduce
> > > > > > >>> > > > >    environment variables in the application.yml files
> > of
> > > > these
> > > > > > >>> > > > microservice
> > > > > > >>> > > > >    projects; e. g.:
> > > > > > >>> > > > >
> > > > > > >>> > > > > [code]
> > > > > > >>> > > > > ...
> > > > > > >>> > > > > cassandra:
> > > > > > >>> > > > >   clusterName: staging_cluster
> > > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> > > > 127.0.0.3:9042
> > > > > > >>> > > > >   keyspace: seshat
> > > > > > >>> > > > >   cl:
> > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > >>> > > > > ...
> > > > > > >>> > > > > [/code]
> > > > > > >>> > > > >
> > > > > > >>> > > > > ... should look something like this:
> > > > > > >>> > > > >
> > > > > > >>> > > > > [code]
> > > > > > >>> > > > > ...
> > > > > > >>> > > > > cassandra:
> > > > > > >>> > > > >   clusterName:
> > > > > > >>> > > >
> > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > > >>> > > > >   contactPoints:
> > > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > > > >>> > > > >   keyspace:
> > > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > > >>> > > > >   cl:
> > > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > > >>> > > > > ...
> > > > > > >>> > > > > [/config]
> > > > > > >>> > > > >
> > > > > > >>> > > > >    - with the above changes we could then define
> > > > > > >>> docker-compose.yml
> > > > > > >>> > > files
> > > > > > >>> > > > >    like this (pseudo file for customer microservice):
> > > > > > >>> > > > >
> > > > > > >>> > > > > [code]
> > > > > > >>> > > > > version: '3.6'
> > > > > > >>> > > > >
> > > > > > >>> > > > > services:
> > > > > > >>> > > > >   customer:
> > > > > > >>> > > > >     image:
> > > > > > >>> >
> nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > > >>> > > > >     depends_on:
> > > > > > >>> > > > >       - mongo
> > > > > > >>> > > > >     env_file:
> > > > > > >>> > > > >       - ./customer.env
> > > > > > >>> > > > >     ports:
> > > > > > >>> > > > >       - "10000:10000"
> > > > > > >>> > > > >     command: sh -c "java -Xmx1024m
> -Duser.timezone=UTC
> > > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > > >>> > > > > [/code]
> > > > > > >>> > > > >
> > > > > > >>> > > > > ... and the customer.env file would contain something
> > > like
> > > > > > this:
> > > > > > >>> > > > >
> > > > > > >>> > > > > [code]
> > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > > >>> > > > >
> > > > > > >>> > > > >
> > > > > > >>> > > >
> > > > > > >>> > >
> > > > > > >>> >
> > > > > > >>>
> > > > > >
> > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > > >>> > > > > [/code]
> > > > > > >>> > > > >
> > > > > > >>> > > > >    - we would provide templates for those env files
> (e.
> > > g.
> > > > > > >>> > > > >    "customer.env.template"); custom configurations
> (e.
> > g.
> > > > > > >>> > > "customer.env")
> > > > > > >>> > > > >    should not be checked into Git
> > > > > > >>> > > > >    - if no environment variables are provided then
> the
> > > > defaults
> > > > > > >>> in
> > > > > > >>> > the
> > > > > > >>> > > > >    application.yml config files kick in with
> reasonable
> > > > values
> > > > > > >>> for a
> > > > > > >>> > > > local
> > > > > > >>> > > > > dev
> > > > > > >>> > > > >    machine deployment (given the required resources
> > > > unlikely
> > > > > > for
> > > > > > >>> most
> > > > > > >>> > > > devs)
> > > > > > >>> > > > >
> > > > > > >>> > > > >
> > > > > > >>> > > > > Advantages:
> > > > > > >>> > > > >
> > > > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > > > >>> > > > >    - no lengthy builds
> > > > > > >>> > > > >    - no re-build (Gradle, Docker) for configuration
> > > changes
> > > > > > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes)
> > > setup
> > > > > > >>> > > > >    - the Docker images could still be used as the
> basic
> > > > > > building
> > > > > > >>> > blocks
> > > > > > >>> > > > of
> > > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > > >>> > > > >    - every service can be started/stopped separately
> > > which
> > > > > > makes
> > > > > > >>> > life a
> > > > > > >>> > > > lot
> > > > > > >>> > > > >    easier when we have to figure out the right
> > > > configuration
> > > > > > for
> > > > > > >>> the
> > > > > > >>> > > demo
> > > > > > >>> > > > >    setup (I guess it would make it also easier for
> > others
> > > > that
> > > > > > >>> would
> > > > > > >>> > > like
> > > > > > >>> > > > > to
> > > > > > >>> > > > >    setup their own environments)
> > > > > > >>> > > > >
> > > > > > >>> > > > > I am using most (if not all) of the required bits and
> > > > pieces
> > > > > > for
> > > > > > >>> this
> > > > > > >>> > > > setup
> > > > > > >>> > > > > on a daily basis and I think it should be not too
> > > > complicated
> > > > > > to
> > > > > > >>> get
> > > > > > >>> > > this
> > > > > > >>> > > > > working. And it would not interfere (too much) with
> the
> > > > > > existing
> > > > > > >>> Git
> > > > > > >>> > > > > repositories.
> > > > > > >>> > > > >
> > > > > > >>> > > > > Please let me know what you think...
> > > > > > >>> > > > >
> > > > > > >>> > > > > Cheers,
> > > > > > >>> > > > >
> > > > > > >>> > > > > Aleks
> > > > > > >>> > > > >
> > > > > > >>> > > >
> > > > > > >>> > >
> > > > > > >>> >
> > > > > > >>>
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > > > Hi Isaac,
> > > >
> > > > I would know, if you noticed difficulties, in setup Fineract-CN and
> all
> > > > its module and demo-server. i am using digital Ocean, followed all
> the
> > > > instructions, yet had some errors in compilation using the
> > > > initial-setup.sh, also the fims-web-apps doesn't work. Could you try
> to
> > > > confirm, I need help on this.
> > > >
> > > > Thanks,
> > > > David Alozie
> > > > wiretoothtech@gmail.com
> > > > +234 809 944 7105
> > > >
> > >
> >
>
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon
> >
> Virus-free.
> www.avast.com
> <
> https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link
> >
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>

Re: Fineract CN Demo server setup

Posted by Courage Angeh <co...@gmail.com>.
Hi Awasum,

I will be happy to help.

Regards,
Courage.

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Apr 7, 2019 at 11:26 AM Awasum Yannick <aw...@apache.org> wrote:

> Hi All,
>
> How do I access the VMs provided by Infra for setting up a demo server for
> Fineract CN? Are there 2 of them?
>
> Courage, will you like to work with me run FCN using Docker Compose just so
> the demo server gets up and running? It seems using Docker Swarm will take
> more time than we want and I think Aleks is very busy at this moment.
>
> This is important for the community.
>
> Thanks
>
> On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <is...@mifos.org>
> wrote:
>
> > Hey David,
> >
> > Did you fork the Fineract CN repos before running initial-setup.sh with
> > your Github handle OR did you just use handle 'apache' ? Try using the
> > handle 'apache' instead.
> >
> > Also endeavor to specify the errors you face by sharing using a pasting
> > service like pastebin.com
> >
> > Cheers,
> > Isaac Kamga.
> >
> > On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> > wiretoothtech@gmail.com> wrote:
> >
> > >
> > >
> > > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote:
> > > > Hello fineracters,
> > > >
> > > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> > > > <co...@gmail.com>
> > > >
> > > > Is there any progress on this front ?
> > > >
> > > > Most front-end projects (from last year's GSoC students and other
> > > > contributors) need this public demo-server in order to do rigorous
> > > testing.
> > > >
> > > > At Your Service,
> > > > Isaac Kamga.
> > > >
> > > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > > cheetah@monkeysintown.com> wrote:
> > > >
> > > > > Great, Courage! I'll have a look at this.
> > > > >
> > > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> > courageangeh@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hi Alek,
> > > > > >
> > > > > > I have migrated the Docker files to their respective Fineract
> > > > > repositories.
> > > > > > Here are draft PRs for three microservices. Please review it and
> I
> > > will
> > > > > > appreciate your feedback on any updates:
> > > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > > >
> > > > > > You could review already built docker images on
> > > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > > It's just a rough sample though.
> > > > > >
> > > > > > In the main time, I am updating the Docker-compose file so it
> spins
> > > up a
> > > > > > swarm cluster.
> > > > > >
> > > > > > Thanks,
> > > > > > Courage.
> > > > > >
> > > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> > courageangeh@gmail.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > >> Hi Alek,
> > > > > >>
> > > > > >> I think we can start with that.
> > > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > > >> If Fineract can't use Jenkins at the moment, then
> > > > > >> we can connect GitHub directly to Docker Hub.
> > > > > >>
> > > > > >> Thanks,
> > > > > >> Courage
> > > > > >>
> > > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > > >> cheetah@monkeysintown.com> wrote:
> > > > > >>
> > > > > >>> Hi Courage,
> > > > > >>>
> > > > > >>> ... would be great if you could help out... especially with
> your
> > > > > >>> knowledge
> > > > > >>> about Docker.
> > > > > >>>
> > > > > >>> Preparing the Git repositories should be fairly easy... another
> > > nice
> > > > > >>> thing
> > > > > >>> to have: some kind of CI server to build and push images to
> > Docker
> > > hub;
> > > > > >>> not
> > > > > >>> sure if Fineract is currently using Jenkins at Apache... in any
> > > case
> > > > > not
> > > > > >>> a
> > > > > >>> big thing... setting up things with Travis or similar is not a
> > big
> > > > > deal.
> > > > > >>>
> > > > > >>> Anything else you can think of?
> > > > > >>>
> > > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > > courageangeh@gmail.com>
> > > > > >>> wrote:
> > > > > >>>
> > > > > >>> > Hi Aleksandar,
> > > > > >>> >
> > > > > >>> > I can work with you on migrating the Fineract services from
> > > Docker
> > > > > >>> compose
> > > > > >>> > to Docker Swarm.
> > > > > >>> > Then pushing the Fineract images to Docker Hub so it's easily
> > > > > >>> accessible.
> > > > > >>> >
> > > > > >>> > I think that will require Ed to create a Docker Hub account
> for
> > > > > >>> > Mifos/Fineract.
> > > > > >>> >
> > > > > >>> > Thanks,
> > > > > >>> > Courage.
> > > > > >>> >
> > > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > > >>> >
> > > > > >>> > > Hi Juan,
> > > > > >>> > >
> > > > > >>> > > ... thanks for chiming in... and thanks for the pointer to
> > the
> > > Git
> > > > > >>> > > repository with the Dockerfiles; that makes life already a
> > lot
> > > > > >>> easier.
> > > > > >>> > >
> > > > > >>> > > You are right, once you have the docker-compose.yml files
> > > lined up
> > > > > >>> it's
> > > > > >>> > not
> > > > > >>> > > a big stretch to setup a Swarm cluster. After running such
> a
> > > > > cluster
> > > > > >>> for
> > > > > >>> > a
> > > > > >>> > > client of mine I just want to add:
> > > > > >>> > >
> > > > > >>> > > - a Swarm cluster with less than 3 nodes will not run very
> > > stable;
> > > > > >>> I'm
> > > > > >>> > > saying this, because at the moment we have 2 servers at our
> > > > > disposal
> > > > > >>> (I
> > > > > >>> > > think)
> > > > > >>> > > - colleagues told me that Swarm cluster worked less
> reliable
> > > for
> > > > > them
> > > > > >>> > than
> > > > > >>> > > other solutions; I don't think for a demo system that is
> too
> > > much
> > > > > of
> > > > > >>> a
> > > > > >>> > > concern, but again I had one running in a production
> > > environment
> > > > > and
> > > > > >>> had
> > > > > >>> > no
> > > > > >>> > > major problems
> > > > > >>> > >
> > > > > >>> > > If you want then let's connect (aleks@apache.org) and
> figure
> > > out
> > > > > >>> how we
> > > > > >>> > > can
> > > > > >>> > > proceed with this... before the next GSoC season begins ;-)
> > > > > >>> > >
> > > > > >>> > > Cheers
> > > > > >>> > >
> > > > > >>> > >
> > > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> > aasaru@gmail.com
> > > >
> > > > > >>> wrote:
> > > > > >>> > >
> > > > > >>> > > > Hi Aleks
> > > > > >>> > > >
> > > > > >>> > > > Thanks for your work on pushing the demo server to live.
> > > > > >>> > > > I have played around with the containers also and I add
> my
> > > > > >>> feedback and
> > > > > >>> > > > ideas.
> > > > > >>> > > >
> > > > > >>> > > > > - it would come in handy to have default Fineract CN
> > Docker
> > > > > >>> images
> > > > > >>> > > > published on Docker Hub
> > > > > >>> > > >
> > > > > >>> > > > I think this is a way to go. If we want to promote
> adoption
> > > of
> > > > > >>> > > Fineract-CN
> > > > > >>> > > > then public images
> > > > > >>> > > > lower the burden to anyone to download and get going with
> > the
> > > > > >>> project.
> > > > > >>> > > > Does the CI server already exist that could potentially
> > > build the
> > > > > >>> > images?
> > > > > >>> > > >
> > > > > >>> > > >  >  - I suggest to add a Dockerfile in every microservice
> > Git
> > > > > >>> > repository
> > > > > >>> > > > (e.
> > > > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > >>> fineract-cn-payroll)
> > > > > >>> > > and
> > > > > >>> > > > let a
> > > > > >>> > > >  >   CI server build and publish Docker images of these
> > > > > >>> > > >
> > > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > > >>> > > > But they logically belong to the application's own code
> > base
> > > so I
> > > > > >>> see
> > > > > >>> > no
> > > > > >>> > > > harm in adding all
> > > > > >>> > > > Dockerfiles to the app's own repository.
> > > > > >>> > > >
> > > > > >>> > > >   - I am assuming that we **don't** want to go all the
> way
> > to
> > > > > >>> setup a
> > > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is
> to
> > > just
> > > > > >>> have a
> > > > > >>> > > set
> > > > > >>> > > >
> > > > > >>> > > > If we plan to operate with docker-compose already (and
> run
> > > in two
> > > > > >>> > > servers)
> > > > > >>> > > > then I, in my opinion, it wouldn't be much overhead to
> > > create a
> > > > > >>> Swarm
> > > > > >>> > > > cluster.
> > > > > >>> > > > If I look at the instructions (
> > > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > > >>> > > > it doesn't seem like a lot of work.
> > > > > >>> > > > Also if something happens then Swarm can detect and
> > relaunch
> > > > > >>> > containers.
> > > > > >>> > > > But I'm no system administrator myself so I might be
> > > mistaken in
> > > > > >>> terms
> > > > > >>> > of
> > > > > >>> > > > how much work it requires.
> > > > > >>> > > >
> > > > > >>> > > > > - to avoid code changes or Docker image rebuilds we
> > should
> > > > > >>> introduce
> > > > > >>> > > > >   environment variables in the application.yml files of
> > > these
> > > > > >>> > > > microservice
> > > > > >>> > > > >   projects; e. g.:
> > > > > >>> > > > > cassandra:
> > > > > >>> > > > >   clusterName: staging_cluster
> > > > > >>> > > >  /---/
> > > > > >>> > > > > ... should look something like this:
> > > > > >>> > > > > cassandra:
> > > > > >>> > > > >   clusterName:
> > > > > >>> > > >
> ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > >>> > > > /---/
> > > > > >>> > > >
> > > > > >>> > > > I think there is no need to change application.yml files.
> > > > > >>> > > > In docker-compose.yml you can overwrite any
> application.yml
> > > > > >>> property in
> > > > > >>> > > > "environment" section like this:
> > > > > >>> > > >
> > > > > >>> > > >    environment:
> > > > > >>> > > >       -
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > >
> > > > > >>> >
> > > > > >>>
> > > > >
> > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > > >>> > > >
> > > > > >>> > > > Juhan
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > Kontakt Aleksandar Vidakovic (<cheetah@monkeysintown.com
> >)
> > > > > >>> kirjutas
> > > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > > >>> > > >
> > > > > >>> > > > > Hi everyone,
> > > > > >>> > > > >
> > > > > >>> > > > > ... hope you all enjoyed the holidays and had a good
> > start
> > > into
> > > > > >>> the
> > > > > >>> > new
> > > > > >>> > > > > year :-)
> > > > > >>> > > > >
> > > > > >>> > > > > I have to appologize for my radio silence concerning
> the
> > > demo
> > > > > >>> server,
> > > > > >>> > > > but I
> > > > > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > > > > >>> > > > >
> > > > > >>> > > > > Anyway, I just wanted to get this effort going again
> and
> > > would
> > > > > >>> like
> > > > > >>> > to
> > > > > >>> > > > > discuss it with anyone interested.
> > > > > >>> > > > >
> > > > > >>> > > > > The current status:
> > > > > >>> > > > >
> > > > > >>> > > > >    - we have 2 (quite big) servers provided by the
> Apache
> > > > > >>> Foundation
> > > > > >>> > to
> > > > > >>> > > > run
> > > > > >>> > > > >    the demo setup
> > > > > >>> > > > >    - initially I tried to get it running on one, but
> was
> > > not
> > > > > >>> enough
> > > > > >>> > > (even
> > > > > >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> > > > > >>> > > > >    - I've used the demo server module with some minor
> > > > > >>> modifications
> > > > > >>> > to
> > > > > >>> > > > turn
> > > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > > >>> > > > >
> > > > > >>> > > > > Trying all of this took quite some time... even on the
> > > beefy
> > > > > >>> machine
> > > > > >>> > > from
> > > > > >>> > > > > Apache it took (as far as I remember) 30-40min until
> the
> > > demo
> > > > > >>> server
> > > > > >>> > > > > startup would ultimately fail.
> > > > > >>> > > > >
> > > > > >>> > > > > Instead of going down that route again I'd like to
> > propose
> > > a
> > > > > >>> > different
> > > > > >>> > > > > strategy:
> > > > > >>> > > > >
> > > > > >>> > > > >    - I am assuming that we **don't** want to go all the
> > > way to
> > > > > >>> setup
> > > > > >>> > a
> > > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the
> goal
> > > is to
> > > > > >>> just
> > > > > >>> > > have
> > > > > >>> > > > a
> > > > > >>> > > > > set
> > > > > >>> > > > >    of docker-compose.yml files to start the system
> > > > > >>> > > > >    - it would come in handy to have default Fineract CN
> > > Docker
> > > > > >>> images
> > > > > >>> > > > >    published on Docker Hub
> > > > > >>> > > > >    - I suggest to add a Dockerfile in every
> microservice
> > > Git
> > > > > >>> > repository
> > > > > >>> > > > (e.
> > > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > > >>> fineract-cn-payroll)
> > > > > >>> > > and
> > > > > >>> > > > > let a
> > > > > >>> > > > >    CI server build and publish Docker images of these
> > > > > >>> > > > >    - to avoid code changes or Docker image rebuilds we
> > > should
> > > > > >>> > introduce
> > > > > >>> > > > >    environment variables in the application.yml files
> of
> > > these
> > > > > >>> > > > microservice
> > > > > >>> > > > >    projects; e. g.:
> > > > > >>> > > > >
> > > > > >>> > > > > [code]
> > > > > >>> > > > > ...
> > > > > >>> > > > > cassandra:
> > > > > >>> > > > >   clusterName: staging_cluster
> > > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> > > 127.0.0.3:9042
> > > > > >>> > > > >   keyspace: seshat
> > > > > >>> > > > >   cl:
> > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > >>> > > > > ...
> > > > > >>> > > > > [/code]
> > > > > >>> > > > >
> > > > > >>> > > > > ... should look something like this:
> > > > > >>> > > > >
> > > > > >>> > > > > [code]
> > > > > >>> > > > > ...
> > > > > >>> > > > > cassandra:
> > > > > >>> > > > >   clusterName:
> > > > > >>> > > >
> ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > > >>> > > > >   contactPoints:
> > > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > > >>> > > > >   keyspace:
> > ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > > >>> > > > >   cl:
> > > > > >>> > > > >     read: LOCAL_QUORUM
> > > > > >>> > > > >     write: LOCAL_QUORUM
> > > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > > >>> > > > > ...
> > > > > >>> > > > > [/config]
> > > > > >>> > > > >
> > > > > >>> > > > >    - with the above changes we could then define
> > > > > >>> docker-compose.yml
> > > > > >>> > > files
> > > > > >>> > > > >    like this (pseudo file for customer microservice):
> > > > > >>> > > > >
> > > > > >>> > > > > [code]
> > > > > >>> > > > > version: '3.6'
> > > > > >>> > > > >
> > > > > >>> > > > > services:
> > > > > >>> > > > >   customer:
> > > > > >>> > > > >     image:
> > > > > >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > > >>> > > > >     depends_on:
> > > > > >>> > > > >       - mongo
> > > > > >>> > > > >     env_file:
> > > > > >>> > > > >       - ./customer.env
> > > > > >>> > > > >     ports:
> > > > > >>> > > > >       - "10000:10000"
> > > > > >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> > > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > > >>> -Djava.net.preferIPv4Stack=true
> > > > > >>> > > > > fineract-cn-customer.jar"
> > > > > >>> > > > > [/code]
> > > > > >>> > > > >
> > > > > >>> > > > > ... and the customer.env file would contain something
> > like
> > > > > this:
> > > > > >>> > > > >
> > > > > >>> > > > > [code]
> > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > > >>> > > > >
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > >
> > > > > >>> >
> > > > > >>>
> > > > >
> > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > > >>> > > > > [/code]
> > > > > >>> > > > >
> > > > > >>> > > > >    - we would provide templates for those env files (e.
> > g.
> > > > > >>> > > > >    "customer.env.template"); custom configurations (e.
> g.
> > > > > >>> > > "customer.env")
> > > > > >>> > > > >    should not be checked into Git
> > > > > >>> > > > >    - if no environment variables are provided then the
> > > defaults
> > > > > >>> in
> > > > > >>> > the
> > > > > >>> > > > >    application.yml config files kick in with reasonable
> > > values
> > > > > >>> for a
> > > > > >>> > > > local
> > > > > >>> > > > > dev
> > > > > >>> > > > >    machine deployment (given the required resources
> > > unlikely
> > > > > for
> > > > > >>> most
> > > > > >>> > > > devs)
> > > > > >>> > > > >
> > > > > >>> > > > >
> > > > > >>> > > > > Advantages:
> > > > > >>> > > > >
> > > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > > >>> > > > >    - no lengthy builds
> > > > > >>> > > > >    - no re-build (Gradle, Docker) for configuration
> > changes
> > > > > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes)
> > setup
> > > > > >>> > > > >    - the Docker images could still be used as the basic
> > > > > building
> > > > > >>> > blocks
> > > > > >>> > > > of
> > > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > > >>> > > > >    - every service can be started/stopped separately
> > which
> > > > > makes
> > > > > >>> > life a
> > > > > >>> > > > lot
> > > > > >>> > > > >    easier when we have to figure out the right
> > > configuration
> > > > > for
> > > > > >>> the
> > > > > >>> > > demo
> > > > > >>> > > > >    setup (I guess it would make it also easier for
> others
> > > that
> > > > > >>> would
> > > > > >>> > > like
> > > > > >>> > > > > to
> > > > > >>> > > > >    setup their own environments)
> > > > > >>> > > > >
> > > > > >>> > > > > I am using most (if not all) of the required bits and
> > > pieces
> > > > > for
> > > > > >>> this
> > > > > >>> > > > setup
> > > > > >>> > > > > on a daily basis and I think it should be not too
> > > complicated
> > > > > to
> > > > > >>> get
> > > > > >>> > > this
> > > > > >>> > > > > working. And it would not interfere (too much) with the
> > > > > existing
> > > > > >>> Git
> > > > > >>> > > > > repositories.
> > > > > >>> > > > >
> > > > > >>> > > > > Please let me know what you think...
> > > > > >>> > > > >
> > > > > >>> > > > > Cheers,
> > > > > >>> > > > >
> > > > > >>> > > > > Aleks
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > >
> > > > > >>> >
> > > > > >>>
> > > > > >>
> > > > >
> > > >
> > >
> > > Hi Isaac,
> > >
> > > I would know, if you noticed difficulties, in setup Fineract-CN and all
> > > its module and demo-server. i am using digital Ocean, followed all the
> > > instructions, yet had some errors in compilation using the
> > > initial-setup.sh, also the fims-web-apps doesn't work. Could you try to
> > > confirm, I need help on this.
> > >
> > > Thanks,
> > > David Alozie
> > > wiretoothtech@gmail.com
> > > +234 809 944 7105
> > >
> >
>

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon>
Virus-free.
www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Re: Fineract CN Demo server setup

Posted by Awasum Yannick <aw...@apache.org>.
Hi All,

How do I access the VMs provided by Infra for setting up a demo server for
Fineract CN? Are there 2 of them?

Courage, will you like to work with me run FCN using Docker Compose just so
the demo server gets up and running? It seems using Docker Swarm will take
more time than we want and I think Aleks is very busy at this moment.

This is important for the community.

Thanks

On Tue, Mar 26, 2019 at 12:43 AM Isaac Kamga <is...@mifos.org> wrote:

> Hey David,
>
> Did you fork the Fineract CN repos before running initial-setup.sh with
> your Github handle OR did you just use handle 'apache' ? Try using the
> handle 'apache' instead.
>
> Also endeavor to specify the errors you face by sharing using a pasting
> service like pastebin.com
>
> Cheers,
> Isaac Kamga.
>
> On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
> wiretoothtech@gmail.com> wrote:
>
> >
> >
> > On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote:
> > > Hello fineracters,
> > >
> > > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> > > <co...@gmail.com>
> > >
> > > Is there any progress on this front ?
> > >
> > > Most front-end projects (from last year's GSoC students and other
> > > contributors) need this public demo-server in order to do rigorous
> > testing.
> > >
> > > At Your Service,
> > > Isaac Kamga.
> > >
> > > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > > cheetah@monkeysintown.com> wrote:
> > >
> > > > Great, Courage! I'll have a look at this.
> > > >
> > > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <
> courageangeh@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Alek,
> > > > >
> > > > > I have migrated the Docker files to their respective Fineract
> > > > repositories.
> > > > > Here are draft PRs for three microservices. Please review it and I
> > will
> > > > > appreciate your feedback on any updates:
> > > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > > >
> > > > > You could review already built docker images on
> > > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > > It's just a rough sample though.
> > > > >
> > > > > In the main time, I am updating the Docker-compose file so it spins
> > up a
> > > > > swarm cluster.
> > > > >
> > > > > Thanks,
> > > > > Courage.
> > > > >
> > > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <
> courageangeh@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > >> Hi Alek,
> > > > >>
> > > > >> I think we can start with that.
> > > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > > >> If Fineract can't use Jenkins at the moment, then
> > > > >> we can connect GitHub directly to Docker Hub.
> > > > >>
> > > > >> Thanks,
> > > > >> Courage
> > > > >>
> > > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > > >> cheetah@monkeysintown.com> wrote:
> > > > >>
> > > > >>> Hi Courage,
> > > > >>>
> > > > >>> ... would be great if you could help out... especially with your
> > > > >>> knowledge
> > > > >>> about Docker.
> > > > >>>
> > > > >>> Preparing the Git repositories should be fairly easy... another
> > nice
> > > > >>> thing
> > > > >>> to have: some kind of CI server to build and push images to
> Docker
> > hub;
> > > > >>> not
> > > > >>> sure if Fineract is currently using Jenkins at Apache... in any
> > case
> > > > not
> > > > >>> a
> > > > >>> big thing... setting up things with Travis or similar is not a
> big
> > > > deal.
> > > > >>>
> > > > >>> Anything else you can think of?
> > > > >>>
> > > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> > courageangeh@gmail.com>
> > > > >>> wrote:
> > > > >>>
> > > > >>> > Hi Aleksandar,
> > > > >>> >
> > > > >>> > I can work with you on migrating the Fineract services from
> > Docker
> > > > >>> compose
> > > > >>> > to Docker Swarm.
> > > > >>> > Then pushing the Fineract images to Docker Hub so it's easily
> > > > >>> accessible.
> > > > >>> >
> > > > >>> > I think that will require Ed to create a Docker Hub account for
> > > > >>> > Mifos/Fineract.
> > > > >>> >
> > > > >>> > Thanks,
> > > > >>> > Courage.
> > > > >>> >
> > > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > > >>> > cheetah@monkeysintown.com> wrote:
> > > > >>> >
> > > > >>> > > Hi Juan,
> > > > >>> > >
> > > > >>> > > ... thanks for chiming in... and thanks for the pointer to
> the
> > Git
> > > > >>> > > repository with the Dockerfiles; that makes life already a
> lot
> > > > >>> easier.
> > > > >>> > >
> > > > >>> > > You are right, once you have the docker-compose.yml files
> > lined up
> > > > >>> it's
> > > > >>> > not
> > > > >>> > > a big stretch to setup a Swarm cluster. After running such a
> > > > cluster
> > > > >>> for
> > > > >>> > a
> > > > >>> > > client of mine I just want to add:
> > > > >>> > >
> > > > >>> > > - a Swarm cluster with less than 3 nodes will not run very
> > stable;
> > > > >>> I'm
> > > > >>> > > saying this, because at the moment we have 2 servers at our
> > > > disposal
> > > > >>> (I
> > > > >>> > > think)
> > > > >>> > > - colleagues told me that Swarm cluster worked less reliable
> > for
> > > > them
> > > > >>> > than
> > > > >>> > > other solutions; I don't think for a demo system that is too
> > much
> > > > of
> > > > >>> a
> > > > >>> > > concern, but again I had one running in a production
> > environment
> > > > and
> > > > >>> had
> > > > >>> > no
> > > > >>> > > major problems
> > > > >>> > >
> > > > >>> > > If you want then let's connect (aleks@apache.org) and figure
> > out
> > > > >>> how we
> > > > >>> > > can
> > > > >>> > > proceed with this... before the next GSoC season begins ;-)
> > > > >>> > >
> > > > >>> > > Cheers
> > > > >>> > >
> > > > >>> > >
> > > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <
> aasaru@gmail.com
> > >
> > > > >>> wrote:
> > > > >>> > >
> > > > >>> > > > Hi Aleks
> > > > >>> > > >
> > > > >>> > > > Thanks for your work on pushing the demo server to live.
> > > > >>> > > > I have played around with the containers also and I add my
> > > > >>> feedback and
> > > > >>> > > > ideas.
> > > > >>> > > >
> > > > >>> > > > > - it would come in handy to have default Fineract CN
> Docker
> > > > >>> images
> > > > >>> > > > published on Docker Hub
> > > > >>> > > >
> > > > >>> > > > I think this is a way to go. If we want to promote adoption
> > of
> > > > >>> > > Fineract-CN
> > > > >>> > > > then public images
> > > > >>> > > > lower the burden to anyone to download and get going with
> the
> > > > >>> project.
> > > > >>> > > > Does the CI server already exist that could potentially
> > build the
> > > > >>> > images?
> > > > >>> > > >
> > > > >>> > > >  >  - I suggest to add a Dockerfile in every microservice
> Git
> > > > >>> > repository
> > > > >>> > > > (e.
> > > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > > >>> fineract-cn-payroll)
> > > > >>> > > and
> > > > >>> > > > let a
> > > > >>> > > >  >   CI server build and publish Docker images of these
> > > > >>> > > >
> > > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > > >>> > > > But they logically belong to the application's own code
> base
> > so I
> > > > >>> see
> > > > >>> > no
> > > > >>> > > > harm in adding all
> > > > >>> > > > Dockerfiles to the app's own repository.
> > > > >>> > > >
> > > > >>> > > >   - I am assuming that we **don't** want to go all the way
> to
> > > > >>> setup a
> > > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is to
> > just
> > > > >>> have a
> > > > >>> > > set
> > > > >>> > > >
> > > > >>> > > > If we plan to operate with docker-compose already (and run
> > in two
> > > > >>> > > servers)
> > > > >>> > > > then I, in my opinion, it wouldn't be much overhead to
> > create a
> > > > >>> Swarm
> > > > >>> > > > cluster.
> > > > >>> > > > If I look at the instructions (
> > > > >>> > > https://docs.docker.com/get-started/part4/)
> > > > >>> > > > it doesn't seem like a lot of work.
> > > > >>> > > > Also if something happens then Swarm can detect and
> relaunch
> > > > >>> > containers.
> > > > >>> > > > But I'm no system administrator myself so I might be
> > mistaken in
> > > > >>> terms
> > > > >>> > of
> > > > >>> > > > how much work it requires.
> > > > >>> > > >
> > > > >>> > > > > - to avoid code changes or Docker image rebuilds we
> should
> > > > >>> introduce
> > > > >>> > > > >   environment variables in the application.yml files of
> > these
> > > > >>> > > > microservice
> > > > >>> > > > >   projects; e. g.:
> > > > >>> > > > > cassandra:
> > > > >>> > > > >   clusterName: staging_cluster
> > > > >>> > > >  /---/
> > > > >>> > > > > ... should look something like this:
> > > > >>> > > > > cassandra:
> > > > >>> > > > >   clusterName:
> > > > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > >>> > > > /---/
> > > > >>> > > >
> > > > >>> > > > I think there is no need to change application.yml files.
> > > > >>> > > > In docker-compose.yml you can overwrite any application.yml
> > > > >>> property in
> > > > >>> > > > "environment" section like this:
> > > > >>> > > >
> > > > >>> > > >    environment:
> > > > >>> > > >       -
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > >
> > > > >>> >
> > > > >>>
> > > >
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > > >>> > > >
> > > > >>> > > > Juhan
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > >
> > > > >>> > > > Kontakt Aleksandar Vidakovic (<ch...@monkeysintown.com>)
> > > > >>> kirjutas
> > > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > > >>> > > >
> > > > >>> > > > > Hi everyone,
> > > > >>> > > > >
> > > > >>> > > > > ... hope you all enjoyed the holidays and had a good
> start
> > into
> > > > >>> the
> > > > >>> > new
> > > > >>> > > > > year :-)
> > > > >>> > > > >
> > > > >>> > > > > I have to appologize for my radio silence concerning the
> > demo
> > > > >>> server,
> > > > >>> > > > but I
> > > > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > > > >>> > > > >
> > > > >>> > > > > Anyway, I just wanted to get this effort going again and
> > would
> > > > >>> like
> > > > >>> > to
> > > > >>> > > > > discuss it with anyone interested.
> > > > >>> > > > >
> > > > >>> > > > > The current status:
> > > > >>> > > > >
> > > > >>> > > > >    - we have 2 (quite big) servers provided by the Apache
> > > > >>> Foundation
> > > > >>> > to
> > > > >>> > > > run
> > > > >>> > > > >    the demo setup
> > > > >>> > > > >    - initially I tried to get it running on one, but was
> > not
> > > > >>> enough
> > > > >>> > > (even
> > > > >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> > > > >>> > > > >    - I've used the demo server module with some minor
> > > > >>> modifications
> > > > >>> > to
> > > > >>> > > > turn
> > > > >>> > > > >    off non-essential components (thanks Myrle)
> > > > >>> > > > >
> > > > >>> > > > > Trying all of this took quite some time... even on the
> > beefy
> > > > >>> machine
> > > > >>> > > from
> > > > >>> > > > > Apache it took (as far as I remember) 30-40min until the
> > demo
> > > > >>> server
> > > > >>> > > > > startup would ultimately fail.
> > > > >>> > > > >
> > > > >>> > > > > Instead of going down that route again I'd like to
> propose
> > a
> > > > >>> > different
> > > > >>> > > > > strategy:
> > > > >>> > > > >
> > > > >>> > > > >    - I am assuming that we **don't** want to go all the
> > way to
> > > > >>> setup
> > > > >>> > a
> > > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the goal
> > is to
> > > > >>> just
> > > > >>> > > have
> > > > >>> > > > a
> > > > >>> > > > > set
> > > > >>> > > > >    of docker-compose.yml files to start the system
> > > > >>> > > > >    - it would come in handy to have default Fineract CN
> > Docker
> > > > >>> images
> > > > >>> > > > >    published on Docker Hub
> > > > >>> > > > >    - I suggest to add a Dockerfile in every microservice
> > Git
> > > > >>> > repository
> > > > >>> > > > (e.
> > > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > > >>> fineract-cn-payroll)
> > > > >>> > > and
> > > > >>> > > > > let a
> > > > >>> > > > >    CI server build and publish Docker images of these
> > > > >>> > > > >    - to avoid code changes or Docker image rebuilds we
> > should
> > > > >>> > introduce
> > > > >>> > > > >    environment variables in the application.yml files of
> > these
> > > > >>> > > > microservice
> > > > >>> > > > >    projects; e. g.:
> > > > >>> > > > >
> > > > >>> > > > > [code]
> > > > >>> > > > > ...
> > > > >>> > > > > cassandra:
> > > > >>> > > > >   clusterName: staging_cluster
> > > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> > 127.0.0.3:9042
> > > > >>> > > > >   keyspace: seshat
> > > > >>> > > > >   cl:
> > > > >>> > > > >     read: LOCAL_QUORUM
> > > > >>> > > > >     write: LOCAL_QUORUM
> > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > >>> > > > > ...
> > > > >>> > > > > [/code]
> > > > >>> > > > >
> > > > >>> > > > > ... should look something like this:
> > > > >>> > > > >
> > > > >>> > > > > [code]
> > > > >>> > > > > ...
> > > > >>> > > > > cassandra:
> > > > >>> > > > >   clusterName:
> > > > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > > >>> > > > >   contactPoints:
> > > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > > >>> > > > >   keyspace:
> ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > > >>> > > > >   cl:
> > > > >>> > > > >     read: LOCAL_QUORUM
> > > > >>> > > > >     write: LOCAL_QUORUM
> > > > >>> > > > >     delete: LOCAL_QUORUM
> > > > >>> > > > > ...
> > > > >>> > > > > [/config]
> > > > >>> > > > >
> > > > >>> > > > >    - with the above changes we could then define
> > > > >>> docker-compose.yml
> > > > >>> > > files
> > > > >>> > > > >    like this (pseudo file for customer microservice):
> > > > >>> > > > >
> > > > >>> > > > > [code]
> > > > >>> > > > > version: '3.6'
> > > > >>> > > > >
> > > > >>> > > > > services:
> > > > >>> > > > >   customer:
> > > > >>> > > > >     image:
> > > > >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > > >>> > > > >     depends_on:
> > > > >>> > > > >       - mongo
> > > > >>> > > > >     env_file:
> > > > >>> > > > >       - ./customer.env
> > > > >>> > > > >     ports:
> > > > >>> > > > >       - "10000:10000"
> > > > >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> > > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > > >>> -Djava.net.preferIPv4Stack=true
> > > > >>> > > > > fineract-cn-customer.jar"
> > > > >>> > > > > [/code]
> > > > >>> > > > >
> > > > >>> > > > > ... and the customer.env file would contain something
> like
> > > > this:
> > > > >>> > > > >
> > > > >>> > > > > [code]
> > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > > >>> > > > >
> > > > >>> > > > >
> > > > >>> > > >
> > > > >>> > >
> > > > >>> >
> > > > >>>
> > > >
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > > >>> > > > > [/code]
> > > > >>> > > > >
> > > > >>> > > > >    - we would provide templates for those env files (e.
> g.
> > > > >>> > > > >    "customer.env.template"); custom configurations (e. g.
> > > > >>> > > "customer.env")
> > > > >>> > > > >    should not be checked into Git
> > > > >>> > > > >    - if no environment variables are provided then the
> > defaults
> > > > >>> in
> > > > >>> > the
> > > > >>> > > > >    application.yml config files kick in with reasonable
> > values
> > > > >>> for a
> > > > >>> > > > local
> > > > >>> > > > > dev
> > > > >>> > > > >    machine deployment (given the required resources
> > unlikely
> > > > for
> > > > >>> most
> > > > >>> > > > devs)
> > > > >>> > > > >
> > > > >>> > > > >
> > > > >>> > > > > Advantages:
> > > > >>> > > > >
> > > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > > >>> > > > >    - no lengthy builds
> > > > >>> > > > >    - no re-build (Gradle, Docker) for configuration
> changes
> > > > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes)
> setup
> > > > >>> > > > >    - the Docker images could still be used as the basic
> > > > building
> > > > >>> > blocks
> > > > >>> > > > of
> > > > >>> > > > >    more complex architectures (Kubernetes)
> > > > >>> > > > >    - every service can be started/stopped separately
> which
> > > > makes
> > > > >>> > life a
> > > > >>> > > > lot
> > > > >>> > > > >    easier when we have to figure out the right
> > configuration
> > > > for
> > > > >>> the
> > > > >>> > > demo
> > > > >>> > > > >    setup (I guess it would make it also easier for others
> > that
> > > > >>> would
> > > > >>> > > like
> > > > >>> > > > > to
> > > > >>> > > > >    setup their own environments)
> > > > >>> > > > >
> > > > >>> > > > > I am using most (if not all) of the required bits and
> > pieces
> > > > for
> > > > >>> this
> > > > >>> > > > setup
> > > > >>> > > > > on a daily basis and I think it should be not too
> > complicated
> > > > to
> > > > >>> get
> > > > >>> > > this
> > > > >>> > > > > working. And it would not interfere (too much) with the
> > > > existing
> > > > >>> Git
> > > > >>> > > > > repositories.
> > > > >>> > > > >
> > > > >>> > > > > Please let me know what you think...
> > > > >>> > > > >
> > > > >>> > > > > Cheers,
> > > > >>> > > > >
> > > > >>> > > > > Aleks
> > > > >>> > > > >
> > > > >>> > > >
> > > > >>> > >
> > > > >>> >
> > > > >>>
> > > > >>
> > > >
> > >
> >
> > Hi Isaac,
> >
> > I would know, if you noticed difficulties, in setup Fineract-CN and all
> > its module and demo-server. i am using digital Ocean, followed all the
> > instructions, yet had some errors in compilation using the
> > initial-setup.sh, also the fims-web-apps doesn't work. Could you try to
> > confirm, I need help on this.
> >
> > Thanks,
> > David Alozie
> > wiretoothtech@gmail.com
> > +234 809 944 7105
> >
>

Re: Fineract CN Demo server setup

Posted by Isaac Kamga <is...@mifos.org>.
Hey David,

Did you fork the Fineract CN repos before running initial-setup.sh with
your Github handle OR did you just use handle 'apache' ? Try using the
handle 'apache' instead.

Also endeavor to specify the errors you face by sharing using a pasting
service like pastebin.com

Cheers,
Isaac Kamga.

On Mon, Mar 25, 2019 at 6:37 PM wiretoothtech@gmail.com <
wiretoothtech@gmail.com> wrote:

>
>
> On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote:
> > Hello fineracters,
> >
> > +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> > <co...@gmail.com>
> >
> > Is there any progress on this front ?
> >
> > Most front-end projects (from last year's GSoC students and other
> > contributors) need this public demo-server in order to do rigorous
> testing.
> >
> > At Your Service,
> > Isaac Kamga.
> >
> > On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> > cheetah@monkeysintown.com> wrote:
> >
> > > Great, Courage! I'll have a look at this.
> > >
> > > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <co...@gmail.com>
> > > wrote:
> > >
> > > > Hi Alek,
> > > >
> > > > I have migrated the Docker files to their respective Fineract
> > > repositories.
> > > > Here are draft PRs for three microservices. Please review it and I
> will
> > > > appreciate your feedback on any updates:
> > > > https://github.com/apache/fineract-cn-identity/pull/8
> > > > https://github.com/apache/fineract-cn-office/pull/8
> > > > https://github.com/apache/fineract-cn-customer/pull/9
> > > >
> > > > You could review already built docker images on
> > > > https://cloud.docker.com/u/anh3h/repository/list
> > > > It's just a rough sample though.
> > > >
> > > > In the main time, I am updating the Docker-compose file so it spins
> up a
> > > > swarm cluster.
> > > >
> > > > Thanks,
> > > > Courage.
> > > >
> > > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <courageangeh@gmail.com
> >
> > > > wrote:
> > > >
> > > >> Hi Alek,
> > > >>
> > > >> I think we can start with that.
> > > >> We can connect Docker Hub-Jenkins-GitHub.
> > > >> If Fineract can't use Jenkins at the moment, then
> > > >> we can connect GitHub directly to Docker Hub.
> > > >>
> > > >> Thanks,
> > > >> Courage
> > > >>
> > > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > > >> cheetah@monkeysintown.com> wrote:
> > > >>
> > > >>> Hi Courage,
> > > >>>
> > > >>> ... would be great if you could help out... especially with your
> > > >>> knowledge
> > > >>> about Docker.
> > > >>>
> > > >>> Preparing the Git repositories should be fairly easy... another
> nice
> > > >>> thing
> > > >>> to have: some kind of CI server to build and push images to Docker
> hub;
> > > >>> not
> > > >>> sure if Fineract is currently using Jenkins at Apache... in any
> case
> > > not
> > > >>> a
> > > >>> big thing... setting up things with Travis or similar is not a big
> > > deal.
> > > >>>
> > > >>> Anything else you can think of?
> > > >>>
> > > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> courageangeh@gmail.com>
> > > >>> wrote:
> > > >>>
> > > >>> > Hi Aleksandar,
> > > >>> >
> > > >>> > I can work with you on migrating the Fineract services from
> Docker
> > > >>> compose
> > > >>> > to Docker Swarm.
> > > >>> > Then pushing the Fineract images to Docker Hub so it's easily
> > > >>> accessible.
> > > >>> >
> > > >>> > I think that will require Ed to create a Docker Hub account for
> > > >>> > Mifos/Fineract.
> > > >>> >
> > > >>> > Thanks,
> > > >>> > Courage.
> > > >>> >
> > > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > > >>> > cheetah@monkeysintown.com> wrote:
> > > >>> >
> > > >>> > > Hi Juan,
> > > >>> > >
> > > >>> > > ... thanks for chiming in... and thanks for the pointer to the
> Git
> > > >>> > > repository with the Dockerfiles; that makes life already a lot
> > > >>> easier.
> > > >>> > >
> > > >>> > > You are right, once you have the docker-compose.yml files
> lined up
> > > >>> it's
> > > >>> > not
> > > >>> > > a big stretch to setup a Swarm cluster. After running such a
> > > cluster
> > > >>> for
> > > >>> > a
> > > >>> > > client of mine I just want to add:
> > > >>> > >
> > > >>> > > - a Swarm cluster with less than 3 nodes will not run very
> stable;
> > > >>> I'm
> > > >>> > > saying this, because at the moment we have 2 servers at our
> > > disposal
> > > >>> (I
> > > >>> > > think)
> > > >>> > > - colleagues told me that Swarm cluster worked less reliable
> for
> > > them
> > > >>> > than
> > > >>> > > other solutions; I don't think for a demo system that is too
> much
> > > of
> > > >>> a
> > > >>> > > concern, but again I had one running in a production
> environment
> > > and
> > > >>> had
> > > >>> > no
> > > >>> > > major problems
> > > >>> > >
> > > >>> > > If you want then let's connect (aleks@apache.org) and figure
> out
> > > >>> how we
> > > >>> > > can
> > > >>> > > proceed with this... before the next GSoC season begins ;-)
> > > >>> > >
> > > >>> > > Cheers
> > > >>> > >
> > > >>> > >
> > > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <aasaru@gmail.com
> >
> > > >>> wrote:
> > > >>> > >
> > > >>> > > > Hi Aleks
> > > >>> > > >
> > > >>> > > > Thanks for your work on pushing the demo server to live.
> > > >>> > > > I have played around with the containers also and I add my
> > > >>> feedback and
> > > >>> > > > ideas.
> > > >>> > > >
> > > >>> > > > > - it would come in handy to have default Fineract CN Docker
> > > >>> images
> > > >>> > > > published on Docker Hub
> > > >>> > > >
> > > >>> > > > I think this is a way to go. If we want to promote adoption
> of
> > > >>> > > Fineract-CN
> > > >>> > > > then public images
> > > >>> > > > lower the burden to anyone to download and get going with the
> > > >>> project.
> > > >>> > > > Does the CI server already exist that could potentially
> build the
> > > >>> > images?
> > > >>> > > >
> > > >>> > > >  >  - I suggest to add a Dockerfile in every microservice Git
> > > >>> > repository
> > > >>> > > > (e.
> > > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > > >>> fineract-cn-payroll)
> > > >>> > > and
> > > >>> > > > let a
> > > >>> > > >  >   CI server build and publish Docker images of these
> > > >>> > > >
> > > >>> > > > Yes. Most of the Dockerfiles already exist here
> > > >>> > > > https://github.com/openMF/fineract-cn-containers
> > > >>> > > > But they logically belong to the application's own code base
> so I
> > > >>> see
> > > >>> > no
> > > >>> > > > harm in adding all
> > > >>> > > > Dockerfiles to the app's own repository.
> > > >>> > > >
> > > >>> > > >   - I am assuming that we **don't** want to go all the way to
> > > >>> setup a
> > > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is to
> just
> > > >>> have a
> > > >>> > > set
> > > >>> > > >
> > > >>> > > > If we plan to operate with docker-compose already (and run
> in two
> > > >>> > > servers)
> > > >>> > > > then I, in my opinion, it wouldn't be much overhead to
> create a
> > > >>> Swarm
> > > >>> > > > cluster.
> > > >>> > > > If I look at the instructions (
> > > >>> > > https://docs.docker.com/get-started/part4/)
> > > >>> > > > it doesn't seem like a lot of work.
> > > >>> > > > Also if something happens then Swarm can detect and relaunch
> > > >>> > containers.
> > > >>> > > > But I'm no system administrator myself so I might be
> mistaken in
> > > >>> terms
> > > >>> > of
> > > >>> > > > how much work it requires.
> > > >>> > > >
> > > >>> > > > > - to avoid code changes or Docker image rebuilds we should
> > > >>> introduce
> > > >>> > > > >   environment variables in the application.yml files of
> these
> > > >>> > > > microservice
> > > >>> > > > >   projects; e. g.:
> > > >>> > > > > cassandra:
> > > >>> > > > >   clusterName: staging_cluster
> > > >>> > > >  /---/
> > > >>> > > > > ... should look something like this:
> > > >>> > > > > cassandra:
> > > >>> > > > >   clusterName:
> > > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > >>> > > > /---/
> > > >>> > > >
> > > >>> > > > I think there is no need to change application.yml files.
> > > >>> > > > In docker-compose.yml you can overwrite any application.yml
> > > >>> property in
> > > >>> > > > "environment" section like this:
> > > >>> > > >
> > > >>> > > >    environment:
> > > >>> > > >       -
> > > >>> > > >
> > > >>> > > >
> > > >>> > >
> > > >>> >
> > > >>>
> > >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > > >>> > > >
> > > >>> > > > Juhan
> > > >>> > > >
> > > >>> > > >
> > > >>> > > >
> > > >>> > > > Kontakt Aleksandar Vidakovic (<ch...@monkeysintown.com>)
> > > >>> kirjutas
> > > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > > >>> > > >
> > > >>> > > > > Hi everyone,
> > > >>> > > > >
> > > >>> > > > > ... hope you all enjoyed the holidays and had a good start
> into
> > > >>> the
> > > >>> > new
> > > >>> > > > > year :-)
> > > >>> > > > >
> > > >>> > > > > I have to appologize for my radio silence concerning the
> demo
> > > >>> server,
> > > >>> > > > but I
> > > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > > >>> > > > >
> > > >>> > > > > Anyway, I just wanted to get this effort going again and
> would
> > > >>> like
> > > >>> > to
> > > >>> > > > > discuss it with anyone interested.
> > > >>> > > > >
> > > >>> > > > > The current status:
> > > >>> > > > >
> > > >>> > > > >    - we have 2 (quite big) servers provided by the Apache
> > > >>> Foundation
> > > >>> > to
> > > >>> > > > run
> > > >>> > > > >    the demo setup
> > > >>> > > > >    - initially I tried to get it running on one, but was
> not
> > > >>> enough
> > > >>> > > (even
> > > >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> > > >>> > > > >    - I've used the demo server module with some minor
> > > >>> modifications
> > > >>> > to
> > > >>> > > > turn
> > > >>> > > > >    off non-essential components (thanks Myrle)
> > > >>> > > > >
> > > >>> > > > > Trying all of this took quite some time... even on the
> beefy
> > > >>> machine
> > > >>> > > from
> > > >>> > > > > Apache it took (as far as I remember) 30-40min until the
> demo
> > > >>> server
> > > >>> > > > > startup would ultimately fail.
> > > >>> > > > >
> > > >>> > > > > Instead of going down that route again I'd like to propose
> a
> > > >>> > different
> > > >>> > > > > strategy:
> > > >>> > > > >
> > > >>> > > > >    - I am assuming that we **don't** want to go all the
> way to
> > > >>> setup
> > > >>> > a
> > > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the goal
> is to
> > > >>> just
> > > >>> > > have
> > > >>> > > > a
> > > >>> > > > > set
> > > >>> > > > >    of docker-compose.yml files to start the system
> > > >>> > > > >    - it would come in handy to have default Fineract CN
> Docker
> > > >>> images
> > > >>> > > > >    published on Docker Hub
> > > >>> > > > >    - I suggest to add a Dockerfile in every microservice
> Git
> > > >>> > repository
> > > >>> > > > (e.
> > > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > > >>> fineract-cn-payroll)
> > > >>> > > and
> > > >>> > > > > let a
> > > >>> > > > >    CI server build and publish Docker images of these
> > > >>> > > > >    - to avoid code changes or Docker image rebuilds we
> should
> > > >>> > introduce
> > > >>> > > > >    environment variables in the application.yml files of
> these
> > > >>> > > > microservice
> > > >>> > > > >    projects; e. g.:
> > > >>> > > > >
> > > >>> > > > > [code]
> > > >>> > > > > ...
> > > >>> > > > > cassandra:
> > > >>> > > > >   clusterName: staging_cluster
> > > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> 127.0.0.3:9042
> > > >>> > > > >   keyspace: seshat
> > > >>> > > > >   cl:
> > > >>> > > > >     read: LOCAL_QUORUM
> > > >>> > > > >     write: LOCAL_QUORUM
> > > >>> > > > >     delete: LOCAL_QUORUM
> > > >>> > > > > ...
> > > >>> > > > > [/code]
> > > >>> > > > >
> > > >>> > > > > ... should look something like this:
> > > >>> > > > >
> > > >>> > > > > [code]
> > > >>> > > > > ...
> > > >>> > > > > cassandra:
> > > >>> > > > >   clusterName:
> > > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > > >>> > > > >   contactPoints:
> > > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > > >>> > > > >   keyspace: ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > > >>> > > > >   cl:
> > > >>> > > > >     read: LOCAL_QUORUM
> > > >>> > > > >     write: LOCAL_QUORUM
> > > >>> > > > >     delete: LOCAL_QUORUM
> > > >>> > > > > ...
> > > >>> > > > > [/config]
> > > >>> > > > >
> > > >>> > > > >    - with the above changes we could then define
> > > >>> docker-compose.yml
> > > >>> > > files
> > > >>> > > > >    like this (pseudo file for customer microservice):
> > > >>> > > > >
> > > >>> > > > > [code]
> > > >>> > > > > version: '3.6'
> > > >>> > > > >
> > > >>> > > > > services:
> > > >>> > > > >   customer:
> > > >>> > > > >     image:
> > > >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > > >>> > > > >     depends_on:
> > > >>> > > > >       - mongo
> > > >>> > > > >     env_file:
> > > >>> > > > >       - ./customer.env
> > > >>> > > > >     ports:
> > > >>> > > > >       - "10000:10000"
> > > >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> > > >>> > > > > -Dlogging.config=./logback.xml -jar
> > > >>> -Djava.net.preferIPv4Stack=true
> > > >>> > > > > fineract-cn-customer.jar"
> > > >>> > > > > [/code]
> > > >>> > > > >
> > > >>> > > > > ... and the customer.env file would contain something like
> > > this:
> > > >>> > > > >
> > > >>> > > > > [code]
> > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > > >>> > > > >
> > > >>> > > > >
> > > >>> > > >
> > > >>> > >
> > > >>> >
> > > >>>
> > >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > > >>> > > > > [/code]
> > > >>> > > > >
> > > >>> > > > >    - we would provide templates for those env files (e. g.
> > > >>> > > > >    "customer.env.template"); custom configurations (e. g.
> > > >>> > > "customer.env")
> > > >>> > > > >    should not be checked into Git
> > > >>> > > > >    - if no environment variables are provided then the
> defaults
> > > >>> in
> > > >>> > the
> > > >>> > > > >    application.yml config files kick in with reasonable
> values
> > > >>> for a
> > > >>> > > > local
> > > >>> > > > > dev
> > > >>> > > > >    machine deployment (given the required resources
> unlikely
> > > for
> > > >>> most
> > > >>> > > > devs)
> > > >>> > > > >
> > > >>> > > > >
> > > >>> > > > > Advantages:
> > > >>> > > > >
> > > >>> > > > >    - ready to consume Fineract CN Docker images
> > > >>> > > > >    - no lengthy builds
> > > >>> > > > >    - no re-build (Gradle, Docker) for configuration changes
> > > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes) setup
> > > >>> > > > >    - the Docker images could still be used as the basic
> > > building
> > > >>> > blocks
> > > >>> > > > of
> > > >>> > > > >    more complex architectures (Kubernetes)
> > > >>> > > > >    - every service can be started/stopped separately which
> > > makes
> > > >>> > life a
> > > >>> > > > lot
> > > >>> > > > >    easier when we have to figure out the right
> configuration
> > > for
> > > >>> the
> > > >>> > > demo
> > > >>> > > > >    setup (I guess it would make it also easier for others
> that
> > > >>> would
> > > >>> > > like
> > > >>> > > > > to
> > > >>> > > > >    setup their own environments)
> > > >>> > > > >
> > > >>> > > > > I am using most (if not all) of the required bits and
> pieces
> > > for
> > > >>> this
> > > >>> > > > setup
> > > >>> > > > > on a daily basis and I think it should be not too
> complicated
> > > to
> > > >>> get
> > > >>> > > this
> > > >>> > > > > working. And it would not interfere (too much) with the
> > > existing
> > > >>> Git
> > > >>> > > > > repositories.
> > > >>> > > > >
> > > >>> > > > > Please let me know what you think...
> > > >>> > > > >
> > > >>> > > > > Cheers,
> > > >>> > > > >
> > > >>> > > > > Aleks
> > > >>> > > > >
> > > >>> > > >
> > > >>> > >
> > > >>> >
> > > >>>
> > > >>
> > >
> >
>
> Hi Isaac,
>
> I would know, if you noticed difficulties, in setup Fineract-CN and all
> its module and demo-server. i am using digital Ocean, followed all the
> instructions, yet had some errors in compilation using the
> initial-setup.sh, also the fims-web-apps doesn't work. Could you try to
> confirm, I need help on this.
>
> Thanks,
> David Alozie
> wiretoothtech@gmail.com
> +234 809 944 7105
>

Re: Fineract CN Demo server setup

Posted by wi...@gmail.com, wi...@gmail.com.

On 2019/03/07 00:37:16, Isaac Kamga <is...@mifos.org> wrote: 
> Hello fineracters,
> 
> +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> <co...@gmail.com>
> 
> Is there any progress on this front ?
> 
> Most front-end projects (from last year's GSoC students and other
> contributors) need this public demo-server in order to do rigorous testing.
> 
> At Your Service,
> Isaac Kamga.
> 
> On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> cheetah@monkeysintown.com> wrote:
> 
> > Great, Courage! I'll have a look at this.
> >
> > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <co...@gmail.com>
> > wrote:
> >
> > > Hi Alek,
> > >
> > > I have migrated the Docker files to their respective Fineract
> > repositories.
> > > Here are draft PRs for three microservices. Please review it and I will
> > > appreciate your feedback on any updates:
> > > https://github.com/apache/fineract-cn-identity/pull/8
> > > https://github.com/apache/fineract-cn-office/pull/8
> > > https://github.com/apache/fineract-cn-customer/pull/9
> > >
> > > You could review already built docker images on
> > > https://cloud.docker.com/u/anh3h/repository/list
> > > It's just a rough sample though.
> > >
> > > In the main time, I am updating the Docker-compose file so it spins up a
> > > swarm cluster.
> > >
> > > Thanks,
> > > Courage.
> > >
> > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <co...@gmail.com>
> > > wrote:
> > >
> > >> Hi Alek,
> > >>
> > >> I think we can start with that.
> > >> We can connect Docker Hub-Jenkins-GitHub.
> > >> If Fineract can't use Jenkins at the moment, then
> > >> we can connect GitHub directly to Docker Hub.
> > >>
> > >> Thanks,
> > >> Courage
> > >>
> > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > >> cheetah@monkeysintown.com> wrote:
> > >>
> > >>> Hi Courage,
> > >>>
> > >>> ... would be great if you could help out... especially with your
> > >>> knowledge
> > >>> about Docker.
> > >>>
> > >>> Preparing the Git repositories should be fairly easy... another nice
> > >>> thing
> > >>> to have: some kind of CI server to build and push images to Docker hub;
> > >>> not
> > >>> sure if Fineract is currently using Jenkins at Apache... in any case
> > not
> > >>> a
> > >>> big thing... setting up things with Travis or similar is not a big
> > deal.
> > >>>
> > >>> Anything else you can think of?
> > >>>
> > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <co...@gmail.com>
> > >>> wrote:
> > >>>
> > >>> > Hi Aleksandar,
> > >>> >
> > >>> > I can work with you on migrating the Fineract services from Docker
> > >>> compose
> > >>> > to Docker Swarm.
> > >>> > Then pushing the Fineract images to Docker Hub so it's easily
> > >>> accessible.
> > >>> >
> > >>> > I think that will require Ed to create a Docker Hub account for
> > >>> > Mifos/Fineract.
> > >>> >
> > >>> > Thanks,
> > >>> > Courage.
> > >>> >
> > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > >>> > cheetah@monkeysintown.com> wrote:
> > >>> >
> > >>> > > Hi Juan,
> > >>> > >
> > >>> > > ... thanks for chiming in... and thanks for the pointer to the Git
> > >>> > > repository with the Dockerfiles; that makes life already a lot
> > >>> easier.
> > >>> > >
> > >>> > > You are right, once you have the docker-compose.yml files lined up
> > >>> it's
> > >>> > not
> > >>> > > a big stretch to setup a Swarm cluster. After running such a
> > cluster
> > >>> for
> > >>> > a
> > >>> > > client of mine I just want to add:
> > >>> > >
> > >>> > > - a Swarm cluster with less than 3 nodes will not run very stable;
> > >>> I'm
> > >>> > > saying this, because at the moment we have 2 servers at our
> > disposal
> > >>> (I
> > >>> > > think)
> > >>> > > - colleagues told me that Swarm cluster worked less reliable for
> > them
> > >>> > than
> > >>> > > other solutions; I don't think for a demo system that is too much
> > of
> > >>> a
> > >>> > > concern, but again I had one running in a production environment
> > and
> > >>> had
> > >>> > no
> > >>> > > major problems
> > >>> > >
> > >>> > > If you want then let's connect (aleks@apache.org) and figure out
> > >>> how we
> > >>> > > can
> > >>> > > proceed with this... before the next GSoC season begins ;-)
> > >>> > >
> > >>> > > Cheers
> > >>> > >
> > >>> > >
> > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <aa...@gmail.com>
> > >>> wrote:
> > >>> > >
> > >>> > > > Hi Aleks
> > >>> > > >
> > >>> > > > Thanks for your work on pushing the demo server to live.
> > >>> > > > I have played around with the containers also and I add my
> > >>> feedback and
> > >>> > > > ideas.
> > >>> > > >
> > >>> > > > > - it would come in handy to have default Fineract CN Docker
> > >>> images
> > >>> > > > published on Docker Hub
> > >>> > > >
> > >>> > > > I think this is a way to go. If we want to promote adoption of
> > >>> > > Fineract-CN
> > >>> > > > then public images
> > >>> > > > lower the burden to anyone to download and get going with the
> > >>> project.
> > >>> > > > Does the CI server already exist that could potentially build the
> > >>> > images?
> > >>> > > >
> > >>> > > >  >  - I suggest to add a Dockerfile in every microservice Git
> > >>> > repository
> > >>> > > > (e.
> > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > >>> fineract-cn-payroll)
> > >>> > > and
> > >>> > > > let a
> > >>> > > >  >   CI server build and publish Docker images of these
> > >>> > > >
> > >>> > > > Yes. Most of the Dockerfiles already exist here
> > >>> > > > https://github.com/openMF/fineract-cn-containers
> > >>> > > > But they logically belong to the application's own code base so I
> > >>> see
> > >>> > no
> > >>> > > > harm in adding all
> > >>> > > > Dockerfiles to the app's own repository.
> > >>> > > >
> > >>> > > >   - I am assuming that we **don't** want to go all the way to
> > >>> setup a
> > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is to just
> > >>> have a
> > >>> > > set
> > >>> > > >
> > >>> > > > If we plan to operate with docker-compose already (and run in two
> > >>> > > servers)
> > >>> > > > then I, in my opinion, it wouldn't be much overhead to create a
> > >>> Swarm
> > >>> > > > cluster.
> > >>> > > > If I look at the instructions (
> > >>> > > https://docs.docker.com/get-started/part4/)
> > >>> > > > it doesn't seem like a lot of work.
> > >>> > > > Also if something happens then Swarm can detect and relaunch
> > >>> > containers.
> > >>> > > > But I'm no system administrator myself so I might be mistaken in
> > >>> terms
> > >>> > of
> > >>> > > > how much work it requires.
> > >>> > > >
> > >>> > > > > - to avoid code changes or Docker image rebuilds we should
> > >>> introduce
> > >>> > > > >   environment variables in the application.yml files of these
> > >>> > > > microservice
> > >>> > > > >   projects; e. g.:
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName: staging_cluster
> > >>> > > >  /---/
> > >>> > > > > ... should look something like this:
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName:
> > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > >>> > > > /---/
> > >>> > > >
> > >>> > > > I think there is no need to change application.yml files.
> > >>> > > > In docker-compose.yml you can overwrite any application.yml
> > >>> property in
> > >>> > > > "environment" section like this:
> > >>> > > >
> > >>> > > >    environment:
> > >>> > > >       -
> > >>> > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > >>> > > >
> > >>> > > > Juhan
> > >>> > > >
> > >>> > > >
> > >>> > > >
> > >>> > > > Kontakt Aleksandar Vidakovic (<ch...@monkeysintown.com>)
> > >>> kirjutas
> > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > >>> > > >
> > >>> > > > > Hi everyone,
> > >>> > > > >
> > >>> > > > > ... hope you all enjoyed the holidays and had a good start into
> > >>> the
> > >>> > new
> > >>> > > > > year :-)
> > >>> > > > >
> > >>> > > > > I have to appologize for my radio silence concerning the demo
> > >>> server,
> > >>> > > > but I
> > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > >>> > > > >
> > >>> > > > > Anyway, I just wanted to get this effort going again and would
> > >>> like
> > >>> > to
> > >>> > > > > discuss it with anyone interested.
> > >>> > > > >
> > >>> > > > > The current status:
> > >>> > > > >
> > >>> > > > >    - we have 2 (quite big) servers provided by the Apache
> > >>> Foundation
> > >>> > to
> > >>> > > > run
> > >>> > > > >    the demo setup
> > >>> > > > >    - initially I tried to get it running on one, but was not
> > >>> enough
> > >>> > > (even
> > >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> > >>> > > > >    - I've used the demo server module with some minor
> > >>> modifications
> > >>> > to
> > >>> > > > turn
> > >>> > > > >    off non-essential components (thanks Myrle)
> > >>> > > > >
> > >>> > > > > Trying all of this took quite some time... even on the beefy
> > >>> machine
> > >>> > > from
> > >>> > > > > Apache it took (as far as I remember) 30-40min until the demo
> > >>> server
> > >>> > > > > startup would ultimately fail.
> > >>> > > > >
> > >>> > > > > Instead of going down that route again I'd like to propose a
> > >>> > different
> > >>> > > > > strategy:
> > >>> > > > >
> > >>> > > > >    - I am assuming that we **don't** want to go all the way to
> > >>> setup
> > >>> > a
> > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the goal is to
> > >>> just
> > >>> > > have
> > >>> > > > a
> > >>> > > > > set
> > >>> > > > >    of docker-compose.yml files to start the system
> > >>> > > > >    - it would come in handy to have default Fineract CN Docker
> > >>> images
> > >>> > > > >    published on Docker Hub
> > >>> > > > >    - I suggest to add a Dockerfile in every microservice Git
> > >>> > repository
> > >>> > > > (e.
> > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > >>> fineract-cn-payroll)
> > >>> > > and
> > >>> > > > > let a
> > >>> > > > >    CI server build and publish Docker images of these
> > >>> > > > >    - to avoid code changes or Docker image rebuilds we should
> > >>> > introduce
> > >>> > > > >    environment variables in the application.yml files of these
> > >>> > > > microservice
> > >>> > > > >    projects; e. g.:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > ...
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName: staging_cluster
> > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042
> > >>> > > > >   keyspace: seshat
> > >>> > > > >   cl:
> > >>> > > > >     read: LOCAL_QUORUM
> > >>> > > > >     write: LOCAL_QUORUM
> > >>> > > > >     delete: LOCAL_QUORUM
> > >>> > > > > ...
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > > ... should look something like this:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > ...
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName:
> > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > >>> > > > >   contactPoints:
> > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > >>> > > > >   keyspace: ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > >>> > > > >   cl:
> > >>> > > > >     read: LOCAL_QUORUM
> > >>> > > > >     write: LOCAL_QUORUM
> > >>> > > > >     delete: LOCAL_QUORUM
> > >>> > > > > ...
> > >>> > > > > [/config]
> > >>> > > > >
> > >>> > > > >    - with the above changes we could then define
> > >>> docker-compose.yml
> > >>> > > files
> > >>> > > > >    like this (pseudo file for customer microservice):
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > version: '3.6'
> > >>> > > > >
> > >>> > > > > services:
> > >>> > > > >   customer:
> > >>> > > > >     image:
> > >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > >>> > > > >     depends_on:
> > >>> > > > >       - mongo
> > >>> > > > >     env_file:
> > >>> > > > >       - ./customer.env
> > >>> > > > >     ports:
> > >>> > > > >       - "10000:10000"
> > >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> > >>> > > > > -Dlogging.config=./logback.xml -jar
> > >>> -Djava.net.preferIPv4Stack=true
> > >>> > > > > fineract-cn-customer.jar"
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > > ... and the customer.env file would contain something like
> > this:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > >>> > > > >
> > >>> > > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > >    - we would provide templates for those env files (e. g.
> > >>> > > > >    "customer.env.template"); custom configurations (e. g.
> > >>> > > "customer.env")
> > >>> > > > >    should not be checked into Git
> > >>> > > > >    - if no environment variables are provided then the defaults
> > >>> in
> > >>> > the
> > >>> > > > >    application.yml config files kick in with reasonable values
> > >>> for a
> > >>> > > > local
> > >>> > > > > dev
> > >>> > > > >    machine deployment (given the required resources unlikely
> > for
> > >>> most
> > >>> > > > devs)
> > >>> > > > >
> > >>> > > > >
> > >>> > > > > Advantages:
> > >>> > > > >
> > >>> > > > >    - ready to consume Fineract CN Docker images
> > >>> > > > >    - no lengthy builds
> > >>> > > > >    - no re-build (Gradle, Docker) for configuration changes
> > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes) setup
> > >>> > > > >    - the Docker images could still be used as the basic
> > building
> > >>> > blocks
> > >>> > > > of
> > >>> > > > >    more complex architectures (Kubernetes)
> > >>> > > > >    - every service can be started/stopped separately which
> > makes
> > >>> > life a
> > >>> > > > lot
> > >>> > > > >    easier when we have to figure out the right configuration
> > for
> > >>> the
> > >>> > > demo
> > >>> > > > >    setup (I guess it would make it also easier for others that
> > >>> would
> > >>> > > like
> > >>> > > > > to
> > >>> > > > >    setup their own environments)
> > >>> > > > >
> > >>> > > > > I am using most (if not all) of the required bits and pieces
> > for
> > >>> this
> > >>> > > > setup
> > >>> > > > > on a daily basis and I think it should be not too complicated
> > to
> > >>> get
> > >>> > > this
> > >>> > > > > working. And it would not interfere (too much) with the
> > existing
> > >>> Git
> > >>> > > > > repositories.
> > >>> > > > >
> > >>> > > > > Please let me know what you think...
> > >>> > > > >
> > >>> > > > > Cheers,
> > >>> > > > >
> > >>> > > > > Aleks
> > >>> > > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > >>
> >
> 

Hi Isaac,

I would know, if you noticed difficulties, in setup Fineract-CN and all its module and demo-server. i am using digital Ocean, followed all the instructions, yet had some errors in compilation using the initial-setup.sh, also the fims-web-apps doesn't work. Could you try to confirm, I need help on this.

Thanks,
David Alozie
wiretoothtech@gmail.com
+234 809 944 7105

Re: Fineract CN Demo server setup

Posted by Awasum Yannick <aw...@apache.org>.
Hi Aleks and Courage,

Will it make sense to have a Docker Compose setup run on the Apache VM to
enable the Front end apps for GSoC? Rather than wait for the Swarm thing
which may need more resources?
Given there are 2 VMs, we could use one for the Datastores and another for
the Services? How complicated is this to do?

What do you think?

On Thu, Mar 7, 2019 at 1:37 AM Isaac Kamga <is...@mifos.org> wrote:

> Hello fineracters,
>
> +Aleksandar Vidakovic <ch...@monkeysintown.com> , +courage angeh
> <co...@gmail.com>
>
> Is there any progress on this front ?
>
> Most front-end projects (from last year's GSoC students and other
> contributors) need this public demo-server in order to do rigorous testing.
>
> At Your Service,
> Isaac Kamga.
>
> On Mon, Feb 25, 2019 at 12:33 AM Aleksandar Vidakovic <
> cheetah@monkeysintown.com> wrote:
>
> > Great, Courage! I'll have a look at this.
> >
> > On Fri, Feb 22, 2019 at 4:49 PM Courage Angeh <co...@gmail.com>
> > wrote:
> >
> > > Hi Alek,
> > >
> > > I have migrated the Docker files to their respective Fineract
> > repositories.
> > > Here are draft PRs for three microservices. Please review it and I will
> > > appreciate your feedback on any updates:
> > > https://github.com/apache/fineract-cn-identity/pull/8
> > > https://github.com/apache/fineract-cn-office/pull/8
> > > https://github.com/apache/fineract-cn-customer/pull/9
> > >
> > > You could review already built docker images on
> > > https://cloud.docker.com/u/anh3h/repository/list
> > > It's just a rough sample though.
> > >
> > > In the main time, I am updating the Docker-compose file so it spins up
> a
> > > swarm cluster.
> > >
> > > Thanks,
> > > Courage.
> > >
> > > On Fri, Feb 1, 2019 at 8:00 PM Courage Angeh <co...@gmail.com>
> > > wrote:
> > >
> > >> Hi Alek,
> > >>
> > >> I think we can start with that.
> > >> We can connect Docker Hub-Jenkins-GitHub.
> > >> If Fineract can't use Jenkins at the moment, then
> > >> we can connect GitHub directly to Docker Hub.
> > >>
> > >> Thanks,
> > >> Courage
> > >>
> > >> On Thu, Jan 31, 2019 at 9:44 PM Aleksandar Vidakovic <
> > >> cheetah@monkeysintown.com> wrote:
> > >>
> > >>> Hi Courage,
> > >>>
> > >>> ... would be great if you could help out... especially with your
> > >>> knowledge
> > >>> about Docker.
> > >>>
> > >>> Preparing the Git repositories should be fairly easy... another nice
> > >>> thing
> > >>> to have: some kind of CI server to build and push images to Docker
> hub;
> > >>> not
> > >>> sure if Fineract is currently using Jenkins at Apache... in any case
> > not
> > >>> a
> > >>> big thing... setting up things with Travis or similar is not a big
> > deal.
> > >>>
> > >>> Anything else you can think of?
> > >>>
> > >>> On Thu, Jan 31, 2019 at 6:27 PM Courage Angeh <
> courageangeh@gmail.com>
> > >>> wrote:
> > >>>
> > >>> > Hi Aleksandar,
> > >>> >
> > >>> > I can work with you on migrating the Fineract services from Docker
> > >>> compose
> > >>> > to Docker Swarm.
> > >>> > Then pushing the Fineract images to Docker Hub so it's easily
> > >>> accessible.
> > >>> >
> > >>> > I think that will require Ed to create a Docker Hub account for
> > >>> > Mifos/Fineract.
> > >>> >
> > >>> > Thanks,
> > >>> > Courage.
> > >>> >
> > >>> > On Sat, Jan 19, 2019 at 1:49 PM Aleksandar Vidakovic <
> > >>> > cheetah@monkeysintown.com> wrote:
> > >>> >
> > >>> > > Hi Juan,
> > >>> > >
> > >>> > > ... thanks for chiming in... and thanks for the pointer to the
> Git
> > >>> > > repository with the Dockerfiles; that makes life already a lot
> > >>> easier.
> > >>> > >
> > >>> > > You are right, once you have the docker-compose.yml files lined
> up
> > >>> it's
> > >>> > not
> > >>> > > a big stretch to setup a Swarm cluster. After running such a
> > cluster
> > >>> for
> > >>> > a
> > >>> > > client of mine I just want to add:
> > >>> > >
> > >>> > > - a Swarm cluster with less than 3 nodes will not run very
> stable;
> > >>> I'm
> > >>> > > saying this, because at the moment we have 2 servers at our
> > disposal
> > >>> (I
> > >>> > > think)
> > >>> > > - colleagues told me that Swarm cluster worked less reliable for
> > them
> > >>> > than
> > >>> > > other solutions; I don't think for a demo system that is too much
> > of
> > >>> a
> > >>> > > concern, but again I had one running in a production environment
> > and
> > >>> had
> > >>> > no
> > >>> > > major problems
> > >>> > >
> > >>> > > If you want then let's connect (aleks@apache.org) and figure out
> > >>> how we
> > >>> > > can
> > >>> > > proceed with this... before the next GSoC season begins ;-)
> > >>> > >
> > >>> > > Cheers
> > >>> > >
> > >>> > >
> > >>> > > On Sat, Jan 19, 2019 at 4:03 PM Juhan Aasaru <aa...@gmail.com>
> > >>> wrote:
> > >>> > >
> > >>> > > > Hi Aleks
> > >>> > > >
> > >>> > > > Thanks for your work on pushing the demo server to live.
> > >>> > > > I have played around with the containers also and I add my
> > >>> feedback and
> > >>> > > > ideas.
> > >>> > > >
> > >>> > > > > - it would come in handy to have default Fineract CN Docker
> > >>> images
> > >>> > > > published on Docker Hub
> > >>> > > >
> > >>> > > > I think this is a way to go. If we want to promote adoption of
> > >>> > > Fineract-CN
> > >>> > > > then public images
> > >>> > > > lower the burden to anyone to download and get going with the
> > >>> project.
> > >>> > > > Does the CI server already exist that could potentially build
> the
> > >>> > images?
> > >>> > > >
> > >>> > > >  >  - I suggest to add a Dockerfile in every microservice Git
> > >>> > repository
> > >>> > > > (e.
> > >>> > > >  >    g. fineract-cn-customer, fineract-cn-teller,
> > >>> fineract-cn-payroll)
> > >>> > > and
> > >>> > > > let a
> > >>> > > >  >   CI server build and publish Docker images of these
> > >>> > > >
> > >>> > > > Yes. Most of the Dockerfiles already exist here
> > >>> > > > https://github.com/openMF/fineract-cn-containers
> > >>> > > > But they logically belong to the application's own code base
> so I
> > >>> see
> > >>> > no
> > >>> > > > harm in adding all
> > >>> > > > Dockerfiles to the app's own repository.
> > >>> > > >
> > >>> > > >   - I am assuming that we **don't** want to go all the way to
> > >>> setup a
> > >>> > > > Kubernetes (or even a Docker Swarm) cluster; the goal is to
> just
> > >>> have a
> > >>> > > set
> > >>> > > >
> > >>> > > > If we plan to operate with docker-compose already (and run in
> two
> > >>> > > servers)
> > >>> > > > then I, in my opinion, it wouldn't be much overhead to create a
> > >>> Swarm
> > >>> > > > cluster.
> > >>> > > > If I look at the instructions (
> > >>> > > https://docs.docker.com/get-started/part4/)
> > >>> > > > it doesn't seem like a lot of work.
> > >>> > > > Also if something happens then Swarm can detect and relaunch
> > >>> > containers.
> > >>> > > > But I'm no system administrator myself so I might be mistaken
> in
> > >>> terms
> > >>> > of
> > >>> > > > how much work it requires.
> > >>> > > >
> > >>> > > > > - to avoid code changes or Docker image rebuilds we should
> > >>> introduce
> > >>> > > > >   environment variables in the application.yml files of these
> > >>> > > > microservice
> > >>> > > > >   projects; e. g.:
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName: staging_cluster
> > >>> > > >  /---/
> > >>> > > > > ... should look something like this:
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName:
> > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > >>> > > > /---/
> > >>> > > >
> > >>> > > > I think there is no need to change application.yml files.
> > >>> > > > In docker-compose.yml you can overwrite any application.yml
> > >>> property in
> > >>> > > > "environment" section like this:
> > >>> > > >
> > >>> > > >    environment:
> > >>> > > >       -
> > >>> > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> >
> "cassandra.clusterName=${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}"
> > >>> > > >
> > >>> > > > Juhan
> > >>> > > >
> > >>> > > >
> > >>> > > >
> > >>> > > > Kontakt Aleksandar Vidakovic (<ch...@monkeysintown.com>)
> > >>> kirjutas
> > >>> > > > kuupäeval N, 17. jaanuar 2019 kell 03:46:
> > >>> > > >
> > >>> > > > > Hi everyone,
> > >>> > > > >
> > >>> > > > > ... hope you all enjoyed the holidays and had a good start
> into
> > >>> the
> > >>> > new
> > >>> > > > > year :-)
> > >>> > > > >
> > >>> > > > > I have to appologize for my radio silence concerning the demo
> > >>> server,
> > >>> > > > but I
> > >>> > > > > got a bit steam rolled by work in the last 6 months.
> > >>> > > > >
> > >>> > > > > Anyway, I just wanted to get this effort going again and
> would
> > >>> like
> > >>> > to
> > >>> > > > > discuss it with anyone interested.
> > >>> > > > >
> > >>> > > > > The current status:
> > >>> > > > >
> > >>> > > > >    - we have 2 (quite big) servers provided by the Apache
> > >>> Foundation
> > >>> > to
> > >>> > > > run
> > >>> > > > >    the demo setup
> > >>> > > > >    - initially I tried to get it running on one, but was not
> > >>> enough
> > >>> > > (even
> > >>> > > > >    with 32GB of RAM and some swap configuration tricks)
> > >>> > > > >    - I've used the demo server module with some minor
> > >>> modifications
> > >>> > to
> > >>> > > > turn
> > >>> > > > >    off non-essential components (thanks Myrle)
> > >>> > > > >
> > >>> > > > > Trying all of this took quite some time... even on the beefy
> > >>> machine
> > >>> > > from
> > >>> > > > > Apache it took (as far as I remember) 30-40min until the demo
> > >>> server
> > >>> > > > > startup would ultimately fail.
> > >>> > > > >
> > >>> > > > > Instead of going down that route again I'd like to propose a
> > >>> > different
> > >>> > > > > strategy:
> > >>> > > > >
> > >>> > > > >    - I am assuming that we **don't** want to go all the way
> to
> > >>> setup
> > >>> > a
> > >>> > > > >    Kubernetes (or even a Docker Swarm) cluster; the goal is
> to
> > >>> just
> > >>> > > have
> > >>> > > > a
> > >>> > > > > set
> > >>> > > > >    of docker-compose.yml files to start the system
> > >>> > > > >    - it would come in handy to have default Fineract CN
> Docker
> > >>> images
> > >>> > > > >    published on Docker Hub
> > >>> > > > >    - I suggest to add a Dockerfile in every microservice Git
> > >>> > repository
> > >>> > > > (e.
> > >>> > > > >    g. fineract-cn-customer, fineract-cn-teller,
> > >>> fineract-cn-payroll)
> > >>> > > and
> > >>> > > > > let a
> > >>> > > > >    CI server build and publish Docker images of these
> > >>> > > > >    - to avoid code changes or Docker image rebuilds we should
> > >>> > introduce
> > >>> > > > >    environment variables in the application.yml files of
> these
> > >>> > > > microservice
> > >>> > > > >    projects; e. g.:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > ...
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName: staging_cluster
> > >>> > > > >   contactPoints: 127.0.0.1:9042,127.0.0.2:9042,
> 127.0.0.3:9042
> > >>> > > > >   keyspace: seshat
> > >>> > > > >   cl:
> > >>> > > > >     read: LOCAL_QUORUM
> > >>> > > > >     write: LOCAL_QUORUM
> > >>> > > > >     delete: LOCAL_QUORUM
> > >>> > > > > ...
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > > ... should look something like this:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > ...
> > >>> > > > > cassandra:
> > >>> > > > >   clusterName:
> > >>> > > > ${FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME:staging_cluster}
> > >>> > > > >   contactPoints:
> > ${FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS:
> > >>> > > > > 127.0.0.1:9042,127.0.0.2:9042,127.0.0.3:9042}
> > >>> > > > >   keyspace: ${FINERACT_CUSTOMER_CASSANDRA_KEYSPACE:seshat}
> > >>> > > > >   cl:
> > >>> > > > >     read: LOCAL_QUORUM
> > >>> > > > >     write: LOCAL_QUORUM
> > >>> > > > >     delete: LOCAL_QUORUM
> > >>> > > > > ...
> > >>> > > > > [/config]
> > >>> > > > >
> > >>> > > > >    - with the above changes we could then define
> > >>> docker-compose.yml
> > >>> > > files
> > >>> > > > >    like this (pseudo file for customer microservice):
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > version: '3.6'
> > >>> > > > >
> > >>> > > > > services:
> > >>> > > > >   customer:
> > >>> > > > >     image:
> > >>> > nexus.pelotoninnovations.com/rspndr/server-in-memory:latest
> > >>> > > > >     depends_on:
> > >>> > > > >       - mongo
> > >>> > > > >     env_file:
> > >>> > > > >       - ./customer.env
> > >>> > > > >     ports:
> > >>> > > > >       - "10000:10000"
> > >>> > > > >     command: sh -c "java -Xmx1024m -Duser.timezone=UTC
> > >>> > > > > -Dlogging.config=./logback.xml -jar
> > >>> -Djava.net.preferIPv4Stack=true
> > >>> > > > > fineract-cn-customer.jar"
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > > ... and the customer.env file would contain something like
> > this:
> > >>> > > > >
> > >>> > > > > [code]
> > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_CLUSTER_NAME=prod_cluster
> > >>> > > > >
> > >>> > > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> >
> FINERACT_CUSTOMER_CASSANDRA_CONTACT_ENDPOINTS=server1:9042,server2:9042,server3:9042
> > >>> > > > > FINERACT_CUSTOMER_CASSANDRA_KEYSPACE=seshat
> > >>> > > > > [/code]
> > >>> > > > >
> > >>> > > > >    - we would provide templates for those env files (e. g.
> > >>> > > > >    "customer.env.template"); custom configurations (e. g.
> > >>> > > "customer.env")
> > >>> > > > >    should not be checked into Git
> > >>> > > > >    - if no environment variables are provided then the
> defaults
> > >>> in
> > >>> > the
> > >>> > > > >    application.yml config files kick in with reasonable
> values
> > >>> for a
> > >>> > > > local
> > >>> > > > > dev
> > >>> > > > >    machine deployment (given the required resources unlikely
> > for
> > >>> most
> > >>> > > > devs)
> > >>> > > > >
> > >>> > > > >
> > >>> > > > > Advantages:
> > >>> > > > >
> > >>> > > > >    - ready to consume Fineract CN Docker images
> > >>> > > > >    - no lengthy builds
> > >>> > > > >    - no re-build (Gradle, Docker) for configuration changes
> > >>> > > > >    - no requirement to do cluster (Swarm, Kubernetes) setup
> > >>> > > > >    - the Docker images could still be used as the basic
> > building
> > >>> > blocks
> > >>> > > > of
> > >>> > > > >    more complex architectures (Kubernetes)
> > >>> > > > >    - every service can be started/stopped separately which
> > makes
> > >>> > life a
> > >>> > > > lot
> > >>> > > > >    easier when we have to figure out the right configuration
> > for
> > >>> the
> > >>> > > demo
> > >>> > > > >    setup (I guess it would make it also easier for others
> that
> > >>> would
> > >>> > > like
> > >>> > > > > to
> > >>> > > > >    setup their own environments)
> > >>> > > > >
> > >>> > > > > I am using most (if not all) of the required bits and pieces
> > for
> > >>> this
> > >>> > > > setup
> > >>> > > > > on a daily basis and I think it should be not too complicated
> > to
> > >>> get
> > >>> > > this
> > >>> > > > > working. And it would not interfere (too much) with the
> > existing
> > >>> Git
> > >>> > > > > repositories.
> > >>> > > > >
> > >>> > > > > Please let me know what you think...
> > >>> > > > >
> > >>> > > > > Cheers,
> > >>> > > > >
> > >>> > > > > Aleks
> > >>> > > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > >>
> >
>