---
title: Install Broker on Linux or Unix
description: Install OpenLM Broker for OpenLM Platform on Linux or Unix from a tar.gz archive or a DEB or RPM package, run it as a service, and configure it.
product: OpenLM Platform
---

To install the Broker on Linux or Unix, use the tar.gz archive, or the DEB or RPM package for your distribution. The steps cover distributions with systemd and distributions with other init systems. For the supported distributions and Java versions, see the [system requirements](https://www.openlm.com/documentation/cloud/deployment-operations/system-requirements/?component=broker).

The Broker for Linux comes in three formats. See [Download the installer](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#download-the-installer) for where to get them:

- A tar.gz archive, for every distribution. The following sections describe it.
- A DEB package, for Debian and Ubuntu.
- An RPM package, for RHEL-family systems.

For the packages, see [Install from a DEB or RPM package](#install-from-a-deb-or-rpm-package).

## Before you begin

Confirm these prerequisites:

- Install a Java runtime (JRE or JDK) on the machine: Java 11 or higher, or Java 8. Java 9 and 10 aren't supported. For the supported distributions, see the [system requirements](https://www.openlm.com/documentation/cloud/deployment-operations/system-requirements/?component=broker).
- Plan one Broker per license server. One Broker can monitor several license managers on its own machine, but each additional license server needs its own Broker.
- Confirm that you have the [authorization file](https://www.openlm.com/documentation/cloud/getting-started/authorize-components) for this Broker.
- Confirm network access from the Broker machine to your license manager server and to the internet (port 443). If the Broker can't reach the internet directly, connect it through an HTTP or HTTPS proxy, with optional credentials. See [Proxy Configuration](https://www.openlm.com/documentation/cloud/data-collection/openlm-broker/#broker-settings).

## Prepare the tar.gz installation

To prepare the tar.gz installation:

1. Download the Broker for Unix/Linux. See [Download the installer](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#download-the-installer).

2. Extract the archive `OpenLM_Broker_<version>.tar.gz` to a folder of your choice.

   `<version>` stands for the build number in the archive name. The archive extracts into a folder named `openlm-broker`.

3. Open `settings.sh` in a text editor.

4. Set `JAVA_HOME` to the path of your Java runtime (Java 11 or higher, or Java 8).

   `settings.sh` holds the variables the Broker needs. The shipped file leaves `JAVA_HOME` empty. Don't end the `JAVA_HOME` path with a slash.

   To run the service under an account other than `root`, set `BROKERSRVNAMEUSER` to that account, and give that account ownership of all the files in the `openlm-broker` folder.

   To run more than one Broker instance in parallel, give each instance its own `BROKERSRVNAME`.

   The shipped file:

   ```text
   #!/usr/bin/env bash
   # Edit this file and customize service name in order to install multiple Broker services in parallel
   BROKERSRVNAMEUSER="root"
   BROKERSRVNAME="openlm_broker_$BROKERSRVNAMEUSER"
   BROKERSRVNAMEFILE="$BROKERSRVNAME.service"

   #Change JAVA_HOME to point at installation folder
   [[ -z "$JAVA_HOME" ]] && JAVA_HOME=
   ```

5. Save the file. Then continue with the section for your init system.

## Install Broker as a service (systemd)

On a system with systemd, install the Broker as a service that starts with the machine:

1. Install the Broker service:

   ```bash
   sudo ./broker.sh install
   ```

2. Check the status of the Broker service:

   ```bash
   sudo ./broker.sh status
   ```

3. Connect the Broker to OpenLM Platform, as described in [Connect the Broker to OpenLM Platform](#connect-the-broker-to-openlm-platform).

4. (Optional) On a machine with a desktop environment, open the local configuration tool:

   ```bash
   sudo ./broker.sh config
   ```

After you connect the Broker, add its license managers, as described in [Detect the license managers](#detect-the-license-managers). To configure the Broker in a browser, see [Broker UI](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#the-broker-ui).

## Run Broker as a background process (no systemd)

On a system without systemd, start the Broker as a background process:

```bash
sudo ./broker.sh start
```

To open the Broker configuration tool:

```bash
sudo ./run_brokerconfig.sh
```

Then connect the Broker to OpenLM Platform, as described in [Connect the Broker to OpenLM Platform](#connect-the-broker-to-openlm-platform). The restart in that section uses `stop` and then `start`, because `restart` needs systemd.

## Install from a DEB or RPM package

To install the Broker with your distribution's package manager, download the DEB or RPM package from the [Downloads page](https://www.openlm.com/downloads/), and install it.

On Debian/Ubuntu systems:

```bash
sudo dpkg -i openlm_broker_<version>_amd64.deb
# If dpkg reports missing dependencies, resolve them with:
sudo apt-get install -f
```

On RHEL-family systems:

```bash
sudo rpm -ivh openlm_broker_<version>.x86_64.rpm
```

A package installation differs from the tar.gz archive in three ways:

- The files go to a fixed folder, `/opt/broker`. Run the configuration scripts from that folder.
- The RPM package sets `JAVA_HOME` in `settings.sh` from the first `java` on the `PATH`. On a machine with more than one Java runtime, check that it picked the one you want.
- The package registers and starts the systemd service, so you don't run `./broker.sh install`.

After a package installation, import the authorization file and detect the license managers, as described in [Connect the Broker to OpenLM Platform](#connect-the-broker-to-openlm-platform) and [Detect the license managers](#detect-the-license-managers).

## Broker.sh commands

Manage the Broker service with these `broker.sh` commands:

| Command name | Description | Requires systemd |
| --- | --- | --- |
| `install` | Installs OpenLM Broker as a service using `systemctl enable` | Yes |
| `uninstall` | Deactivates an already installed OpenLM Broker instance from starting as a service | Yes |
| `start` | Starts the OpenLM Broker service | No |
| `stop` | Stops the OpenLM Broker service | No |
| `restart` | Restarts the OpenLM Broker service | Yes |
| `status` | Displays the current status of the OpenLM Broker service | No |
| `config` | Opens the local Broker configuration tool | No |

Run a command in this format:

```bash
sudo ./broker.sh <command>
```

`broker.sh` checks for systemd and runs the matching script. On a machine without systemd, the three commands that require systemd print the usage line and exit without acting. Use `stop` and then `start` in place of `restart`.

## Connect the Broker to OpenLM Platform

Import the [authorization file](https://www.openlm.com/documentation/cloud/getting-started/authorize-components) you generated for this Broker with `auth_import.sh`. Do this on every installation, with or without systemd, and with a tar.gz archive or a package. Until you import it, the Broker doesn't appear under **Pending Brokers**.

1. Copy the downloaded authorization `.json` file to the folder where OpenLM Broker is installed.
2. Import it as root:

   ```bash
   sudo ./auth_import.sh <authorization-file>.json
   ```

   The import runs in the background and writes its result to `logs/auth_import_nohup.log` in the Broker folder, not to the terminal. Check that file for the line `Saving broker.xml`.
3. Restart the Broker to load the credentials:

   ```bash
   sudo ./broker.sh restart
   ```

   On a machine without systemd, `restart` is unavailable. Stop and start the process instead:

   ```bash
   sudo ./broker.sh stop
   sudo ./broker.sh start
   ```

4. In the OpenLM Platform, approve the Broker, as described in [Verify the connection](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#verify-the-connection).

### Connect to a self-hosted OpenLM Platform

To connect the Broker to a self-hosted OpenLM Platform, generate the authorization file in your own OpenLM Platform and import it as in the previous steps. The file carries the address of your OpenLM Platform. If you use the Broker UI instead, select **OpenLM Cloud Account** on **Broker Initial Setup**, because that option is the one for OpenLM Platform. **Local OpenLM Installation** is for OpenLM SLM. Then select **Import Broker Authorization File**.

If the Broker machine doesn't trust the certificate of your OpenLM Platform, import the certificate first. See [Import a TLS certificate for the Broker](https://www.openlm.com/documentation/cloud/getting-started/install-broker/manage#import-a-tls-certificate-for-the-broker). To check the connection, select **Check Connectivity** on the **OpenLM Servers** screen of the [Broker UI](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#the-broker-ui).

## Detect the license managers

To add the license managers on the machine to the Broker configuration, run `detect.sh` as root. It finds the ports of supported license managers and adds them to the configuration file.

The script works in one of two ways:

- With no configuration file, it creates one with the license manager ports it detects as open on the machine.
- With an existing configuration file, it adds any missing ports to that file. It first copies the original into a `broker.xml.backup` folder next to it, under a timestamped name such as `broker.xml.2026-08-24T153045123`, so repeated runs never overwrite an earlier backup.

Run it in this format:

```bash
sudo ./detect.sh <file-name>.xml
```

Replace `<file-name>.xml` with the name of the configuration file. The script updates the file you name. It doesn't merge it into `broker.xml`. The Broker service reads only `broker.xml`, so another file name has no effect until you rename the file or copy it over `broker.xml`. To update the Broker configuration directly:

```bash
sudo ./detect.sh broker.xml
```

To configure the same set of ports on many license servers, copy the `broker.xml` from a Broker machine that is already configured, and import it with `detect.sh`. If a `broker.xml` already exists on the target machine, rename the copied file first:

```bash
sudo ./detect.sh brokerAddon.xml
```

## Check the Broker

After the installation, approve the Broker in OpenLM Platform, and then connect and approve its license managers, as described in [Verify the connection](https://www.openlm.com/documentation/cloud/getting-started/install-broker/index#verify-the-connection). To upgrade the Broker, see [Upgrade the Broker](https://www.openlm.com/documentation/cloud/getting-started/install-broker/manage#upgrade-the-broker). If the Broker doesn't appear under **Pending Brokers**, see [Why doesn't the new Broker appear in Pending Brokers?](https://www.openlm.com/documentation/cloud/getting-started/install-broker/troubleshooting#why-doesnt-the-new-broker-appear-in-pending-brokers).

:::note[Next step]
Continue to [Connect your first license manager](https://www.openlm.com/documentation/cloud/getting-started/connect-first-license-manager). Then continue to [Install Workstation Agent](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/index) to collect activity data from end-user machines.
:::
