# Permanent Installations

Permanent installations — museum exhibits, lobby displays, digital signage, visitor attractions — run unattended for hours, days, or years. This guide covers the Exaplay 3 features designed specifically for this use case.

## Key Principles for Installations

1. **Unattended operation** — the system must run without a human operator present.
2. **Automatic recovery** — crashes must heal without manual intervention.
3. **Scheduled content** — content changes must happen automatically at defined times.
4. **Remote monitoring** — operators must be able to check status remotely.
5. **Minimal maintenance** — the setup should be stable and require infrequent visits.

## Recommended Architecture

```
Installation PC (Windows 11)
├── Exaplay 3 (engine)
├── Watchdog Service (auto-restart on crash)
├── Exaplay web UI (remote monitoring via browser)
└── Network connection (Ethernet, not Wi-Fi)

Remote monitoring device (any browser)
└── http://<installation-ip>:8123/control
    → Monitor tab (connection status, event log)
    → DiagnosticsPanel (FPS, RAM, VRAM)
```

***

## Setup Guide

### Step 1 — Create the Content Loop

1. Create a composition with a **looping timeline**.
2. Set all media clips to **Loop: ∞ Infinite** or arrange them end-to-end to fill the desired loop duration.
3. If the installation has multiple content pieces that rotate, add them sequentially on Track 1 with crossfades between them.

### Step 2 — Configure the Scheduler

Set up opening and closing times so the display is active only during visitor hours:

1. Open **Config → Scheduler**.
2. Add a **Morning event**: `08:00` Mon–Sun → Action: `Play composition: Main`.
3. Add a **Evening event**: `20:00` Mon–Sun → Action: `Fade to black`.
4. (Optional) Add a **Nightly restart** event: `03:00` daily → Action: `Stop`.

See [Scheduler](/v3/features/scheduler.md) for full details.

### Step 3 — Enable Auto-Heal

1. Open **Settings → Auto-Heal**.
2. Set **Enable Auto-Heal** to ON.
3. Configure:
   * **Save Interval:** `2` s (default)
   * **Health Interval:** `5` s (default)
   * **Max State Age:** `3600` s (1 hour)
4. Open **Settings → Watchdog**.
5. Set **Watchdog Restart** to ON.
6. Set **Restart Delay** to `5` s.

See [Auto-Heal & Watchdog](/v3/features/auto-heal.md) for full details.

### Step 4 — Configure Windows for Unattended Operation

These Windows settings prevent common failure modes:

| Setting                | Where                                 | Recommended value                         |
| ---------------------- | ------------------------------------- | ----------------------------------------- |
| Auto login             | Settings → Accounts → Sign-in options | Enable for the show user                  |
| Sleep / Screen timeout | Settings → Power & Sleep              | Never (for PC and display)                |
| Windows Update         | Group Policy or Settings              | Active hours 00:00–23:59 (defer restarts) |
| Screen saver           | Settings → Personalization            | Off                                       |
| UAC prompts            | Group Policy                          | Disable or auto-approve for admin         |
| Firewall               | Windows Defender Firewall             | Allow Exaplay ports 8123 and 3001         |

### Step 5 — Add Exaplay to Windows Startup

Add Exaplay to Windows startup so it launches automatically after a reboot:

1. Press `Win+R`, type `shell:startup`, press Enter.
2. Create a shortcut to `exaplay3.exe` with arguments:

   ```
   -f "C:\Shows\Installation\exhibit.vpp" -playcomp -autoheal-restore
   ```

Or use **Task Scheduler** (more reliable than the Startup folder):

```batch
schtasks /create /tn "ExaplayStartup" /tr "\"C:\Program Files\Exaplay3\exaplay3.exe\" -f C:\Shows\exhibit.vpp -playcomp" /sc onlogon /delay 0000:30 /ru SYSTEM
```

***

## Remote Monitoring

From any browser on the same network (or over a VPN):

### Operator Control View

`http://<installation-ip>:8123/control`

* **Monitor tab** — see all active connections and recent events
* **DiagnosticsPanel** — FPS, CPU, RAM, VRAM health

### Checking the Engine Log

Logs are at `Documents\Exaplay3\logs\` on the installation PC. Access via Windows Remote Desktop or a shared network folder.

### Auto-Heal State File

The last known playback state is at `Documents\Exaplay3\autoheal_state.json`. Inspect it to confirm the system was playing at the expected time.

***

## Planned Maintenance Schedule

| Interval   | Task                                                                                    |
| ---------- | --------------------------------------------------------------------------------------- |
| Weekly     | Review engine logs for repeated errors                                                  |
| Monthly    | Check disk free space (`Documents\Exaplay3\` and media drives)                          |
| Quarterly  | Clean dust from PC vents and displays                                                   |
| Per update | Test new Exaplay versions in a staging environment before deploying to the installation |

***

## Troubleshooting Unattended Failures

| Symptom                        | Likely cause                        | Fix                                                                             |
| ------------------------------ | ----------------------------------- | ------------------------------------------------------------------------------- |
| Display black, PC responsive   | Engine crashed and did not restart  | Check Watchdog Service status via Remote Desktop                                |
| Display shows wrong content    | Scheduler fired unexpectedly        | Review Scheduler log in Monitor tab                                             |
| PC rebooted mid-show           | Windows Update applied a restart    | Configure Windows Update deferred restarts; verify startup task fires correctly |
| Content frozen on one frame    | GPU hang — watchdog restarts engine | Check engine log for GL errors; update GPU driver                               |
| Network monitoring unreachable | IP address changed (DHCP)           | Assign a static IP to the installation PC                                       |


---

# Agent Instructions: 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:

```
GET https://docs.exaplay.one/v3/workflows/installations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
