> For the complete documentation index, see [llms.txt](https://docs.xibosignage.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xibosignage.com/using-my-account/my-account/on-premise-licensing.md).

# On-Premise Licensing

Player Licences must be verified every 30 days. Devices that fail to get a licence will automatically stop downloading new content from the Xibo CMS it is connected to.

This module acts as a pass-through to our licensing servers for Players that will not have reliable internet access, or that will run permanently disconnected from the internet.

## First steps

1. From My Account navigate to **Perpetual Licences**.
2. Click the end button for the **Licence Pool** to **Purchase On-Premise Module**.

   ![purchase\_on\_prem](https://2149703612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOD5P6BGYveuzkbhjZRsq%2Fuploads%2Fgit-blob-5e03b4e3567a27c169ec329e068fbd2e6f645ae9%2Fplayer_licensing_purchase_on_prem.png?alt=media)

Once purchased follow the steps below:

## Download and Install to your CMS

From My Account, navigate to the Licence Pool which now has the **On-Premise Module** now enabled.

![Row Menu](https://2149703612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOD5P6BGYveuzkbhjZRsq%2Fuploads%2Fgit-blob-2a180e527884d758805316f2723fe992e917b4ec%2Fonprem_module_row_menu.png?alt=media)

Use the row menu and download by clicking on **Download Module** and select the correct folder for the version/Player required from the downloaded zip. Install on your server as per the instructions for your Player as detailed below:

<details>

<summary>Android</summary>

### CMS Docker Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `shared/cms/custom` folder.

Edit `shared/cms/custom/settings-custom.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$androidOnPremise = new \Xibo\Custom\XiboForAndroidOnPremise();
$androidOnPremise->setConfig('licences@example.org');
$middleware = [$androidOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct Licence Pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForAndroidOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created on in the `shared/cms/library/android` folder.

### CMS Custom Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `shared/cms/custom` folder.

Edit `/web/settings.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$androidOnPremise = new \Xibo\Custom\XiboForAndroidOnPremise();
$androidOnPremise->setConfig('licences@example.org');
$middleware = [$androidOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct licence pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForAndroidOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created on in the `/library/android` folder.

</details>

<details>

<summary>webOS</summary>

### CMS Docker Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `shared/cms/custom` folder.

Edit `shared/cms/custom/settings-custom.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$webOSOnPremise = new \Xibo\Custom\XiboForWebosOnPremise();
$webOSOnPremise->setConfig('licences@example.org');
$middleware = [$webOSOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct Licence Pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForWebosOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created on in the `shared/cms/library/webos` folder.

### CMS Custom Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `/custom` folder.

Edit `/web/settings.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$webOSOnPremise = new \Xibo\Custom\XiboForWebosOnPremise();
$webOSOnPremise->setConfig('licences@example.org');
$middleware = [$webOSOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct Licence Pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForWebosOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created in the `/library/webos` folder.

</details>

<details>

<summary>Tizen</summary>

### CMS Docker Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `shared/cms/custom` folder..

Edit `shared/cms/custom/settings-custom.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$TizenOnPremise = new \Xibo\Custom\XiboForTizenOnPremise();
$TizenOnPremise->setConfig('licences@example.org');
$middleware = [$TizenOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct Licence Pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForTizenOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created on in the `shared/cms/library/tizen` folder.

### CMS Custom Install

Open the correct folder from the downloaded zip file, and then copy the contents of the folder into your `/custom` folder.

Edit `/web/settings.php` file, and add the following lines to the end of the file, before the closing `?>` tag, so that it looks like this:

```auto
$TizenOnPremise = new \Xibo\Custom\XiboForTizenOnPremise();
$TizenOnPremise->setConfig('licences@example.org');
$middleware = [$TizenOnPremise];
?>
```

Be sure to replace `licences@example.org` with your correct Licence Pool email address.

If you already have other middleware enabled, please see the comments at the top of the `XiboForTizenOnPremise.php` file which explains how to handle that.

Finally, run a manual licence check from the Player. It won’t licence the Player initially but a file - request.txt should be created in the `/library/tizen` folder.

</details>

## Install your Players

Download and install the Player application onto your devices and set the appropriate Licence Pool code in the Player settings.

***Please Note:** During this configuration, if the Player has access and connects to our licence servers it will automatically licence directly from us, so you need to ensure your Players don’t have any access to the internet unless you are using the “shortcut” method outlined below. To do this, you can simply forget any defined wireless networks in the Player’s wifi device manager, or remove the ethernet cable or mobile SIM card. Please do ensure that the wifi adapter in your device is enabled.*

## Upload and Download Licence files

Once you have all the Players you want to licence in the request.txt file, you need to upload that file into My Account for your Licence Pool, using the row menu and selecting **Upload Licence**:

![Upload Licence](https://2149703612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOD5P6BGYveuzkbhjZRsq%2Fuploads%2Fgit-blob-47960365eeefb45316c731903f8edd5d32908802%2Fonprem_upload_licence.png?alt=media)

Once uploaded you need to download the `android.txt` / `webos.txt` / `tizen.txt` file by clicking **Download Licence**:

![Download Licence](https://2149703612-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOD5P6BGYveuzkbhjZRsq%2Fuploads%2Fgit-blob-de22391d10f73afbc37b5cf12bf8f695c60719b9%2Fonprem_download_licence.png?alt=media)

### Copy to your CMS

When you have your `android.txt` / `webos.txt` / `tizen.txt` file you’ll need to copy it to your CMS.

<details>

<summary><strong>Android</strong></summary>

Place the `android.txt file` in the CMS library directory, in the `android` folder. By default on a Docker install, that would be `shared/cms/library/android`, and for a custom install, `/library/android`.

</details>

<details>

<summary><strong>webOS</strong></summary>

Place the `webos.txt file` in the CMS library directory, in the `webos` folder. By default on a Docker install, that would be `shared/cms/library/webos`, and for a custom install, `/library/webos`.

</details>

<details>

<summary><strong>Tizen</strong></summary>

Place the `tizen.txt file` in the CMS library directory, in the `tizen` folder. By default on a Docker install, that would be `shared/cms/library/tizen`, and for a custom install, `/library/tizen`.

</details>

### Shortcut Method

If you are able to setup Players somewhere where they have internet access before taking them to their final location then follow this shortcut method. This process will initially licence directly with the licence service and then with the CMS after they are physically moved to their final site, without the need for a request.txt file.

Licence your device online as normal to get it registered with My Account, then click on your Licence Pool with On-Premise enabled. Use the row menu and then select **Licence Download** to download the `android.txt` / `webos.txt` / `tizen.txt` file for you.

Then at your destination site (where there’s no internet access), copy your downloaded file.

Next, you will need to copy it to your CMS as previously mentioned above.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xibosignage.com/using-my-account/my-account/on-premise-licensing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
