Ingest URL
Public HTTPS URL Twitch posts EventSub deliveries to. Goes into RELAY_INGEST_URL.
Twitch EventSub needs a public HTTPS endpoint. Connect gives your self-hosted recorder a public relay URL without opening router ports.
Connect forwards signed EventSub request bytes. The recorder still verifies Twitch’s HMAC locally — the relay holds no Twitch credentials and no HMAC secret. For the protocol details and self-host instructions, see Relay protocol.
When you sign up for Connect (or self-host the relay), you get two URLs:
Ingest URL
Public HTTPS URL Twitch posts EventSub deliveries to. Goes into RELAY_INGEST_URL.
Subscribe URL
WebSocket URL the recorder dials outbound. Goes into RELAY_SUBSCRIBE_URL.
You can enter the relay URLs in System → EventSub. For env-managed deployments, set the complete relay config below; env wins over dashboard settings. Dashboard-saved relay settings take effect after restarting the server.
PUBLIC_BASE_URL=https://your-replayvod.exampleSERVER_MODE=relayRELAY_INGEST_URL=https://relay.replayvod.com/u/<token>RELAY_SUBSCRIBE_URL=wss://relay.replayvod.com/u/<token>/subscribePUBLIC_BASE_URL stays your recorder’s URL for OAuth and the frontend. RELAY_INGEST_URL is only the EventSub relay URL.
SERVER_MODE=relayRELAY_INGEST_URL=https://relay.replayvod.com/u/<token>RELAY_SUBSCRIBE_URL=wss://relay.replayvod.com/u/<token>/subscribeRELAY_LOCAL_CALLBACK_URL=http://127.0.0.1:8080/api/v1/webhook/callbackRELAY_LOCAL_CALLBACK_URL defaults to http://127.0.0.1:${PORT}/api/v1/webhook/callback and only needs setting if you’ve moved the recorder off the default port.
Create or retrieve your Connect relay token.
Either select Connect relay in the dashboard or set SERVER_MODE=relay.
Put the ingest URL into RELAY_INGEST_URL.
Put the WebSocket URL into RELAY_SUBSCRIBE_URL.
Restart ReplayVOD.
Confirm the logs show Relay client started and that EventSub subscriptions become enabled.
Skip Connect if your recorder already has a stable public HTTPS endpoint and you’re comfortable exposing /api/v1/webhook/callback directly. See EventSub for that setup.