> 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/cms-installation/cms-post-installation-set-up.md).

# CMS Post Installation Set up

{% hint style="info" %}
Xibo Cloud hosting includes the pre-configuration of some features with minimal additional set up.
{% endhint %}

{% hint style="warning" %}
If you are running with [Docker](typora://app/docs/setup/xibo-for-docker), please ensure that you have uploaded a test file (such as an image) to your CMS, and ensured that the same image then appears in the shared/cms/library directory on your local filesystem. If not, please **do not proceed** as your changes may not be saved.
{% endhint %}

### Setting the correct Time

<details>

<summary>Xibo Cloud</summary>

This is configured as part of the service.

</details>

<details>

<summary>Docker</summary>

It’s very important that the time is correct on your CMS, and that the **CMS Timezone** setting is set correctly for the timezone you’re working in.

You may want to consider setting up your Operating System to sync time automatically from the Internet so that the time is always correct.

ntp.org provide free access to time servers you can use to synchronise your CMS clock.

Instructions for configuring access to their servers are provided here <http://www.pool.ntp.org/en/use.html>

</details>

### Setting the Timezone

The installer attempts to make an intelligent guess from the timezone that your OS has been set up to use, but it’s not always able to make the best choice.&#x20;

From the CMS:

* Go to the **Settings** page under the **Administration** section of the main menu
* Click the **Regional** tab
* Use the drop-down menu to select the nearest major city in your timezone
* Click **Save** at the bottom of the page.

### Setting up Email Alerts

Optionally configure **Email Alerts** to be sent when Players stop connecting properly, and when they come back online after a period of downtime.

{% hint style="info" %}
Xibo Cloud hosting customers will have some settings pre-populated with some available to change, with others locked for editing.
{% endhint %}

From the **Settings** page, click on the **Maintenance** tab:

* Tick to **Enable Email Alerts**. `MAINTENANCE_EMAIL_ALERTS`
* **Max Display Timeout** `MAINTENANCE_ALERT_TOUT` - enter a time in minutes for a **Player** to be considered as gone "offline" from the last time you saw the Player connect to the CMS. This can be overridden on a per Player basis should you need that. Do not set this value lower than your normal Player collection interval. If in doubt, set it higher. The default is 30 minutes.
* **Send repeat Display Timeouts** `MAINTENANCE_ALWAYS_ALERT` - if this is set to **On**, for each offline Display you’ll receive an email every time the `maintenance.php` routine is run. Most people will want this set to **Off** which means that you’ll be notified only once per downtime period.
* Click **Save** at the bottom of the page.

Information needs to be provided in order to send emails from the CMS.

From the **Settings** page, click on the **Network** tab:

* **Admin email address** `mail_to` - enter the email address that should receive an email when a Display goes offline or comes back online.
* **Sending email address** `mail_from` - enter the email address alerts from the CMS should come from. (**Please note:** This field needs to be completed before configuring any email notifications).
* Click **Save** at the bottom of the page.

In some cases, it’s also useful to alert **Users/User Groups** if a Display goes offline.

* Go to **Users** under the **Administration** section
* Use the row menu for a User record
* Click **Edit**
* Click on the **Notifications** tab
* Tick the box to **Receive Display Notifications**
* Click to **Save**

{% hint style="success" %}
This can also be set for User Groups!
{% endhint %}

Next, select which Displays should receive alerts:

* Go to **Displays** from the CMS menu
* Use the row menu for a Display
* Click **Edit**
* Click on the **Maintenance** tab
* Ensure that **Email Alerts** is set to **Yes**
* Click to **Save**

If you are not using **Display Setting Profiles**, ensure that you tick **Use Global Timeout?** so that the value set earlier, for the time a Display needs to be offline, before being alerted is used.

If you are using **Display Settings Profiles**, then if that box is unticked, the **Collect Interval** from the **Display Profile** will be used instead.

With Email Alerts configured, if you turn off one of your Displays, you should be notified by email. The email will be sent once the **Global Timeout** or Display Profile **Collection Interval** has elapsed since the Player last connected, on the subsequent run of the maintenance script.

{% hint style="info" %}
**Example:** If the Global Timeout is 10 minutes and your maintenance script is set to run every 5 minutes, then you may not be notified for up to 15 minutes after the Player last connects.
{% endhint %}

When the Player comes back online, you will be notified instantly via email.

{% hint style="warning" %}
Multiple recovery emails are sent if the **Player** in use makes multiple simultaneous calls to the CMS when it starts up.
{% endhint %}

### Important Note On Collection Intervals

Xibo comes with XMR (Xibo Message Relay) push technology, which means that by default when you make changes to content assigned to Displays in the CMS, the Players are notified to connect and download that update straight away. It’s therefore strongly advisable to set relatively long Collection Intervals for your Display since those only really serve as a failsafe for any missed push messages.

{% hint style="danger" %}
You do not want CMS and Displays with 1-minute collection intervals. 5 minutes is the absolute minimum for normal operation, and we strongly advise setting this value to **30 minutes** or longer.&#x20;
{% endhint %}

### Log and Statistic Retention

<details>

<summary>Xibo Cloud</summary>

These settings are pre-configured and cannot be modified

</details>

<details>

<summary>Docker</summary>

The CMS generates log output when it’s running, and also receives log output from the Players connected to it for the purposes of debugging and checking the system’s state. It can also collect [Proof of Play Statistics](typora://app/manual/en/displays_metrics#content-proof-of-play).

All these records are held in the database and should be purged periodically to keep the size of the database manageable and to prevent system performance problems. The maintenance script performs that function.

From the **Settings** page, click on the **Maintenance** tab:

* **Max Log Age** `(MAINTENANCE_LOG_MAXAGE)` controls how many days logs should be retained in the CMS database before being automatically deleted. A setting of `5` would keep logs for 5 days which is reasonable for most debugging purposes.
* **Max Statistics Age** `(MAINTENANCE_STAT_MAXAGE)` controls how many days proof of play statistics are retained in the CMS database before being automatically deleted. A setting of `30` would keep statistics for 30 days. If you need to keep them for audit purposes, they can be exported from the `Statistics` page in the CMS and archived for later use.

</details>

### Language Detection

By default, the CMS will use the language preferences set in your web browser to auto-detect which language to display the CMS interface in. In some instances, where only small parts of the CMS have been translated into a particular language, for example, it may be desirable to disable language detection and enforce a specific language instead.

From the **Settings** page, click on the **Regional** tab:

* Untick **Detect Language** `(DETECT_LANGUAGE)`&#x20;
* Select a suitable **Default Language**
* Click to **Save**

#### Default Language

If you disable language detection, the CMS will need to know which language file to take its translations from.

From the **Regional** tab:

* The Default Language is `en_GB` which will give you English (British) translations. You can enter any valid code from the list of languages Xibo is currently translated in to. You can see a list [here](https://github.com/xibosignage/xibo-cms/tree/develop/locale)
* Enter the language code, without the trailing .mo. So for example, to select Spanish, enter `es`
* Click to **Save**

### Regionalised Date Formats

By default the Xibo CMS shows dates in `Y-m-d H:i` format (eg 2026-03-29 10:00:00)

* The date format used throughout the CMS can be adjusted using the **Date Format setting** on the **Regional** tab.

### Proxy Settings

<details>

<summary>Xibo Cloud</summary>

N/A

</details>

<details>

<summary>Docker</summary>

The CMS will need to be able to contact external servers to pull in **RSS feeds** from outside your local network, or for certain integrations.

If your network uses a proxy server then you’ll need to tell the Xibo CMS about it so it knows where to look.

{% hint style="warning" %}
Complete the proxy server details for your network. Your network administrator will help you if you are not sure what these are.
{% endhint %}

From the **Settings** page click on the **Network** tab:

* `Proxy URL (PROXY_HOST)` should be the http URL of your proxy server (eg `http://proxy.mydomain.com` or `http://192.168.1.8`)
* `Proxy Port (PROXY_PORT)` should be the port number that your proxy server is listening on (eg `3128` or `8080`)
* `Proxy Credentials (PROXY_AUTH)` should be any username and password required to use the proxy server, in the format `username:password` eg `jdoe:secretPassword`. Leave this blank if your proxy does not require authenticated access.
* `Proxy Exceptions (PROXY_EXCEPTIONS)` are any host or keyword that should be excluded from being sent to the proxy server. For example, if you have an intranet server then you could exclude it by entering `intranet.domain.com`. Multiple entries can be included by separating them with commas.&#x20;
  * In order for XMR to work add `cms-xmr,cms-quickchart`
  * Leave this blank if you don't require any proxy exceptions.
* Click to **Save.**

</details>


---

# 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/cms-installation/cms-post-installation-set-up.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.
