OEM

The OEM kit provides a way for developers, integrators, partners and those who are embedded Cloud CMS in custom solutions to build and test extensions. These extensions include UI extensions as well as API extensions in the form of Java / Spring beans.

The kit consists of the following services:

  • ui
  • api
  • mongodb
  • elasticsearch

These are connected like this:

Running

Use the following commands:

docker-compose build --force-rm
docker-compose up

And then open a browser to:

http://localhost

To access the API directly:

https://localhost:8080

Development Mounts

The following is mounted into the Cloud CMS UI Server:

  • UI source code from ~/projects/cloudcms-ui-server
  • UI extensions from ./ui/ext

The following is mounted into the Cloud CMS API Server:

  • API war file from ~/projects/gitana-distributions/api-docker/target/api-docker-2.5.war
  • API extensions (jar files) from ./api/ext/lib
  • API extensions (classes) from ./api/ext/classes

docker-compose.yml

version: "2"

services:

  ui:
    build: ./ui
    networks:
      - cloudcms
    depends_on:
      - api
    env_file:
      - ./ui/ui.env
    ports:
      - "80:80"
    volumes:
      - ~/projects/cloudcms-ui-server/public_build:/var/app/current/public_build
      - ~/projects/cloudcms-ui-server/public:/var/app/current/public
      - ./ui/ext:/var/app/current/ext

  api:
    build: ./api
    networks:
      - cloudcms
    depends_on:
      - mongodb
      - elasticsearch
    env_file:
      - ./api/api.env
    ports:
      - "8080:8080"
      - "5005:5005"
    volumes:
      - ~/projects/gitana-distributions/api-docker/target/api-docker-2.5.war:/opt/tomcat/webapps/ROOT.war

  mongodb:
    image: ${kit.images.mongodb.name}
    networks:
      - cloudcms
    ports:
      - "27017:27017"
    command: mongod --smallfiles --storageEngine=mmapv1

  elasticsearch:
    image: ${kit.images.elasticsearch.name}
    networks:
      - cloudcms
    ports:
      - "9300:9300"
    command: elasticsearch -Des.cluster.name=cloudcms-docker

networks:
  cloudcms:
    driver: bridge