Skip to content

Standalone Apps

The Edge App format provides multiple items for bundling, namely the following:

  • App Metadata: Information regarding the app itself, its owner and general information.
  • App Version: Information regarding the Docker-compose file to use, the Docker image as well as settings for exposing the app.
  • App Configuration: Information regarding which configuration type and configuration to use within the app.

Quick Start Guide

Docker and Docker-compose

The IE App Publisher relies on Docker and Docker-compose to package your developed apps as Industrial Edge Apps.

The Docker-compose version supported by Industrial Edge is v2.4 or lower.

Create Workspace

When using the IE App Publisher, a valid workspace is required. Within this workspace, the IE App Publisher stores additional metadata, such as the app ID, of built apps.

To run commands related to standalone apps, you must first add the IE App Publisher configuration by using the following command:

$ iectl config add publisher  \
         --name "publisherdev"  \                       # unique name for the confguration
         --workspace "/home/WS" \                       # path to for the workspace, used to store app related metadata 
         --dockerurl "http://127.0.0.1:2375" \          # your docker engine url, used for saving the image refrenced in the docker compose yaml

You create a workspace by running the following command within an empty folder:

iectl publisher workspace init

Alternatively, you can also set the IE_WORKSPACE environment variable to a valid workspace:

export IE_WORKSPACE="/path/to/valid/workspace"

Create App

The first step to create an app is to start with creating an app which contains the App Metadata information.

You create an app with the following command:

$ iectl publisher standalone-app create \
            --appname "my cool app" \
            --reponame "mycompany" \                # This relates to the repository name of the docker image.
            --appdescription "my cool app"  \
            --iconpath "/path/to/my/icon" \
            --webAddress "www.test.com" \           # Web address for application. [Optional]
            --signUpType "SignUpWithoutCode" \      # signUpType: ["SignUpWithCodeOnly", "SignUpWithOrWithoutCode", "NoSignUp", "SignUpWithoutCode", "None"] [Optional]                 
            --externalUrl "www.siemens.com" \       # This URL will be used by IEM app UI to open, application iframe embedded in IEM. [Optional]

The app is afterwards available within your local workspace as well as all generated metadata (i.e. the app ID).

Create App Version

The App Version consists of all information related to the Docker image as well as the Docker-compose file of your app. Also, it defines the app version.

You create an app version with the following command:

$ iectl publisher standalone-app version create \
            --appname "my cool app" \                                   #  You have to select a previously created application available within your workspace
            --changelogs "initial release" \
            --yamlpath "/path/to/folder/with/docker-compose.yaml" \     #  path to your docker compose yaml file
            --versionnumber "1.0.0" \                                   #  This version must be conformant to the semantic versioning specification
            --redirectsection "my service" \                            #  This requires the service name within docker-compose which contains the container that shall be exposed
            --redirecttype "FromBoxSpecificPort" \                      # redirecttype: Either FromBoxSpecificPort for direct port exposure or FromBoxReverseProxy for reverse proxy exposure
            --redirecturl "8080" \                                      # redirecturl: The port which shall be exposed from your container
            --restredirecturl "" \                                      # restredirecturl: This path will be used upon redirect to your application

With the provided settings, port 8080 of the "my service" service will be exposed. The port will be exposed directly, either with HTTP or HTTPS depending on your app.

This will lead to the following exposed URL: http or https://{industrial-edge-device-ip}:{random port}

NOTICE

If your application does not have any interface then use these redirect type.

    --redirectsection "" \
    --redirecttype "ExternalLink" \
    --redirecturl "" \

Export App

Exporting an app finally creates the app package with all necessary information including deployment options. Instead of using the app, an explicit app version will be used.

You can export the app version with the following command:

$ iectl publisher standalone-app version export \   
        --appname "my cool app" \   
        --exportpath /path/for/app/file \   
        --versionnumber "1.0.0" \