This article covers all steps necessary to set up the KaDeck Web and KaDeck Enterprise in your infrastructure.
KaDeck Web/Enterprise is a web service that runs in your infrastructure and is typically delivered in a container format, e.g. a docker image.
Supported operating systems
- Microsoft Windows (Server) with support for Java 8+
- Linux distribution 64-bit with support for Java 8+
- Mac OS with support for Java 8+
If your setup deviates considerably from usual cloud setups, contact our support.
Internet access (Web only)
KaDeck Web requires internet access and must be able to communicate with our servers. The following address must be reachable from the inside of the container:
- 64-bit operating system
- min. 8GB of free RAM *
- 1 GB of disk space
* This needs to be set depending on the size of your data objects in Kafka and the number of users. Remember to increase the Java heap memory (see Java heap memory).
The number of threads KaDeck needs depends on a base number and the maximum number of concurrent long-running queries KaDeck has to execute at a ratio of 1:1, where the base number corresponds to a minimum of 2 threads.
External / internal database
KaDeck Web/Enterprise requires a database for storing information. An external database such as H2 or PostgreSQL is required in a production environment. If no external database information is supplied, KaDeck Web/Enterprise will use an internal H2 file-based database.
The database connection details are passed to KaDeck as environment variables in the form of a JDBC connection string.
KaDeck was tested with Apache Kafka 1.0+ and may work with older versions, but we do not recommend using any version of Kafka below 1.0 in a production environment.
You can configure KaDeck Web/Enterprise by supplying the following environment variables:
All values need to be prefixed with xeotek_kadeck, e.g. xeotek_kadeck_authcode.
|Variable name||Example value||Description|
|authcode||password||Required. Your secret authentication code.|
|companyid||com.xeotek||Required. Your company id.|
|init_with_userid||mycustomuserid||The user id of the first admin user. Defaults to admin.
The default password admin is not affected.
|port||80||The port through which the web UI of KaDeck Enterprise will be accessible.|
|keystore_path||/your/path||SSL: The absolute path to your keystore.|
|keystore_pass||password||SSL: The password of your keystore.|
|keystore_alias||alias||SSL: The keystore alias.|
|db_url||jdbc:h2:address||The JDBC URL of your SQL database. Currently, PostgreSQL and H2 are supported. If not supplied, a database is created in the container (not recommended in production).|
|db_username||username||The username with permissions to create tables and read/write values to it.|
|db_password||password||The password for your user.|
|sync_max_interval_mins||120||KaDeck Web only. The synchronization interval for pulling new data from the Xeotek Uplink server.|
To increase the memory available to the Java process, use the typical parameters -Xmx for the maximum and -Xms for the initial memory. To pass these parameters to KaDeck, you can set the environment variable "KA_DECK_OPTS".
For example, as an argument for the Docker image:
-e KA_DECK_OPTS="-Xms8g -Xmx12g"
Xeotek KaDeck Web/Enterprise is a web service and is usually provided as a Docker Container for a containerized environment.
KaDeck Web/Enterprise can scale out by creating several instances of KaDeck and controlling access via an upstream load balancer (e.g. based on the header "x-session"). KaDeck Web/Enterprise offers several endpoints for this purpose.
Health, Liveness, Readiness and metric endpoints
|/metrics||Metrics||The /metrics endpoint with three sub-paths: application, vendor, and base.|
|/health||Health check||The /health endpoint with database, deadlock, disk space, and heap memory checks.|
|/live||Livenessprobe||KaDeck is live and reachable.|
|/ready||Readynessprobe||KaDeck is live, reachable and the connection to the database is established.|