> For the complete documentation index, see [llms.txt](https://docs.podplay.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.podplay.app/replays/replay-servers.md).

# Replay Servers Overview

Replay Servers are on-premise Mac Mini devices that run the Replays Service software. Each device connects to a location's cameras to continuously record footage and generate video replays on demand.

This section covers the admin dashboard features for managing Replay Servers.

***

## Overview

Each Replay Server:

* Runs as a macOS application on a Mac Mini at the venue
* Connects to one or more RTSP cameras on the local network
* Continuously records video in chunks for instant replay
* Generates clips (custom, enhanced, and branded replays) on demand
* Reports health status via periodic heartbeats to the PodPlay API

***

## Key Concepts

### Device Pairing

A new Replay Server must be paired (approved) to a location before it can operate. When a device first connects, it appears as **Pending** in the admin dashboard. An admin approves it and assigns it to an area.

### Server URL

Each device can have an external URL (e.g., `https://location.ddns.net`) for remote access. If no external URL is configured, the device is reachable only via its local IP on the venue network.

For replay generation (API server to device), the system resolves URLs in this order:

1. `replayServer.serverUrl` (external DDNS URL)
2. `area.onPremiseApiUrl` (legacy fallback)

For admin dashboard proxy endpoints (health, logs, branding, instant replay), the resolution order is:

1. `replayServer.serverUrl` (external DDNS URL)
2. `replayServer.localIp` (device-reported LAN address, private IPs only)
3. `replayServer.lastSeenIp` (IP from the last heartbeat, private IPs only)

### Local IP

Devices report their local network IP address (`localIp`) during each heartbeat. This is used as a fallback for direct communication when the device has no external `serverUrl` configured. The API server only uses private IPv4 (RFC-1918) and IPv6 ULA/link-local addresses to prevent SSRF.

***

## Dashboard Features

* [Managing Replay Servers](/replays/replay-servers/managing-replay-servers.md) - Pairing, status monitoring, restart, and unpair
* [Branding Assets](/replays/watermarks-and-ads-on-replays/branding-assets.md) - Upload logos and postroll videos for branded replays
* [Advanced Settings](/replays/replay-servers/advanced-settings.md) - Cleanup, branding configuration, and branded replay preview


---

# 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.podplay.app/replays/replay-servers.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.
