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:
replayServer.serverUrl(external DDNS URL)area.onPremiseApiUrl(legacy fallback)
For admin dashboard proxy endpoints (health, logs, branding, instant replay), the resolution order is:
replayServer.serverUrl(external DDNS URL)replayServer.localIp(device-reported LAN address, private IPs only)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 - Pairing, status monitoring, restart, and unpair
Branding Assets - Upload logos and postroll videos for branded replays
Advanced Settings - Cleanup, branding configuration, and branded replay preview
Last updated
Was this helpful?

