Steps for running demo application

  • Install docker and compose for your operating system: https://docs.docker.com/install/

  • Create the following folder structure on your system:



    Download the manager configuration file from github: manager/application.properties
    Download the server configuration file from github: server/application.properties

  • Setup environment and variables needed by docker-compose:

    1. DB_USER: the h2 database user
    2. DB_PASSWORD: the h2 database password
    3. DATA_LOCATION: volume where the database file will be stored by docker compose on the host
    4. SPRING_CONFIG_LOCATION_MANAGER: folder containing spring boot 'application.properties' mandatory for starting the soagg-manager
    5. SPRING_CONFIG_LOCATION_SRV: folder containing spring boot 'application.properties' mandatory for starting the backend server

    
    export DB_USER=sa
    export DB_PASSWORD=
    export DATA_LOCATION=./data
    export SPRING_CONFIG_LOCATION_MANAGER=./manager
    export SPRING_CONFIG_LOCATION_SRV=./server
    										

  • Paste following content into file 'compose-dev.yaml':

    
    version: '3.7'
    services:
    
      soagg-database:
        image: jsoagger/soagg-h2:1.4.197-1.0.0-nd
        restart: on-failure
        ports:
          - 1521:1521
          - 81:81
        
        volumes:
           - $DATA_LOCATION:/opt/h2-data
          
        environment:
          - DB_USER=$DB_USER
          - DB_PASSWORD=$DB_PASSWORD
        
        networks:
          - soagg_network  
          
                    
      soagg-foundation-srv:
        image: jsoagger/soagg-foundation-srv:latest
        restart: on-failure
        ports:
          - 8080:8080
        
        volumes:
          - $SPRING_CONFIG_LOCATION_SRV:/spring-config/:ro
          
        depends_on:
          - soagg-database
              
        networks:
          - soagg_network  
    
    
      soagg-manager:
        image: jsoagger/soagg-manager:latest
        container_name: soagg-manager_1
        tty: true
        stdin_open: true
        environment:
          - MANAGED_BACKEND_REST_URL=http://soagg-foundation-srv:8080/jsoagger
    
        volumes:
          - $SPRING_CONFIG_LOCATION_MANAGER:/spring-config/:ro
    
        depends_on: 
          - soagg-foundation-srv
    
        networks:
          - soagg_network  
    
    
      soagg-webdev:
        image: jsoagger/soagg-webdev:latest
        container_name: soagg-webdev
        ports:
          - '3000:3000'
          
        environment:
          - NODE_ENV=development
          - CHOKIDAR_USEPOLLING=true
          - JSOAGGER_API_URL=http://localhost:8080/jsoagger
                     
        networks:
          - soagg_network  
                     
    networks:
      soagg_network:
        driver: "bridge"   
    									


  • Start all services with docker compose:

    
    > docker-compose -f compose-dev.yaml up
    										


  • Load foundation datas:

    
    docker run --rm --name soagg-foundation-data --network=docker-compose_soagg_network \
    -v $SPRING_CONFIG_LOCATION_MANAGER:/spring-config/\
    jsoagger/soagg-foundation-data:latest

  • Browse:

    http://localhost:3000/#/c/login
    http://localhost:81/

Overview

Docker hub

Docker Hub is the world's largest library and community for container images.
All JSoagger official images are published under docker hub automatically from travic-CI.
You can browse all of them from following url : https://hub.docker.com/u/jsoagger

jsoagger/soagg-h2:1.4.197-1.0.0-nd

'soagg-h2' is a customized h2 database server for jsoagger. It includes initialization script for database schema initialization.

soagg-foundation-srv service

'soagg-foundation-srv' is the jsoagger backend server. Based on springboot, it starts an embedded tomcat server on port 8080.

soagg-manager service

'soagg-manager' is the command line interface for managing jsoagger backend server. Built ith spring shell 2.0, it includes more than 60 commands.

soagg-webdev service

'soagg-webdev' is the React.js web ui client on jsoagger.