Add documentation pages for env variables and UI customization (#134)

diff --git a/docs/05_deploy-choosing-the-right-flavor.md b/docs/05_deploy-choosing-the-right-flavor.md
new file mode 100644
index 0000000..a140bf4
--- /dev/null
+++ b/docs/05_deploy-choosing-the-right-flavor.md
@@ -0,0 +1,47 @@
+---
+id: choosing-the-right-flavor
+title: Choosing the right flavor
+sidebar_label: Service selection options
+---
+
+
+## Introduction
+
+StreamPipes comes with many different options to customize a deployment. This section introduces the various options you can choose from when installing StreamPipes.
+
+You can choose between various **deployment modes**, choose from two different core packages and several extension packages, wich are described below.
+
+## Deployment Mode
+
+For the deployment model, you choose between a standard multi-container `Docker-Compose` installation and the `Kubernetes` installation.
+we provide several `Docker-Compose` files for the various options shown here and a `helm chart`. 
+See [Docker Deployment](05_deploy-docker.md) and [Kubernetes Deployment](05_deploy-kubernetes.md) for more details.
+
+### Running StreamPipes in a non-containerized environment
+
+Of course, it is also possible to launch StreamPipes in a non-containerized environment. 
+You will need to build your own executable binaries by running `mvn package`.
+In addition, it is required to install the required 3rd party services (see [Architecture](07_technicals-architecture.md)) and configure the environment variables as described in [Environment Variables](05_deploy-environment-variables.md).
+
+## Core Service
+
+We provide two different pre-packaged versions of core services. The default `streampipes-service-core` is a packaged JAR file which includes client libraries for the various messaging systems StreamPipes supports at the cost of a larger file size.
+In case you plan to run StreamPipes on less resource-intensive hardware, we recommend to switch to the `streampipes-service-core-minimal` package, which only includes support for MQTT and NATS, but has a smaller file size and slightly improved startup performance.
+
+## Extension Services
+
+Similar to the core, we provide several pre-packaged extension services which differ mainly by their file size, number of supported adapters and pipeline elements and messaging systems.
+
+The following packages exist:
+
+* `streampipes-extensions-all-jvm` is the largest package and includes all official StreamPipes adapters and pipeline elements. It also includes support for all messaging systems Streampipes currently supports.
+* `streampipes-extensions-all-iiot` is a subset of the aforementioned package and excludes adapters and pipeline elements which are often not relevant for IIoT use cases. For instance, the package excludes text mining-related pipeline elements.
+* `streampipes-extensions-iiot-minimal` is a subset of the aforementioned package and includes only support for the lightweight messaging systems MQTT and NATS.
+
+Generally said, in cases where you plan to deploy StreamPipes on a resource-limited edge device, we recommend a combination of the `streampipes-service-core-minimal` and `streampipes-extensions-iiot-minimal` package. This could, for instance, be a device with less than 4GB memory.
+In other cases, it depends on the use case and if you need all adapters and pipeline elements or are ok with the IIoT-related extensions.
+
+## Messaging System
+
+StreamPipes can be configured to use different messaging systems for exchanging events between adapters and pipeline elements.
+The section [Messaging](07_technicals-messaging.md) includes detailed information on the configuration of messaging systems. 
diff --git a/docs/05_deploy-environment-variables.md b/docs/05_deploy-environment-variables.md
index 26b925f..c4066fb 100644
--- a/docs/05_deploy-environment-variables.md
+++ b/docs/05_deploy-environment-variables.md
@@ -1,5 +1,88 @@
 ---
-
+id: deploy-environment-variables
+title: Environment Variables
+sidebar_label: Environment Variables
 ---
 
----
\ No newline at end of file
+## Introduction
+
+A StreamPipes installation can be configured in many ways by providing environment variables.
+The following lists describe available environment variables along with a description.
+
+## StreamPipes Core Service
+
+### Internal
+
+| Env Variable Name              | Default Value                                           | Description                                                                                                                      |
+|--------------------------------|---------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
+| SP_DEBUG                       | false                                                   | Should only be set for local development to reroute traffic to localhost                                                         |
+| SP_INITIAL_ADMIN_EMAIL         | admin@streampipes.apache.org                            | Installation-time variable for defining the default user name                                                                    |
+| SP_INITIAL_ADMIN_PASSWORD      | admin                                                   | Installation-time variable for defining the default user password                                                                |
+| SP_INITIAL_SERVICE_USER        | sp-service-client                                       | Installation-time variable for defining the initial service user (must be same to the configured user in the extension service)  |
+| SP_INITIAL_SERVICE_USER_SECRET | my-apache-streampipes-secret-key-change-me              | Installation-time variable for defining the initial service secret (minimum 35 chars)                                            |
+| SP_JWT_SECRET                  | Empty for Docker, Auto-generated for K8s                | JWT secret, base64-encoded, minimum 256 bits                                                                                     |
+| SP_JWT_SIGNING_MODE            | HMAC                                                    | HMAC or RSA, RSA can be used to authenticate Core-Extensions communication                                                       |
+| SP_JWT_PRIVATE_KEY_LOC         | Empty                                                   | Required id SP_JWT_SIGNING_MODE=RSA, path to the private key, can be generated in the UI (Settings->Security->Generate Key Pair) |
+| SP_ENCRYPTION_PASSCODE         | eGgemyGBoILAu3xckolp for Docker, Auto-generated for K8s | Encryption passcode for `SecretStaticProperties`                                                                                 |
+| SP_PRIORITIZED_PROTOCOL        | kafka                                                   | Messaging layer for data exchange between extensions                                                                             |
+
+
+### Third-party services
+
+| Env Variable Name      | Default Value | Description                                                               |
+|------------------------|---------------|---------------------------------------------------------------------------|
+| SP_COUCHDB_HOST        | couchdb       | The hostname or IP of the CouchDB database                                |
+| SP_COUCHDB_PROTOCOL    | http          | The protocol (http or https) of the CouchDB database                      |
+| SP_COUCHDB_PORT        | 5984          | The port of the CouchDB database                                          |
+| SP_COUCHDB_USER        | admin         | The user of the CouchDB database (must have permissions to add databases) |
+| SP_COUCHDB_PASSWORD    | admin         | The password of the CouchDB user                                          |
+| SP_TS_STORAGE_HOST     | influxdb      | The hostname of the timeseries storage (currently InfluxDB)               |
+| SP_TS_STORAGE_PORT     | 8086          | The port of the timeseries storage                                        |
+| SP_TS_STORAGE_PROTOCOL | http          | The protocol of the timeseries storage (http or https)                    |
+| SP_TS_STORAGE_BUCKET   | sp            | The InfluxDB storage bucket name                                          |
+| SP_TS_STORAGE_ORG      | sp            | The InfluxDB storage org                                                  |
+| SP_TS_STORAGE_TOKEN    | sp-admin      | The InfluxDB storage token                                                |
+
+The InfluxDB itself can be configured by providing the variables `DOCKER_INFLUXDB_INIT_PASSWORD` and `DOCKER_INFLUXDB_INIT_ADMIN_TOKEN`. See the `docker-compose` file for details.
+
+## StreamPipes Extensions Service
+
+### Internal
+
+| Env Variable Name              | Default Value                              | Description                                                                                                        |
+|--------------------------------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
+| SP_CLIENT_USER                 | Empty                                      | Service account for communication with Core                                                                        |
+| SP_CLIENT_SECRET               | Empty                                      | Service secret for communication with Core                                                                         |
+| SP_EXT_AUTH_MODE               | sp-service-client                          | When set to AUTH: all interfaces are only accessible with authentication (requires SP_JET_PRIVATE_KEY_LOC in Core) |
+| SP_JWT_PUBLIC_KEY_LOC          | my-apache-streampipes-secret-key-change-me | Path to the public key of the corresponding SP_JWT_PRIVATE_KEY defined in Core                                     |
+
+### Third-party services
+
+The following variables are only required for extensions which require access to the internal time-series storage (the `Data Lake Sink`).
+
+| Env Variable Name      | Default Value | Description                                                               |
+|------------------------|---------------|---------------------------------------------------------------------------|
+| SP_TS_STORAGE_HOST     | influxdb      | The hostname of the timeseries storage (currently InfluxDB)               |
+| SP_TS_STORAGE_PORT     | 8086          | The port of the timeseries storage                                        |
+| SP_TS_STORAGE_PROTOCOL | http          | The protocol of the timeseries storage (http or https)                    |
+| SP_TS_STORAGE_BUCKET   | sp            | The InfluxDB storage bucket name                                          |
+| SP_TS_STORAGE_ORG      | sp            | The InfluxDB storage org                                                  |
+| SP_TS_STORAGE_TOKEN    | sp-admin      | The InfluxDB storage token                                                |
+
+
+## Recommended variables
+
+For a standard deployment, it is recommended to customize the following variables:
+
+*	Initiales Admin-Passwort (SP_INITIAL_ADMIN_PASSWORD, Core)
+*	Initiales Client Secret (SP_INITIAL_SERVICE_USER_SECRET, Core)
+*	Client Secret Extensions (SP_CLIENT_USER, Extensions)
+*	Encryption Passcode (SP_ENCRYPTION_PASSCODE, Core)
+*	CouchDB-Password (SP_COUCHDB_PASSWORD, Core + Extensions + CouchDB)
+*	InfluxDB Storage Password (DOCKER_INFLUXDB_INIT_PASSWORD, InfluxDB)
+*	InfluxDB Storage Token (SP_TS_STORAGE_TOKEN (Core, Extensions)
+  * DOCKER_INFLUXDB_INIT_ADMIN_TOKEN (InfluxDB service)
+
+## Auto-generation of variables in K8s setups
+
+See the [Kubernetes Guide](05_deploy-kubernetes.md) for an overview of auto-generated variables.
diff --git a/docs/05_deploy-kubernetes.md b/docs/05_deploy-kubernetes.md
index 327a568..478e1a3 100644
--- a/docs/05_deploy-kubernetes.md
+++ b/docs/05_deploy-kubernetes.md
@@ -18,7 +18,7 @@
 ```
 After a while, all containers should successfully started, indicated by the `Running` status.
 
-The `values.yaml` file contains several configuration options to customize your StreamPipes installation. See the file for all configuration options.
+The `values.yaml` file contains several configuration options to customize your StreamPipes installation. See the section below for all configuration options.
 
 ## Ingress
 
@@ -28,6 +28,256 @@
 
 You can override the `storageClassName` variable to configure StreamPipes for dynamic volume provisioning.
 
+## Parameters
+
+Here is an overview of the supported parameters to configure StreamPipes.
+
+### Common parameters
+
+| Parameter Name                                   | Description                                             | Value                                   |
+|--------------------------------------------------|---------------------------------------------------------|-----------------------------------------|
+| deployment                                       | Deployment type (lite or full)                          | lite                                    |
+| preferredBroker                                  | Preferred broker for deployment                         | "nats"                                  |
+| monitoringSystem                                 | Enable monitoring system (true/false)                   | false                                   |
+| pullPolicy                                       | Image pull policy                                       | "Always"                                |
+| restartPolicy                                    | Restart policy for the container                        | Always                                  |
+| persistentVolumeReclaimPolicy                    | Reclaim policy for persistent volumes                   | "Delete"                                |
+| persistentVolumeAccessModes                      | Access mode for persistent volumes                      | "ReadWriteOnce"                         |
+| initialDelaySeconds                              | Initial delay for liveness and readiness probes         | 60                                      |
+| periodSeconds                                    | Interval between liveness and readiness probes          | 30                                      |
+| failureThreshold                                 | Number of consecutive failures for readiness probes     | 30                                      |
+| hostPath                                         | Host path for the application                           | ""                                      |
+
+### StreamPipes common parameters
+
+| Parameter Name                                  | Description                                             | Value                                    |
+|-------------------------------------------------|---------------------------------------------------------|------------------------------------------|
+| streampipes.version                             | StreamPipes version                                     | "0.93.0-SNAPSHOT"                        |
+| streampipes.registry                            | StreamPipes registry URL                                | "apachestreampipes"                      |
+| streampipes.auth.secretName                     | The secret name for storing secrets                     | "sp-secrets"                             |
+| streampipes.auth.users.admin.user               | The initial admin user                                  | "admin@streampipes.apache.org"           |
+| streampipes.auth.users.admin.password           | The initial admin password (leave empty for autogen)    | "admin"                                  |
+| streampipes.auth.users.service.user             | The initial service account user                        | "sp-service-client"                      |
+| streampipes.auth.users.service.secret           | The initial service account secret                      | empty (auto-generated)                   |
+| streampipes.auth.encryption.passcode            | Passcode for value encryption                           | empty (auto-generated)                   |
+| streampipes.core.appName                        | StreamPipes backend application name                    | "backend"                                |
+| streampipes.core.port                           | StreamPipes backend port                                | 8030                                     |
+| streampipes.core.persistence.storageClassName   | Storage class name for backend PVs                      | "hostpath"                               |
+| streampipes.core.persistence.storageSize        | Size of the backend PV                                  | "1Gi"                                    |
+| streampipes.core.persistence.claimName          | Name of the backend PersistentVolumeClaim               | "backend-pvc"                            |
+| streampipes.core.persistence.pvName             | Name of the backend PersistentVolume                    | "backend-pv"                             |
+| streampipes.core.service.name                   | Name of the backend service                             | "backend"                                |
+| streampipes.core.service.port                   | TargetPort of the StreamPipes backend service           | 8030                                     |
+| streampipes.ui.appName                          | StreamPipes UI application name                         | "ui"                                     |
+| streampipes.ui.resolverActive                   | Flag for enabling DNS resolver for Nginx proxy          | true                                     |
+| streampipes.ui.port                             | StreamPipes UI port                                     | 8088                                     |
+| streampipes.ui.resolver                         | DNS resolver for Nginx proxy                            | "kube-dns.kube-system.svc.cluster.local" |
+| streampipes.ui.service.name                     | Name of the UI service                                  | "ui"                                     |
+| streampipes.ui.service.type                     | Type of the UI service                                  | "ClusterIP"                              |
+| streampipes.ui.service.nodePort                 | Node port for the UI service                            | 8088                                     |
+| streampipes.ui.service.port                     | TargetPort of the StreamPipes UI service                | 8088                                     |
+| streampipes.ingress.active                      | Flag for enabling Ingress for StreamPipes               | false                                    |
+| streampipes.ingress.annotations                 | Annotations for Ingress                                 | {}                                       |
+| streampipes.ingress.host                        | Hostname for Ingress                                    | ""                                       |
+| streampipes.ingressroute.active                 | Flag for enabling IngressRoute for StreamPipes          | true                                     |
+| streampipes.ingressroute.annotations            | Annotations for IngressRoute                            | {}                                       |
+| streampipes.ingressroute.entryPoints            | Entry points for IngressRoute                           | ["web", "websecure"]                     |
+| streampipes.ingressroute.host                   | Hostname for IngressRoute                               | ""                                       |
+| streampipes.ingressroute.certResolverActive     | Flag for enabling certificate resolver for IngressRoute | true                                     |
+| streampipes.ingressroute.certResolver           | Certificate resolver for IngressRoute                   | ""                                       |
+
+
+### Extensions common parameters
+
+| Parameter Name                                  | Description                                             | Value                                    |
+|-------------------------------------------------|---------------------------------------------------------|------------------------------------------|
+| extensions.iiot.appName                         | IIoT extensions application name                        | extensions-all-iiot                      |
+| extensions.iiot.port                            | Port for the IIoT extensions application                | 8090                                     |
+| extensions.iiot.service.name                    | Name of the IIoT extensions service                     | extensions-all-iiot                      |
+| extensions.iiot.service.port                    | TargetPort of the IIoT extensions service               | 8090                                     |
+
+
+### External common parameters
+
+#### Consul common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.consul.appName                         | Consul application name                                  | "consul"                                 |
+| external.consul.version                         | Consul version                                           | 1.14.3                                   |
+| external.consul.webPort                         | Port number for the Consul web interface                 | 8500                                     |
+| external.consul.dnsPort                         | Port number for the Consul DNS interface                 | 8600                                     |
+| external.consul.persistence.storageClassName    | Storage class name for Consul PVs                        | "hostpath"                               |
+| external.consul.persistence.storageSize         | Size of the Consul PV                                    | "1Gi"                                    |
+| external.consul.persistence.claimName           | Name of the Consul PersistentVolumeClaim                 | "consul-pvc"                             |
+| external.consul.persistence.pvName              | Name of the Consul PersistentVolume                      | "consul-pv"                              |
+| external.consul.service.name                    | Name of the Consul service                               | "consul"                                 |
+| external.consul.service.webPort                 | TargetPort of the Consul service for web interface       | 8500                                     |
+| external.consul.service.dnsPort                 | TargetPort of the Consul service for DNS interface       | 8600                                     |
+
+#### Couchdb common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.couchdb.appName                        | CouchDB application name                                 | "couchdb"                                |
+| external.couchdb.version                        | CouchDB version                                          | 3.3.1                                    |
+| external.couchdb.user                           | CouchDB admin username                                   | "admin"                                  |
+| external.couchdb.password                       | CouchDB admin password                                   | empty (auto-generated)                   |
+| external.couchdb.port                           | Port for the CouchDB service                             | 5984                                     |
+| external.couchdb.service.name                   | Name of the CouchDB service                              | "couchdb"                                |
+| external.couchdb.service.port                   | TargetPort of the CouchDB service                        | 5984                                     |
+| external.couchdb.persistence.storageClassName   | Storage class name for CouchDB PVs                       | "hostpath"                               |
+| external.couchdb.persistence.storageSize        | Size of the CouchDB PV                                   | "1Gi"                                    |
+| external.couchdb.persistence.claimName          | Name of the CouchDB PersistentVolumeClaim                | "couchdb-pvc"                            |
+| external.couchdb.persistence.pvName             | Name of the CouchDB PersistentVolume                     | "couchdb-pv"                             |
+
+#### Influxdb common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.influxdb.appName                       | InfluxDB application name                                | "influxdb"                               |
+| external.influxdb.version                       | InfluxDB version                                         | 2.6                                      |
+| external.influxdb.username                      | InfluxDB admin username                                  | "admin"                                  |
+| external.influxdb.password                      | InfluxDB admin password                                  | empty (auto-generated)                   |
+| external.influxdb.adminToken                    | InfluxDB admin token                                     | empty (auto-generated)                   |
+| external.influxdb.initOrg                       | InfluxDB initial organization                            | "sp"                                     |
+| external.influxdb.initBucket                    | InfluxDB initial bucket                                  | "sp"                                     |
+| external.influxdb.initMode                      | InfluxDB initialization mode                             | "setup"                                  |
+| external.influxdb.apiPort                       | Port number for the InfluxDB service (API)               | 8083                                     |
+| external.influxdb.httpPort                      | Port number for the InfluxDB service (HTTP)              | 8086                                     |
+| external.influxdb.grpcPort                      | Port number for the InfluxDB service (gRPC)              | 8090                                     |
+| external.influxdb.service.name                  | Name of the InfluxDB service                             | "influxdb"                               |
+| external.influxdb.service.apiPort               | TargetPort of the InfluxDB service for API               | 8083                                     |
+| external.influxdb.service.httpPort              | TargetPort of the InfluxDB service for HTTP              | 8086                                     |
+| external.influxdb.service.grpcPort              | TargetPort of the InfluxDB service for gRPC              | 8090                                     |
+| external.influxdb.persistence.storageClassName  | Storage class name for InfluxDB PVs                      | "hostpath"                               |
+| external.influxdb.persistence.storageSize       | Size of the InfluxDB PV                                  | "1Gi"                                    |
+| external.influxdb.persistence.storageSizeV1     | Size of the InfluxDB PV for v1 databases                 | "1Gi"                                    |
+| external.influxdb.persistence.claimName         | Name of the InfluxDBv2 PersistentVolumeClaim             | "influxdb2-pvc"                          |
+| external.influxdb.persistence.claimNameV1       | Name of the InfluxDBv1 PersistentVolumeClaim             | "influxdb-pvc"                           |
+| external.influxdb.persistence.pvName            | Name of the InfluxDBv2 PersistentVolume                  | "influxdb2-pv"                           |
+| external.influxdb.persistence.pvNameV1          | Name of the InfluxDBv1 PersistentVolume                  | "influxdb-pv"                            |
+
+
+#### Nats common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.nats.appName                           | NATS application name                                    | "nats"                                   |
+| external.nats.port                              | Port for the NATS service                                | 4222                                     |
+| external.nats.version                           | NATS version                                             |                                          |
+| external.nats.service.type                      | Type of the NATS service                                 | "NodePort"                               |
+| external.nats.service.externalTrafficPolicy     | External traffic policy for the NATS service             | "Local"                                  |
+| external.nats.service.name                      | Name of the NATS service                                 | "nats"                                   |
+| external.nats.service.port                      | TargetPort of the NATS service                           | 4222                                     |
+
+
+#### Kafka common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.kafka.appName                          | Kafka application name                                   | "kafka"                                  |
+| external.kafka.version                          | Kafka version                                            | 2.2.0                                    |
+| external.kafka.port                             | Port for the Kafka service                               | 9092                                     |
+| external.kafka.external.hostname                | Name which will be advertised to external clients. Clients which use (default) port 9094       | "localhost"
+| external.kafka.service.name                     | Name of the Kafka service                                | "kafka"                                  |
+| external.kafka.service.port                     | TargetPort of the Kafka service                          | 9092                                     |
+| external.kafka.service.portOutside              | Port for Kafka client outside of the cluster | 9094                              |
+| external.kafka.persistence.storageClassName     | Storage class name for Kafka PVs                         | "hostpath"                               |
+| external.kafka.persistence.storageSize          | Size of the Kafka PV                                     | "1Gi"                                    |
+| external.kafka.persistence.claimName            | Name of the Kafka PersistentVolumeClaim                  | "kafka-pvc"                              |
+| external.kafka.persistence.pvName               | Name of the Kafka PersistentVolume                       | "kafka-pv"                               |
+|
+
+#### Zookeeper common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.zookeeper.appName                      | ZooKeeper application name                               | "zookeeper"                              |
+| external.zookeeper.version                      | ZooKeeper version                                        | 3.4.13                                   |
+| external.zookeeper.port                         | Port for the ZooKeeper service                           | 2181                                     |
+| external.zookeeper.service.name                 | Name of the ZooKeeper service                            | "zookeeper"                              |
+| external.zookeeper.service.port                 | TargetPort of the ZooKeeper service                      | 2181                                     |
+| external.zookeeper.persistence.storageClassName | Storage class name for ZooKeeper PVs                     | "hostpath"                               |
+| external.zookeeper.persistence.storageSize      | Size of the ZooKeeper PV                                 | "1Gi"                                    |
+| external.zookeeper.persistence.claimName        | Name of the ZooKeeper PersistentVolumeClaim              | "zookeeper-pvc"                          |
+| external.zookeeper.persistence.pvName           | Name of the ZooKeeper PersistentVolume                   | "zookeeper-pv"                           |
+
+
+#### Pulsar common parameters
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| external.pulsar.appName                         | pulsar application name                                  | "pulsar"                                 |
+| external.pulsar.version                         | pulsar version                                           | 3.0.0                                    |
+| external.pulsar.port                            | Port for the pulsar service                              | 6650                                     |
+| external.pulsar.service.name                    | Name of the pulsar service                               | "pulsar"                                 |
+| external.pulsar.service.port                    | TargetPort of the pulsar service                         | 6650                                     |
+| external.pulsar.persistence.storageClassName    | Storage class name for pulsar PVs                        | "hostpath"                               |
+| external.pulsar.persistence.storageSize         | Size of the pulsar PV                                    | "1Gi"                                    |
+| external.pulsar.persistence.claimName           | Name of the pulsar PersistentVolumeClaim                 | "pulsar-pvc"                             |
+| external.pulsar.persistence.pvName              | Name of the pulsar PersistentVolume                      | "pulsar-pv"                              |
+
+### Monitoring common parameters
+
+#### Monitoring - Prometheus
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| prometheus.appName                              | Prometheus application name                              | "prometheus"                             |
+| prometheus.version                              | Prometheus version                                       | 2.45.0                                   |
+| prometheus.port                                 | Prometheus port                                          | 9090                                     |
+| prometheus.service.name                         | Prometheus service name                                  | "prometheus"                             |
+| prometheus.service.port                         | Prometheus service port                                  | 9090                                     |
+| prometheus.persistence.storageClassName         | Prometheus storage class name                            | "hostpath"                               |
+| prometheus.persistence.storageSize              | Prometheus storage size                                  | "2Gi"                                    |
+| prometheus.persistence.claimName                | Prometheus PVC claim name                                | "prometheus-pvc"                         |
+| prometheus.persistence.pvName                   | Prometheus PV name                                       | "prometheus-pv"                          |
+| prometheus.persistence.tokenStorageSize         | Prometheus token storage size                            | "16Ki"                                   |
+| prometheus.config.scrapeInterval                | Prometheus scrape interval                               | 10s                                      |
+| prometheus.config.evaluationInterval            | Prometheus evaluation interval                           | 15s                                      |
+| prometheus.config.backendJobName                | Prometheus backend job name                              | "backend"                                |
+| prometheus.config.extensionsName                | Prometheus extensions job name                           | "extensions-all-iiot"                    |
+| prometheus.config.tokenFileName                 | Prometheus token file name                               | "token"                                  |
+| prometheus.config.tokenFileDir                  | Prometheus token file directory                          | "/opt/data"
+
+#### Monitoring - Grafana
+
+| Parameter Name                                  | Description                                              | Value                                    |
+|-------------------------------------------------|----------------------------------------------------------|------------------------------------------|
+| grafana.appName                                 | Grafana application name                                 | "grafana"                                |
+| grafana.version                                 | Grafana version                                          | 10.1.2                                   |
+| grafana.port                                    | Grafana port                                             | 3000                                     |
+| grafana.service.name                            | Grafana service name                                     | "grafana"                                |
+| grafana.service.port                            | Grafana service port                                     | 3000                                     |
+| grafana.persistence.storageClassName            | Grafana storage class name                               | "hostpath"                               |
+| grafana.persistence.storageSize                 | Grafana storage size                                     | "1Gi"                                    |
+| grafana.persistence.claimName                   | Grafana PVC claim name                                   | "grafana-pvc"                            |
+| grafana.persistence.pvName                      | Grafana PV name                                          | "grafana-pv"                             |
+
+
+## Auto-generation of parameters.
+
+The helm chart includes a `secrets.yaml` file which auto-generates several settings as follows:
+
+```yaml
+
+apiVersion: v1
+kind: Secret
+metadata:
+  name: sp-secrets
+  namespace: {{ .Release.Namespace | quote }}
+type: Opaque
+data:
+  sp-initial-admin-password: {{ ternary (randAlphaNum 10) .Values.streampipes.auth.users.admin.password (empty .Values.streampipes.auth.users.admin.password) | b64enc | quote }}
+  sp-initial-client-secret: {{ ternary (randAlphaNum 35) .Values.streampipes.auth.users.service.secret (empty .Values.streampipes.auth.users.service.secret) | b64enc | quote }}
+  sp-encryption-passcode:  {{ ternary (randAlphaNum 20) .Values.streampipes.auth.encryption.passcode (empty .Values.streampipes.auth.encryption.passcode) | b64enc | quote }}
+  sp-couchdb-password:  {{ ternary (randAlphaNum 20) .Values.external.couchdb.password (empty .Values.external.couchdb.password) | b64enc | quote }}
+  sp-ts-storage-password:  {{ ternary (randAlphaNum 20) .Values.external.influxdb.password (empty .Values.external.influxdb.password) | b64enc | quote }}
+  sp-ts-storage-token:  {{ ternary (randAlphaNum 20) .Values.external.influxdb.adminToken (empty .Values.external.influxdb.adminToken) | b64enc | quote }}
+
+```
+
 
 ## Deleting the current helm chart deployment:
 ```bash
diff --git a/docs/06_extend-customize-ui.md b/docs/06_extend-customize-ui.md
new file mode 100644
index 0000000..c09823f
--- /dev/null
+++ b/docs/06_extend-customize-ui.md
@@ -0,0 +1,226 @@
+---
+id: extend-customize-ui
+title: UI customization
+sidebar_label: UI customization
+---
+
+
+## Custom theme
+
+It is possible to use a custom theme with individual styles, logos and images instead of the default StreamPipes theme.
+
+In this section, we describe the necessary steps to build and deploy a custom theme.
+
+
+### Prerequisite: Learn how to run and build the UI
+
+To use a custom theme, it is required to build the UI with the custom settings.
+In general, the UI can be found in the `ui` folder of the source code.
+
+Perform the following steps to build the UI;
+
+```bash
+
+# Install all necessary packages
+npm install 
+
+# Start the UI for development purposes
+npm run start
+
+# Build the StreamPipes UI
+npm run build 
+
+```
+
+## Customizable assets
+
+The following assets can be provided in a customized theme:
+
+* **Logo** This is the main logo image, which is shown e.g., on the login page.
+* **Navigation Logo** This is the logo which appears in the top navigation bar after successful login
+* **Favicon** The favicon is shown in the browser navbar. It is also used as the loading animation in StreamPipes.
+* **String constants** Customizable strings, e.g., when you want to use another application name than **Apache StreamPipes**.
+* **Theme variables** An scss file which defines custom colors and layouts.
+
+## Customize constants
+
+To customize constants, you can create a custom file `app.constants.ts` and modify the content based on the template below:
+
+```javascript
+
+import {Injectable} from '@angular/core';
+
+@Injectable()
+export class AppConstants {
+
+  public readonly APP_NAME = "Apache StreamPipes";
+  public readonly APP_TITLE = 'Apache StreamPipes';
+  public readonly EMAIL = "admin@streampipes.apache.org";
+}
+
+
+```
+
+## Customize theme
+
+To customize the theme, we provide a file named `variables.scss` which can be overridden with default color and style settings.
+
+See the example below:
+
+```scss
+
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+$sp-color-primary: rgb(57, 181, 74);
+$sp-color-primary-600: #06c12a;
+
+$sp-color-accent: #1b1464;
+
+$sp-color-accent-light-blue: rgb(59, 92, 149);
+$sp-color-accent-light: rgb(156, 156, 156);
+$sp-color-accent-light-transparent: rgba(156, 156, 156, 0.4);
+
+$sp-color-accent-dark: #83a3de;
+
+$sp-color-adapter: #7f007f;
+$sp-color-stream: #ffeb3b;
+$sp-color-processor: #009688;
+$sp-color-sink: #3f51b5;
+
+$sp-color-error: #b71c1c;
+
+body {
+    --color-data-view: rgb(122, 206, 227);
+    --color-dashboard: rgb(76, 115, 164);
+    --color-adapter: rgb(182, 140, 97);
+    --color-data-source: #ffeb3b;
+    --color-pipeline: rgb(102, 185, 114);
+    --color-measurement: rgb(39, 164, 155);
+    --color-file: rgb(163, 98, 190);
+
+    --button-border-radius: 5px;
+    --iconbar-width: 35px;
+    --navbar-icon-border-radius: 0;
+    --navbar-icon-padding: 0;
+}
+
+:root {
+    --color-loading-bar: #{$sp-color-accent};
+}
+
+.dark-mode {
+    --color-primary: #{$sp-color-primary};
+    --color-accent: #{$sp-color-accent-dark};
+    --color-bg-outer: var(--color-bg-1);
+    --color-bg-page-container: var(--color-bg-0);
+    --color-bg-main-panel-header: var(--color-bg-0);
+    --color-bg-main-panel-content: var(--color-bg-0);
+    --color-bg-navbar-icon: inherit;
+    --color-bg-navbar-icon-selected: inherit;
+    --color-bg-0: #121212;
+    --color-bg-1: #282828;
+    --color-bg-2: #404040;
+    --color-bg-3: #424242;
+    --color-bg-4: #5f5f5f;
+    --color-bg-dialog: rgb(66, 66, 66);
+    --color-shadow: #c4c4c4;
+    --color-pe: #404040;
+    --color-default-text: rgba(255, 255, 255, 0.87);
+    --color-warn: #b36161;
+
+    --color-tab-border: #cccccc;
+
+    --color-navigation-bg: var(--color-primary);
+    --color-navigation-link-text: var(--color-bg-0);
+    --color-navigation-text: #121212;
+    --color-navigation-selected: #{$sp-color-primary};
+    --color-navigation-hover: #{$sp-color-primary-600};
+    --color-navigation-bg-selected: var(--color-bg-1);
+    --color-navigation-divider: #{$sp-color-primary};
+
+    --content-box-color: #404040;
+    --canvas-color: linear-gradient(
+            90deg,
+            rgba(50, 50, 50, 0.5) 10%,
+            transparent 0%
+        ),
+        linear-gradient(rgba(50, 50, 50, 0.5) 10%, transparent 0%);
+}
+
+.light-mode {
+    --color-primary: #{$sp-color-primary};
+    --color-accent: #{$sp-color-accent};
+    --color-bg-outer: var(--color-bg-1);
+    --color-bg-page-container: var(--color-bg-0);
+    --color-bg-main-panel-header: var(--color-bg-0);
+    --color-bg-main-panel-content: var(--color-bg-0);
+    --color-bg-navbar-icon: inherit;
+    --color-bg-navbar-icon-selected: inherit;
+    --color-bg-0: #ffffff;
+    --color-bg-1: #fafafa;
+    --color-bg-2: #f1f1f1;
+    --color-bg-3: rgb(224, 224, 224);
+    --color-bg-4: rgb(212, 212, 212);
+    --color-bg-dialog: #ffffff;
+    --color-shadow: #555;
+    --color-pe: #ffffff;
+    --color-default-text: #121212;
+    --color-warn: #b71c1c;
+
+    --color-tab-border: #cccccc;
+
+    --color-navigation-bg: var(--color-primary);
+    --color-navigation-link-text: var(--color-bg-0);
+    --color-navigation-text: #ffffff;
+    --color-navigation-selected: #{$sp-color-primary};
+    --color-navigation-hover: #{$sp-color-primary-600};
+    --color-navigation-bg-selected: var(--color-bg-1);
+    --color-navigation-divider: var(--color-primary);
+
+    --content-box-color: rgb(156, 156, 156);
+    --canvas-color: linear-gradient(
+            90deg,
+            rgba(208, 208, 208, 0.5) 10%,
+            transparent 0%
+        ),
+        linear-gradient(rgba(208, 208, 208, 0.5) 10%, transparent 0%);
+}
+
+```
+## Run a customized build
+
+To create a new UI build with customized themes, use the following command:
+
+````bash
+
+UI_LOC=PATH_TO_FOLDER_WITH_CUSTOM_TEMPLATES \\
+THEME_LOC=$UI_LOC/_variables.scss \\
+LOGO_HEADER_LOC=$UI_LOC/img/logo.png \\
+FAVICON_LOC=$UI_LOC/img/favicon.png \\
+LOGO_NAV_LOC=$UI_LOC/img/logo-navigation.png \\
+CONSTANTS_FILE=$UI_LOC/app.constants.ts \\
+npm run build
+
+````
+
+First, we create a helper environment variable that links to a folder which includes custom logos, the theme file and constants.
+Next, we set the variables above to override default logos and stylings.
+Finally, the usual build process is executed.
+
+Once finished, you've successfully customized an Apache StreamPipes instance!
diff --git a/docs/07_technicals-messaging.md b/docs/07_technicals-messaging.md
index 9ce44b9..d5308a6 100644
--- a/docs/07_technicals-messaging.md
+++ b/docs/07_technicals-messaging.md
@@ -40,3 +40,26 @@
 StreamPipes ensures that only pipeline elements which have a commonly supported protocol can be connected.
 
 Note that you might need to change the installation files. For the `Docker-Compose` based installation, we provide various compose file for different messaging setups. For the `Kubernetes` installation, we provide variables which can be set in the helm chart's `values.yaml` file.
+
+### Configure broker addresses
+
+By default, StreamPipes assumes that the messaging system is started from its own environment, e.g., the system configured in the selected `Docker-Compose` file.
+
+Besides that, it is also possible to let StreamPipes connect to an externally provided messaging system. For this purpose, various environment variables exist.
+
+* `SP_PRIORITIZED_PROTOCOL` to set the prioritized protocol to either `kafka`, `mqtt`, `nats` or `pulsar`
+
+* `SP_KAFKA_HOST`, `SP_KAFKA_PORT` to configure Kafka access
+* `SP_MQTT_HOST`, `SP_MQTT_PORT` to configure MQTT access
+* `SP_NATS_HOST`, `SP_NATS_PORT` to configure NATS access
+* `SP_PULSAR_URL` to configure Pulsar access
+
+
+Most settings can also be set in the UI under `Settings->Messaging`.
+
+:::warning Installation-time configurations
+Although it is currently possible to change messaging settings in the user interface, we do not support dynamic modification of messaging systems.
+Choosing a proper system is considered an installation-time setting which should not be changed afterwards.
+Already existing Adapters and pipeline elements are not properly updated after changes of the messaging layer.
+:::
+
diff --git a/docs/07_technicals-runtime-wrappers.md b/docs/07_technicals-runtime-wrappers.md
index 8b757ca..9cebadf 100644
--- a/docs/07_technicals-runtime-wrappers.md
+++ b/docs/07_technicals-runtime-wrappers.md
@@ -4,4 +4,34 @@
 sidebar_label: Runtime Wrappers
 ---
 
-tbd
\ No newline at end of file
+## Overview
+
+In general, StreamPipes has an exchangeable runtime layer, e.g., the actual processing of incoming events can be delegated to a third-party stream processing system such as Kafka Streams or Apache Flink.
+
+The default runtime wrapper is the StreamPipes Native Wrapper, called the `StandaloneWrapper`.
+
+Although not recommended for production, we invite interested developers to check out our experimental wrappers:
+
+* Kafka Streams runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-kafka-streams) 
+* Apache Flink runtime wrapper at [https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink](https://github.com/apache/streampipes/tree/dev/streampipes-wrapper-flink)
+
+## Assigning a runtime wrapper to an extension service
+
+Runtime wrappers can be assigned in the `Service Definition` of the `Init` class of an extension service:
+
+```java
+
+  @Override
+  public SpServiceDefinition provideServiceDefinition(){
+    return SpServiceDefinitionBuilder.create("org.apache.streampipes.extensions.all.jvm",
+    "StreamPipes Extensions (JVM)",
+    "",8090)
+    ...
+    .registerRuntimeProvider(new StandaloneStreamPipesRuntimeProvider())
+    ...
+    .build();
+  }
+
+```
+
+Please let us know through our communication channels if you are interested in this feature and if you are willing to contribute!
diff --git a/website-v2/sidebars.json b/website-v2/sidebars.json
index a5d0c24..ce4d65d 100644
--- a/website-v2/sidebars.json
+++ b/website-v2/sidebars.json
@@ -176,10 +176,12 @@
       }
     ],
     "⚡ Deploy StreamPipes": [
+      "choosing-the-right-flavor",
       "deploy-docker",
       "deploy-kubernetes",
       "deploy-use-ssl",
-      "deploy-security"
+      "deploy-security",
+      "deploy-environment-variables"
     ],
     "💻 Customize StreamPipes": [
       "extend-setup",
@@ -196,11 +198,11 @@
       "extend-sdk-stream-requirements",
       "extend-sdk-static-properties",
       "extend-sdk-output-strategies",
-      "extend-sdk-migration-service-discovery"
+      "extend-sdk-migration-service-discovery",
+      "extend-customize-ui"
     ],
     "🔧 Technicals": [
       "technicals-architecture",
-      "technicals-user-guidance",
       "technicals-runtime-wrappers",
       "technicals-messaging"
     ],
@@ -214,4 +216,4 @@
       "faq-common-problems"
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/website-v2/versioned_sidebars/version-0.92.0-sidebars.json b/website-v2/versioned_sidebars/version-0.92.0-sidebars.json
index cc356dd..657aa11 100644
--- a/website-v2/versioned_sidebars/version-0.92.0-sidebars.json
+++ b/website-v2/versioned_sidebars/version-0.92.0-sidebars.json
@@ -197,7 +197,6 @@
     ],
     "\uD83D\uDD27 Technicals": [
       "technicals-architecture",
-      "technicals-user-guidance",
       "technicals-runtime-wrappers",
       "technicals-messaging"
     ],