Controller configuration
The controller does not have a dedicated orchestrator settings section. Instead, the URLs of proxied services must be replaced with the URL of the orchestrator.
The controller is generally unaware of the orchestrator, from its perspective, the orchestrator acts as if it was the proxied service.
Roomserver
The orchestrator proxies the RoomServer's WebAPI as well as the signaling connection.
To proxy the RoomServer, change the service_url and api_key in the controller's roomserver section to
the Orchestrator's URL and api key:
controller.toml:
[roomserver]
# The orchestrator cannot proxy an internal RoomServer
kind = "external"
# The orchestrator's URL that proxies the RoomServer
service_url = "http://localhost:11222/roomserver/"
# The orchestrator's API key
api_key = { id = "orchestrator", secret = "secret" }
# ...
Warning
When proxying the RoomServer, the Orchestrator must also proxy LiveKit signaling (See LiveKit)
The recorder service is configured the same way in their module sections:
Recorder
Replace the url and api_key with the orchestrators api key and recorder proxy endpoint.
controller.toml:
[roomserver.modules.recording]
url = "http://localhost:11222/recording/"
api_key = { id = "orchestrator", secret = "secret" }
LiveKit
Warning
When proxying the RoomServer, the LiveKit signaling must be proxied by the orchestrator as well. The endpoint
<public_url>livekit/ must be reachable by clients.
Set the LiveKit public URL in the controller to the orchestrator's public URL, include the
livekit/ path segment:
controller.toml:
[roomserver.modules.livekit]
# Clients connect to LiveKit through the orchestrator
public_url = "<orchestrator-public-url>/livekit/"
# ...