Skip to content

Install Onegini Extension Engine

To install the Onegini Extension Engine please follow the steps described.

Download the Docker image

The Onegini Extension Engine is delivered as a Docker image. There are two ways to receive a Docker image:

Docker Index

The first and preferred way is to use the Onegini index. This is the central container repository of Onegini. To download the containers you first need to login with the Docker client using your login credentials.

docker login https://release.onewelcome.com

After you logged in on the Onegini Index you can pull the latest images.

docker pull release.onewelcome.com/onegini/extension-engine:<version>

NOTE: If you did not receive any login credentials, please contact Onegini support.

Import from tar

The second way is to import the image from a tarball. This options is mostly used when the docker host has no internet connection.

docker load < /path/to/extension-engine-<version>.tar

Show images

To verify that the docker images are loaded, use the docker images command.

docker images

Deploy application

The application can be deployed using docker-compose. At least 512 MB of memory is required by the application, this should be assigned using the JAVA_OPTS environment variable. Any port can be used to expose the apis, the default is 7876.

Configuration

Please see the configuration section for configuration instructions.

Example docker-compose file

version: "2"
services:
  extension-engine:
    image: release.onewelcome.com/onegini/extension-engine:latest
    environment:
      - JAVA_OPTS=-Xmx512m -Xms512m

      - DATABASE_TYPE=mysql
      - DATABASE_URL=jdbc:mysql://database:3306/extension-engine?autoReconnect=true
      - DATABASE_USERNAME=onegini
      - DATABASE_PASSWORD=onegini

      - DATABASE_ENCRYPTION_PASSWORD=remdtxjk8kv8lrb7b9vxlhacfqtqslvzu6h59j6c

      - SPRING_SECURITY_USER_NAME=xe-basic-auth-user
      - SPRING_SECURITY_USER_PASSWORD=E6D8wNcTEeSrgENw9k6Y

      - PROPERTY_ENCRYPTION_PASSWORD=aslkdfjasdf90asf8as098fas0dfsdflfkwads

      # Redis
      - SPRING_REDIS_SENTINEL_NODES=192.168.0.16:26379,192.168.0.17:26379,192.168.0.18:26379
      - SPRING_REDIS_SENTINEL_MASTER=mymaster
    restart: always
    user: onegini
    ports:
      - 7876:7876
    networks:
      - xe

  # For local development and testing only
  database:
    image: mariadb:latest
    mem_limit: 512mb
    restart: always
    environment:
      # Service Discovery
      - SERVICE_IGNORE=true

      # MariaDB
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=extension-engine
      - MYSQL_USER=onegini
      - MYSQL_PASSWORD=onegini
    volumes:
      - /opt/onegini/xe/database:/var/lib/mysql
    networks:
      - xe

  redis-master:
    image: release.onewelcome.com/onegini/redis:1.0.0
    user: onegini
    environment:
      - REDIS_PORT=6379
      - REDIS_ANNOUNCE_IP=192.168.100.14
      - REDIS_ANNOUNCE_PORT=6379
    networks:
      overlay:
        ipv4_address: 192.168.100.14

  redis-slave:
    image: release.onewelcome.com/onegini/redis:1.0.0
    user: onegini
    environment:
      - REDIS_PORT=6379
      - REDIS_ANNOUNCE_IP=192.168.0.15
      - REDIS_ANNOUNCE_PORT=6379
      - REDIS_SLAVE=True
      - REDIS_SLAVEOF_IP=192.168.0.14
      - REDIS_SLAVEOF_PORT=6379
    depends_on:
      - redis-master
    networks:
      xe:
        ipv4_address: 192.168.0.15

  redis-master-sentinel:
    image: release.onewelcome.com/onegini/redis:1.0.0
    user: onegini
    environment:
      - REDIS_SENTINEL=True
      - REDIS_SENTINEL_PORT=26379
      - REDIS_SENTINEL_ANNOUNCE_IP=192.168.0.16
      - REDIS_SENTINEL_ANNOUNCE_PORT=26379
      - REDIS_SENTINEL_MASTER_IP=192.168.0.14
      - REDIS_SENTINEL_MASTER_PORT=6379
    depends_on:
      - redis-master
    networks:
      xe:
        ipv4_address: 192.168.0.16

  redis-slave-sentinel:
    image: release.onewelcome.com/onegini/redis:1.0.0
    user: onegini
    environment:
      - REDIS_SENTINEL=True
      - REDIS_SENTINEL_PORT=26379
      - REDIS_SENTINEL_ANNOUNCE_IP=192.168.0.17
      - REDIS_SENTINEL_ANNOUNCE_PORT=26379
      - REDIS_SENTINEL_MASTER_IP=192.168.0.14
      - REDIS_SENTINEL_MASTER_PORT=6379
    depends_on:
      - redis-master-sentinel
    networks:
      xe:
        ipv4_address: 192.168.0.17

  redis-slave-sentinel-failover:
    image: release.onewelcome.com/onegini/redis:1.0.0
    user: onegini
    environment:
      - REDIS_SENTINEL=True
      - REDIS_SENTINEL_PORT=26379
      - REDIS_SENTINEL_ANNOUNCE_IP=192.168.0.18
      - REDIS_SENTINEL_ANNOUNCE_PORT=26379
      - REDIS_SENTINEL_MASTER_IP=192.168.0.14
      - REDIS_SENTINEL_MASTER_PORT=6379
    depends_on:
      - redis-master-sentinel
    networks:
      xe:
        ipv4_address: 192.168.0.18

networks:
  xe:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.0.0/24