# Installation Requirements

Docker image version 1.0.2
Date: December 2022

We assume Docker is installed on your system. If not install it first: Developers - Docker (opens new window) .

# Download and run with Docker

The following terminal command will download and run the layline.io docker container:

docker run -p 5841:5841 -p 5842:5842 docker.io/layline/layline-samples:1.0.2

Parameters:

  • Mapping internal Config Server port to external: 5841 --> 5841
  • Mapping internal Reactive Engine port to external: 5842 --> 5842
  • Path to layline.io docker container: docker.io/layline/layline-samples:1.0.2

Should the external ports already be in use on your installation target, then change them to an open port to your end.

# EXAMPLE for Version 1.0.0:
| => docker run -p 5841:5841 -p 5842:5842 docker.io/layline/layline-samples:1.0.0
Unable to find image 'layline/layline-samples:0.9.3-SNAPSHOT' locally
1.0.0: Pulling from layline/layline-samples
7783ecb52c24: Pull complete
49059e88484f: Pull complete
bf8e3aac0151: Pull complete

...

c4cc113ea44d: Pull complete
Digest: sha256:b40c29d47dd96bbc95824909b446b1922dc4c611115114e5ad65fa752ef3fd65
Status: Downloaded newer image for layline/layline-samples:1.0.0

...
# Container automatically starts ...
22-05-05 14:45:10.116 INFO  Layline                                            - [LAY-00050] ###################################################################
22-05-05 14:45:10.122 INFO  Layline                                            - [LAY-00050] #   Layline Reactive Engine 0.9.3-SNAPSHOT (2022-05-03 14:26:00)  #
22-05-05 14:45:10.122 INFO  Layline                                            - [LAY-00050] #                                                                 #
22-05-05 14:45:10.122 INFO  Layline                                            - [LAY-00050] #  Copyright (C) 2018-2021  layline.io GmbH <https://layline.io>  #
22-05-05 14:45:10.122 INFO  Layline                                            - [LAY-00050] ###################################################################
22-05-05 14:45:13.197 INFO  ConfigServer                                       - [LAY-00050] ###################################################################
22-05-05 14:45:13.201 INFO  ConfigServer                                       - [LAY-00050] #    Layline Config Server 0.9.3-SNAPSHOT (2022-05-03 14:26:00)   #
22-05-05 14:45:13.202 INFO  ConfigServer                                       - [LAY-00050] #                                                                 #
22-05-05 14:45:13.203 INFO  ConfigServer                                       - [LAY-00050] #  Copyright (C) 2018-2021  layline.io GmbH <https://layline.io>  #
22-05-05 14:45:13.203 INFO  ConfigServer                                       - [LAY-00050] ###################################################################
22-05-05 14:45:17.757 INFO  ConfigServer.SecurityStorage                       - [LAY-12200] starting the security storage
22-05-05 14:45:17.987 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 's3' ('io.layline.config.plugin.common.s3.PluginFactory')
22-05-05 14:45:18.004 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 'ftp' ('io.layline.config.plugin.common.ftp.FtpPluginFactory')
22-05-05 14:45:18.007 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 'kafka' ('io.layline.config.plugin.common.kafka.KafkaPluginFactory')
22-05-05 14:45:18.012 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 'processor_mapping' ('io.layline.config.plugin.processor.mapping.PluginFactory')
22-05-05 14:45:18.033 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 'format_generic' ('io.layline.config.plugin.format.generic.PluginFactory')
22-05-05 14:45:18.058 INFO  ConfigServer                                       - [LAY-10016] starting the configuration server root actor
22-05-05 14:45:18.107 INFO  ConfigServer.Plugins                               - [LAY-10014] successfully registered plugin 'format_asn1' ('io.layline.config.plugin.format.asn1.PluginFactory')
22-05-05 14:45:18.355 INFO  ConfigServer.UserStorage                           - [LAY-12303] recovery of the user storage completed (0 user(s) loaded)

...

22-05-05 14:45:20.920 INFO  ConfigServer.SecurityStorage                       - [LAY-12214] creating new RSA key 'DefaultKey' for user admin (fingerprint=ilUEKcOzCRC4TvmiZF88YkZQ8ztit/CwPujP6ii+6p8=)
22-05-05 14:45:20.973 INFO  Layline.StreamMonitor                              - [LAY-11410] recovery of the stream monitor completed
22-05-05 14:45:20.975 INFO  Layline.DeploymentStorage.Objects                  - [LAY-11505] recovery of the object database completed
22-05-05 14:45:20.977 INFO  Layline.DeploymentStorage.Deployments              - [LAY-11510] recovery of the deployment database completed
22-05-05 14:45:21.031 INFO  ConfigServer.SecurityStorage                       - [LAY-12212] successfully created the cluster's default RSA key
22-05-05 14:45:21.034 INFO  Layline                                            - [LAY-11009] all system components are up and running

That's it! You're all set.

# Configiration Center Web UI

# Open Configuration Center

It's time to check if we can start the web-based Configuration Center.

Please note:

The web-based Configuration Center is served by the Configuration Server. Because the Docker image starts everything automatically, the Configuration Server should already be running.

    You should be taken to the login page:

    Log in to Configuration Server (Quickstart)

    The default login is admin with password admin. Once logged in, you should see this:

    Logged in to Configuration Server (Quickstart)

    # Operations Center

    Let's check the status of the Reactive Engine which auto-runs as part of the Docker image. We can do so in the Operations section of the UI (1):

    Operations of Reactive Cluster in Docker Image (Quickstart)

    Depending on whether your host system is MacOS/Linux or Windows, pick the respectively named Cluster from the drop down menu (2).

    You are currently logged in to the Configuration Server only. To monitor the Reactive Cluster you also need to separately log in to it (3). The credentials for the Cluster are user "admin" and password "admin".

    Running on Windows and unable to log in?

    If the IP-address of your docker image does on Windows does not default to 192.168.100.199, you are uneble to log in to the Reactive Cluster. In this case you need to change the pre-configured IP-address to the actual IP-address of you docker image. Follow these simple steps:

    1. Head to Settings (1)
    2. Select the Docker-Cluster-Windows in the left pane (2)
    3. Change the IP-address to the one of your Docker container instance (3). Make sure that you leave the port as 5842. If you remove it, it's not going to work.

    Change Cluster Settings (Quickstart)

    Important

    The settings will not persist if you shut down the docker container. You have the repeat change of the IP-address in that case.

    Check that the Reactive Cluster is up and running:

    1. Make sure you are logged in to the Reactive Cluster (1).
    2. Head to Operations --> Cluster (2).
    3. All items on the left pane should be green (3).
    4. Select the one node in the Cluster at the bottom of the left pane. This sample Cluster runsn with only one Reactive Engine node.
    5. On the right pane check the node status (4). It should show "Up".

    Log in to Reactive Cluster (Quickstart)

    If the above is true, your docker container is in good shape.

    # Sample Projects

    The Docker container of layline.io comes with pre-installed sample Projects.

    Click on Project --> Open:

    Open Project Dialog

    Select any of the Projects (list is probably longer by the time you download layline.io) and open it.

    # Explore the container

    Let us show you a few things inside the container.

    # Log in to the container

    # Find container name/id
    > docker container ls
    CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS          PORTS                              NAMES
    2b1846d34a28   layline/layline-samples:0.9.3-SNAPSHOT   "/opt/layline/bin/st…"   22 minutes ago   Up 22 minutes   0.0.0.0:5841-5842->5841-5842/tcp   priceless_zhukovsky
    
    # Execute bash shell on container
    > docker exec -it 2b1846d34a28 /bin/bash
    layline@2b1846d34a28:/opt$
    

    # Directory structure

    The docker image comes with a number of pre-conconfigured directories. Let us take a look at them:

    /opt/layline/ Directory:

    /opt/layline/
    |-- bin # Binaries of layline.io
    |   |-- ConfigServer                  # Configuration Server with interface
    |   |-- ConfigServer.vmoptions        # Virtual machine options for ConfigServer
    |   |-- ReactiveEngine                # Reactive Engine with interface
    |   |-- ReactiveEngine.vmoptions      # Virtual machine options for ReactiveEngine
    |   |-- config-server                 # Configuration Server command line
    |   |-- config-server.vmoptions       # Virtual machine options for config-server
    |   |-- layctl                        # CLI for layline.io
    |   |-- layctl.vmoptions              # Virtual machine options for layctl
    |   |-- reactive-engine               # Reactive Engine command line
    |   |-- reactive-engine.vmoptions     # Virtual machine options for reactive-engine
    |   `-- start-config-and-engine.sh    # Shell script to start both Config Server and Reactive Engine
    |-- config                            # Runtime configurations directory
    |   |-- config-server
    |   |   `-- application.conf          # Runtime configuration for Configuration Server
    |   `-- reactive-engine
    |       `-- application.conf          # Runtime configuration for Reactive Engine
    |-- jre                               # Java runtime files
    |   |-- ...
    |-- lib                               # layline.io Java libraries
    |   |-- ...
    |-- samples
    |-- templates                         # Configuration templates
    |   |-- config-server                 # Templates for Configuration Server
    |   |   |-- application.conf
    |   |   `-- log4j2.xml
    |   |-- layctl                        # Templates for layctl
    |   |   |-- application.conf
    |   |   |-- clusters
    |   |   |   `-- local.json
    |   |   `-- config-servers
    |   |       `-- local.json
    |   `-- reactive-engine               # Templates for Reactive Engine
    |       |-- application.conf
    |       `-- log4j2.xml
    `|-  
    

    /home/layline/ Directory:

    /home/layline/
    |-- layline-data                  # Data directory configured in Sample Projects              
    |   |-- done                      # Output for files which are done processing
    |   |-- error                     # Output for files which caused processing errors
    |   |-- in                        # Input directory for files to be processed
    |   `-- out                       # Output of files created by Projects
    |-- layline-projects              # Sample projects
    |   |-- sample-file-copy
    |   |   |-- ...
    |   `-- sample-kafka
    |       |-- ...
    `-- sample-data                   # Example files for processing in sample Projects.
        |-- bank-transactions         # Check documentation for each Project, if any.
        |   |-- 100-BT-Records.csv
        |   `-- 2-BT-Records.csv
        `-- sample-data-key
            `-- sample-data-key
    
    

    Can't find what you are looking for?

    Please note, that the creation of the online documentation is Work-In-Progress. It is constantly being updated. Should you have questions or suggestions, please don't hesitate to contact us at support@layline.io.

    Last Updated: 7/4/2022, 11:28:12 AM