# Installation

Lenses is available in a number of different deployment options from Linux archive to Kubernetes. Installation is straightforward, but the approach differs based on your Apache Kafka.

This section will be about the requirements and configuration needed for Lenses.

#### Pre-requirements

#### Kafka versions  <a href="#kafka-versions" id="kafka-versions"></a>

Any version of Apache Kafka (2.0 or newer) on-premise and on-cloud.

#### JMX connectivity  <a href="#jmx-connectivity" id="jmx-connectivity"></a>

For performance and health monitoring, optionally enable JMX metrics.

#### Hardware & OS  <a href="#hardware--os" id="hardware--os"></a>

Run on any Linux server (review ulimits or container technology (docker/kubernetes). For RHEL 6.x and CentOS 6.x use docker.

Linux machines typically have a soft limit of 1024 open file descriptors. Check your current limit with the `ulimit` command:

```sh
ulimit -S -n     # soft limit
ulimit -H -n     # hard limit
```

Increase as a super-user the soft limit to 4096 with:

```sh
ulimit -S -n 4096
```

#### Browser  <a href="#browser" id="browser"></a>

All recent versions of major browsers are fully supported.

### APIs and Websockets  <a href="#apis-and-websockets" id="apis-and-websockets"></a>

Every action in Lenses is backed by an API or WebSocket, documented at [https://api.lenses.io](https://api.lenses.io/). A Golang client is available and CLI (command line interface).

### Lenses state store  <a href="#lenses-state-store" id="lenses-state-store"></a>

Lenses can use an embedded H2 database or a Postgres database. Postgres is not supplied by Lenses.

### JMX  <a href="#jmx" id="jmx"></a>

Connectivity to JMX is optional (not required) but recommended for additional/enhanced monitoring of the Kafka Brokers and Connect Workers. Secure JMX connections are also supported, as well as JOLOKIA and OpenMetrics (MSK).

### TLS termination  <a href="#tls-termination" id="tls-termination"></a>

By default, Lenses does not provide TLS termination but can be enabled via a configuration option. TLS termination is recommended for enhanced security and a prerequisite for integrating with SSO (Single Sign On) via SAML2.0.

TLS termination can be configured directly within Lenses or alternatively by using a TLS proxy or load balancer. Refer to the TLS documentation for additional information.

<br>
