Installation Guide

Ensure preconditions (database, Docker, etc.)

Check whether the prerequisites specified in Before installation have been met .

Adjust Oracle configuration

If you are using an Oracle database in the context of OMN, you must adapt the parameter job_queue_processes (< = 10) according to the Oracle version / hardware.

Subscribe to official Red Hat channels

The following Red Hat channels must be subscribed to:

  • rhel-9-server-rpms

  • rhel-9-server-optional-rpms

Additional packages

The packages that cannot be loaded through the official Red Hat channels can be requested from apollon GmbH + Co. KG.

Include additional hard drives

Depending on the system structure and the desired dimensioning, the following additional hard disks must be integrated if you are not using HELIOS:

OMN WEB (web)

  • /usr/local/omn

  • /omn/previews

    • Recommended size: 10% of the expected data

    • User and group for the directory: Tomcat

  • /omn/tmp

    • Recommended size: three times the size of the data processed by OMN

    • User and group for the directory: Tomcat

OMN APP (app) / OMN WORKER (wrk)

Installation of OMN

It is not recommended to install the OMN-RPM with "skip dependencies" or similar options, as this can lead to undesired behavior of the software.

Necessary dependencies

  • Java 2 Runtime Environment

  • OpenLDAP

  • SWFTools

  • ImageMagick

  • Ghostscript

  • MediaInfo

  • FFMpeg

  • ExifTools

  • Apache Daemon - JSVC

  • Pdf2Svg

  • LibreOffice

  • DTSXMP

  • Red5 Media Server

  • OpenOffice

OMN Components

In addition to OMN, the following components can be installed. The components are available either as an RPM or as a Docker image. The installation of the following components are included in this guide:

Included Components Not Included Components

OMN (RPM)
CC5 API (RPM)
OMN API (RPM)
OMN EAI (RPM)

OMN Dashboard (RPM)
OMN Versioning (RPM)
OMN Search (RPM & Docker)
OMN UI (Docker)
WFL-Component (Docker)
WFL Extensions (Docker)
DTSXMP (RPM)

CMIS-Server
(CMIS-Client)
OMN XActuell
(OMN Page Preview Plugins)

Description of the RPMs

Example: omn-5.5.5-17135.el7.noarch.rpm

Part of the RPM identifier meaning

omn-5.3.0

OMN version

14244

OMN Build Version

el7

Red Hat Enterprise Linux version 7

noarch

Indicates that this is an architecture-independent version acts (32/64 bit).

Install RPM

  • You need a user with sudo privileges

  • Connect to the target system (SSH) via the terminal

  • Deploy the OMN RPM on the system

  • Install OMN components (RPMs)

    yum install omn
    yum install omn-cc5-api
    yum install omn-api
    yum install omn-eai
    yum install omn-versioning
    yum install omn-search-plugin
    yum install omn-dashboard-plugin
     # Alternatively:
    yum install omn omn-cc5-api omn-api omn-eai omn-versioning omn-search-plugin omn-dashboard-plugin

Install DTSXMP

  • The DTSXMP RPM is not available in apollon Spacewalk. You can download the RPM here: dtsxmp-3.1.1-15.el9.x86_64.rpm

  • Copy the RPM to the target system

    scp dtsxmp-3.1.1-15.el9.x86_66.rpm root@target-system.pd.apollon.de:/root/
  • Establish a connection to the target system

    ssh root@target-system.pd.apollon.de
  • Install the DTSXMP RPM

    cd /root
    yum install dtsxmp-3.1.1-15.el9.x86_64.rpm

Installation of the reverse proxy (optional)

A reverse proxy (NGINX) is not absolutely necessary for OMN5 and therefore optional.

It is used to accept the connection to the OMN5 URL or the NGINX on the OMN web server. This can also be done, for example, by an alternative reverse proxy or a load balancer that is configured accordingly. This must enable forwarding to the nHTML5 container.

You only have to be able to accept the connection to the OMN5 URL or the NGINX on the OMN web server. This can be, for example, via a reverse proxy or a load balancer at the customer’s with corresponding forwarding to the HTML5 container.

Example configuration of an NGINX reverse proxy:

  1. Connect to the appropriate host via ssh

  2. cd into the directory

    /data/nginx/etc/nginx/sites-enabled/
  3. Create a new file such as html5-test11 with the following configuration

    server {
        Listen 443 ssl http2;
    
        Server_name html5-test123.pd.apollon.de; # change to your url
        Server_tokens off;
    
        Access_log /var/log/nginx/html5-test123_access.log; # change to your server
        Error_log /var/log/nginx/html5-test123_error.log; # change to your server
    
        Location {
            Proxy_pass https://test-123.pd.apollon.de:443/; # change to your server
        }
    }
  4. Check if the NGINX configuration is OK:

    docker exec nginx nginx -t
  5. If the configuration is ok, reload NGINX:

    docker exec nginx service nginx reload

Access to Docker Images

Some OMN and 3rd party components are deployed as Docker images that are available in corresponding Docker Registries. Before you continue with OMN installation process you should ensure that you…​

  • understand Docker

  • have access to Docker Images

Docker

Docker images are templates for creating a Docker containers. A Docker container is a running instance of a Docker image and a loosely isolated environment that "contains" application(s). Docker images are stored in Docker Registries.

For more details check Docker overview

How to get OMN Docker Images…​

as external Administrator/Developer

For the provision of all necessary Docker containers, we will set up a user on our Nexus (ext. Dockerhub) who has access to the required containers. Please contact us.

Registration with user and password at hub.apollon.de

as internal (apollon) Administrator/Developer

Installation of the OMN GUI

OMN GUI (HTML5) is installed via Docker on the OMN-WEB host.

Configure

  1. Install Docker Compose (or let DevOps install it) if not yet done

  2. Create directory

    /etc/docker-compose/omn-ui
  3. Create directory

    /etc/docker-compose/omn-ui/configfiles
  4. Create file

    /etc/docker-compose/omn-ui/configfiles/omn-ui-settings.conf
    resolver         DNS_SERVICE_IP; # IP of the DNS Service. Can be found in /etc/resolv.conf e.g. 127.0.0.11 if running locally
    
    set $omnsrv     IP; # Host IP e.g 172.16.16.9
    set $omnmand    MANDATOR; # OMN Mandator
    server_name     HTML5 DNS NAME; # e.g html5-test11.pd.apollon.de
  5. Create file

    /etc/docker-compose/omn-ui/docker-compose.yml
    version: '3'
    services:
      omn-ui:
        image: hub.apollon.de/omn/ui:5.6.0
        container_name: omn-ui
        restart: always
        ports:
          - "0.0.0.0:80:80"
          - "0.0.0.0:443:443"
        volumes:
          - ./configfiles/omn-ui-settings.conf:/etc/nginx/conf.d/omn-ui/omn-ui-settings.conf
          -/omn/previews:/omn/previews:ro
          - /etc/docker-compose/omn/configfiles/omn-ui/fullchain.pem:/etc/nginx/conf.d/ssl.crt
          - /etc/docker-compose/omn/configfiles/omn-ui/privkey.pem:/etc/nginx/conf.d/ssl.key
  6. Execute the following command:

    docker-compose up -d

Available UI Docker Images

OMN UI Docker Images are available for

OMN Search consists of several components:

  • OMN Search Plug-in (RPM)

  • ElasticSearch (Docker Image, cf. www.elastic.co/)

    • Cerebro (optional)

    • Kibana (optional)

The OMN Search Plug-In should already be installed (cp. Install RPMs). Now the Docker image with the Elastic components has to be installed.

For the provision of all necessary Docker containers, we will set up a user on our Nexus (ext. Dockerhub) who has access to the required containers. Please contact to us.

  1. Registration with user and password at hub.apollon.de

  2. Create the file

    /etc/docker-compose/elastic/docker-compose.yml
    version: '3'
    services:
        elasticsearch:
            image::en@ hub.apollon.de/product/docker/elasticsearch:7.2.1
            ports:
                - 9200:9200
                - 9300:9300
            volumes:
                - omn-elastic:/usr/share/elasticsearch/data
            environment:
                - node.name=es01
                - cluster.name=omn-search
                - cluster.initial_master_nodes=es01
                - bootstrap.memory_lock=true
                - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
            ulimits:
                memlock:
                    soft: -1
                    hard: -1
            healthcheck:
                test: curl -s http://localhost:9200 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
                interval: 30s
                timeout: 10s
                retries: 5
        cerebro:
            image::en@ lmenezes/cerebro:0.8.4
            ports:
                - 9100:9000
            healthcheck:
                test: curl -s http://localhost:9000 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
                interval: 30s
                timeout: 10s
                retries: 5
        kibana:
            image::en@ docker.elastic.co/kibana/kibana:7.2.0
            ports:
                - 5601:5601
            healthcheck:
                test: curl -s http://localhost:5601 >/dev/null; if [[ $$? == 52 ]]; then echo 0; else echo 1; fi
                interval: 30s
                timeout: 10s
                retries: 5
    volumes:
        omn-elastic:
  3. Set parameter vm.max_map_count to at least 262144

    • Command for a live system:

      sysctl -w vm.max_map_count = 262144
  4. Add properties:

Properties file Key=Value

omn_auth.properties

es.mandator = MandatorIdentifier

es.hosts = localhost: 9200

# --- optional ---

es.shards = 1

es.replicas = 0

es.fields-limit = 4000

es.sniffer.enabled = false

es.update.batch-size = 100

es.update.workers = 1

es.mandator = DefaultMandator

es.time-zone = Europe / Berlin

es.init.force-reindex = false

es.search.maxTrackTotalHits = 100000

es.suggest.count.max = 20

es.suggest.count.default = 10

es.suggest.minTextLength = 3

es.doc-builder.workers = 4

es.doc-builder.asset.batch-size = 500

es.doc-builder.channel.batch-size = 250

es.doc-builder.product.batch-size = 250

es.index.allow.rebuild = true

es.index.allow.update = true

omn_eai.properties

omn.eai.common.mandatorName = MandatorIdentifier

omn.eai.common.environment = CustomerENV

omn.eai.exporter.cm.exportAllowedFunctions = true

jwt_filter.properties

api.secrets = {api: 'Heureka10', frontend: 'c04a3977-d082-4178-b5d8-00e8caeb0fff'}

jwt.expire.max = 72000000

omn_api.properties

api.secrets = {api: 'Heureka10', frontend: 'c04a3977-d082-4178-b5d8-00e8caeb0fff'}

  • Start the docker-compose:

    docker-compose up -d

Installation of the database driver

Install the Oracle or Microsoft SQL JDBC jars by using these Save under / usr / local / omn / codebase / jdbc-driver /.

And change the rights to the Tomcat user.

Installation of the Samba server

A Samba server must be installed on the web system (OMN WEB) and configured, which the directories omn / previews and omn / temp enables (see step 3). This is only necessary if not all components are installed on one host.

Including the shares

On the APP and WORKER system, the steps in the previous step set up releases can be integrated via the CIFS protocol. The Shares must be attached to the systems via the Tomcat user become. We recommend the same path structure as on the WEB system to take over.

Installation of the LDAP server

Install an OpenLDAP service on the WEB system, which the Can manage users of the OMN.

  • To do this, create an object of the Country type on the OpenLDAP and create an object of the type organziationName in it.

  • Then create two objects of the type organizationalUnits.

    • An OU “groups” and

    • an OU "users".

  • Create two Common Names type objects:

    • "manager-gui" and

    • "monitoring" in the object groups.

  • Create a domain and in it a "binduser" type object organizationalUnit.

  • In the "binduser" OU a person has to "jndirealm" with a password to be created.

  • Change the rootpw in your OpenLDAP configuration file and add Later in the omn_auth (see step “Basic settings of the OMN Systems ") configuration file.

Welcome to the AI Chat!

Write a prompt to get started...