Categories

Versions

You are viewing the RapidMiner Go documentation for version 10.1 - Check here for latest version

Install RapidMiner Go

Prerequisites

To install RapidMiner Go on-premise, you need an on-premise license. Please contact sales for more information.

You need to have the following installed and running on your machine:

  • Docker >= v18.09
  • docker-compose >= 1.23

To read more how to install docker and docker-compose on your platform see:

You need to grant at least 8GiB of memory to the Docker Engine for acceptable performance.

Docker Images

The application is composed of several images:

  • rapidminer-automodel-routing : Routing NGINX reverse proxy
  • rapidminer-automodel-rmid : RMID - authentication and authorization service
  • rapidminer-automodeler : RapidMiner Go - the automatic modeling and prediction service
  • rapidminer-automodel-job-container : Job Container - execution backend for RapidMiner Go
  • rapidminer-ui-event-tracking : EventTracking - analytics service

Each service can be customized by setting environment variables in docker-compose-services.yml. For configuration options check the relevant sub-pages.

The images of the individual services are available on Docker Hub

Docker-compose

Please download and unzip the docker files here.

The full stack can be composed using two files:

  • docker-compose-infra.yml : contains all the infrastructural needs for the application stack
  • docker-compose-services.yml : contains all the services configured

To start the full stack execute the following steps:

  • Copy your RapidMiner Go license into the folder licenses/rapidminer-go-on-prem
  • The license file can have any name, so long as it ends with .lic
  • Edit the .env file and make sure to update the following:
AUTH_SECRET=your_base64_encoded_secret
BASE_URL=https://localhost:30000
  • IMAGE_TAGs identify the build versions to be used for composing.
  • AUTH_SECRET is the secret used for signing and validating the authentication tokens used by the applications -- it has to be a Base64 encoded string.
  • BASE_URL is the external base URL visible on the frontend - e.g. https://localhost:30000

Docker-based resource limitation

Further down you will find the default memory settings for the services. These are optimized for a 8GB of total RAM consumption where 4GB is used by the single JobContainer. If you plan to use multiple JobContainers in parallel please allocate additional 4GB RAM to each.

JOB_CONTAINERS=1
MEMORY_PER_JOB_CONTAINER=4G
MEMORY_AM=1560M
MEMORY_DB=256M
MEMORY_MQ=512M
MEMORY_ROUTING=64M
MEMORY_RMID=512M
MEMORY_ET=320M

These values are filled into the memory_limit field for each service in the docker-compose file. Inside the docker-compose file it is also possible to limit the number of cpus's via the cpus field.

Finally the IMAGE_TAG's identify the image versions to be used for composing:

IMAGE_TAG_ROUTING=2.6.0
IMAGE_TAG_RMID=2.6.2
IMAGE_TAG_AM=2.7.1
IMAGE_TAG_JC=2.6.0
IMAGE_TAG_ET=2.5.6

Important: The databases and the AMQ broker use the default passwords. It is not recommended to use these in production. Follow the guide below to change the default passwords.

  • if you have already installed a previous version of RapidMiner Go - stop and remove running containers, remove docker images of previous versions before proceeding
  • Execute docker-compose -f docker-compose-infra.yml up -d
  • Execute docker-compose -f docker-compose-services.yml up -d
  • Wait for ~2-3 minutes depending on your machine to have all the services available

To check logs of individual applications:

  • Execute docker-compose -f docker-compose-STACK.yml logs SERVICE_NAME where STACK is the postfix of the yml file's name and SERVICE_NAME is the name of the service which logs you want to display (use compose yml's service names (which are the direct children of services: node, e.g.: rapidminer-automodeler)

To shut down the full stack:

  • First shut down services by executing docker-compose -f docker-compose-services.yml down
  • Then shut down infrastructure via docker-compose -f docker-compose-infra.yml down

Try

  • Open application on https://localhost:30000
  • the browser will warn you that the site is not secure - this is because of the self-signed certificate - for testing purposes you can add a security exception and proceed; if you plan to serve RapidMiner Go on plain HTTP you can find instructions at the bottom of this page
  • Use admin and changeit for user/password

  • For creating additional users check RMID docs

Change the default passwords

You should change the default database passwords for users rmid and cookie in docker-entrypoint-initdb.d/init-user-db.sh :

 CREATE USER cookie WITH ENCRYPTED PASSWORD 'automodel_db_password';
 ...
 CREATE USER rmid WITH ENCRYPTED PASSWORD 'rmid_db_password';

Then you should provide the same passwords by adding new environment variables to the services in docker-compose-services.yml:

  rapidminer-automodeler:
    image: rapidminer/rapidminer-automodeler:${IMAGE_TAG}
    environment:
      ...
      DB_PASSWORD: <automodel_db_password>
      ...
  rapidminer-automodel-rmid:
    image: rapidminer/rapidminer-automodel-rmid:${IMAGE_TAG}
    environment:
      ...
      DB_PASSWORD: <rmid_db_password>
      ...
  rapidminer-ui-event-tracking:
    image: rapidminer/rapidminer-ui-event-tracking:${IMAGE_TAG}
    environment:
      ...
      DB_PASSWORD: <automodel_db_password>
      ...

The default database is PostgreSQL 9.6, exposed by default on port 5432 of localhost. Direct connections are possible via any database console or a tool such as pgAdmin. The default password can be changed in docker-compose-infra.yml

  rapidminer-automodel-db:
    image: postgres:9.6.6
    volumes:
      - rapidminer_automodel_dbdata:/var/lib/postgresql/data
      - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    environment:
          POSTGRES_PASSWORD: cookiepass
          POSTGRES_USER: cookie
    ports:
      - "5432:5432"

To further improve security, the ActiveMQ password should also be added as a new environment variable in docker-compose-infra.yml :

  rapidminer-automodel-activemq:
    image: webcenter/activemq:5.13.1
    environment:
      ...
      ACTIVEMQ_ADMIN_LOGIN: admin
      ACTIVEMQ_ADMIN_PASSWORD: admin
      ACTIVEMQ_OWNER_PASSWORD: <amq_password>
      ...
    ports:
      - "8161:8161"

Then provide the same password as a new environment variable to services in docker-compose-services.yml:

  rapidminer-automodeler:
      ...
      AMQ_PASSWORD: <amq_password>
      ...
  rapidminer-automodel-job-container:
      ...
      AMQ_PASSWORD: <amq_password>
      ...

An admin console is also exposed for ActiveMQ. Use the ACTIVEMQ_ADMIN credentials to access the admin monitoring tool of ActiveMQ in your browser at http://localhost:8161/admin/queues.jsp.

Use HTTPS

The default configuration uses HTTPS with a self-signed certificate issued for localhost.

Use a certificate issued by a certificate authority

If you already have a certificate:

  • copy the crt file to ssl/certs/go.crt and
  • copy the private key file to ssl/private/go.key

The file names and locations should be exactly as indicated. This whole ssl folder is mounted into the routing service container's file system.

Then edit the value of SERVER_NAME in docker-compose-services for service rapidminer-automodel-routing to match the 'Common name' specified in your certificate.

Optionally you might also want to change the port where RapidMiner Go listens -- the default port mapping is 30000:443

Finally change the BASE_URL in .env to your domain - e.g. https://go.mydomain.com:30000

Generate a self-signed certificate

You can generate your own self-signed certificate for testing purposes:

Run the following command and enter 'localhost' for 'Common name':

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl/private/go.key -out ssl/certs/go.crt

Generate the dhparams file using the following command:

sudo openssl dhparam -out ssl/certs/dhparam.pem 2048

Finally set SERVER_NAME to localhost.

Use HTTP

If you decide to use HTTP because RapidMiner Go is behind a reverse proxy doing the ssl offload, these are the steps to configure it:

In docker-compose-services.yml change the following lines for rapidminer-automodel-routing service:

  • PORTS : change port mapping to 30000:80
  • PROTOCOL: set http
  • SERVER_NAME: set localhost

Finally change BASE_URL in .env file to http://localhost:30000

Branding

RapidMiner Go frontend applications can be customized to use OEM branding. Starting with version 2.4.1, the following customizable properties are supported:

  1. RapidMiner Automodeler

    • app header color
    • logo
    • favicon
    • application name: change "Go" to a preferred app name everywhere
    • Profile menu: hide completely or customize the menu items
    • Help menu: hide completely or customize menu items
  2. RapidMiner Identity (RMID)

    • app header color
    • logo
    • favicon
    • application name

Steps to customize the application:

  1. Make sure the branding profile is enabled in docker-compose-services.yml:

    • Automodeler: SPRING_PROFILES_ACTIVE: on-prem,db-postgresql,branding
    • RMID: SPRING_PROFILES_ACTIVE: on-prem,db-postgresql,is-db,branding
  2. Edit the images and the application-branding.yml files inside branding/am and branding/rmid.

    • application-branding.yml defines colors, menu items and app name
    • images folder contains logo and favicon assets
      • logo dimensions should be 700 x 100
      • favicon should have at least the 16 x 16 pixel variant
  3. Run docker-compose -f docker-compose-services.yml up -d again.

To disable branding remove the branding profile from SPRING_PROFILES_ACTIVE - application will display the default RapidMiner branding.

Important: Keep the file, folder and image namings.

Upgrade

Upgrading to RapidMiner Go 2.5.7 requires a post-installation step.

First install:

  • install RapidMiner Go 2.5.7 by running the docker-compose scripts
  • when the system is running, log in as the predefined admin user

    • if you don't want to use the admin user -- you can perform this with any user having am:admin privilege
    • you can assign this privilege to a user in the RMID admin console accessible at /rmid/auth/login/admin - see RMID docs for details

Then upgrade:

  • call the upgrade endpoint via the browser where you are logged in:

      {BASE_URL}/am/api/data/update-all-data
    
  • check the rapidminer-automodeler service logs. When the upgrade is done they should contain an entry of this form:

      c.rapidminer.cookie.service.DataService  : Finished updating all dataEntities