Add livekit config option
This commit is contained in:
@@ -6,6 +6,7 @@ pub struct RelayConfig {
|
||||
pub groups: Option<serde_json::Value>,
|
||||
pub management: Option<serde_json::Value>,
|
||||
pub blossom: Option<serde_json::Value>,
|
||||
pub livekit: Option<serde_json::Value>,
|
||||
pub push: Option<serde_json::Value>,
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ impl Provisioner {
|
||||
let url = format!("{}/relay/{}", self.base_url.trim_end_matches('/'), relay.id);
|
||||
|
||||
let blossom_default = relay.plan != "free";
|
||||
let livekit_default = relay.plan != "free";
|
||||
let cfg = relay.config.as_ref();
|
||||
let host = format!("{}.{}", relay.subdomain, self.relay_domain);
|
||||
let secret = generate_secret_hex();
|
||||
@@ -72,6 +73,9 @@ impl Provisioner {
|
||||
"blossom": {
|
||||
"enabled": cfg_bool(cfg, |c| &c.blossom, "enabled", blossom_default),
|
||||
},
|
||||
"livekit": {
|
||||
"enabled": cfg_bool(cfg, |c| &c.livekit, "enabled", livekit_default),
|
||||
},
|
||||
"roles": {
|
||||
"member": { "pubkeys": [], "can_invite": true, "can_manage": false }
|
||||
},
|
||||
@@ -102,6 +106,7 @@ impl Provisioner {
|
||||
let url = format!("{}/relay/{}", self.base_url.trim_end_matches('/'), relay.id);
|
||||
let host = format!("{}.{}", relay.subdomain, self.relay_domain);
|
||||
let blossom_default = relay.plan != "free";
|
||||
let livekit_default = relay.plan != "free";
|
||||
let cfg = relay.config.as_ref();
|
||||
let patch = json!({
|
||||
"host": host,
|
||||
@@ -127,6 +132,9 @@ impl Provisioner {
|
||||
"blossom": {
|
||||
"enabled": cfg_bool(cfg, |c| &c.blossom, "enabled", blossom_default),
|
||||
},
|
||||
"livekit": {
|
||||
"enabled": cfg_bool(cfg, |c| &c.livekit, "enabled", livekit_default),
|
||||
},
|
||||
});
|
||||
let auth = self.build_auth_header(&url, HttpMethod::PATCH).await?;
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ type RelayDetailCardProps = {
|
||||
onToggleGroups?: () => void
|
||||
onToggleManagement?: () => void
|
||||
onToggleMediaStorage?: () => void
|
||||
onToggleLivekitSupport?: () => void
|
||||
onTogglePushNotifications?: () => void
|
||||
}
|
||||
|
||||
@@ -246,7 +247,7 @@ export default function RelayDetailCard(props: RelayDetailCardProps) {
|
||||
/>
|
||||
</Show>
|
||||
</ToggleField>
|
||||
<ToggleField label="Audio Rooms">
|
||||
<ToggleField label="LiveKit support">
|
||||
<Show
|
||||
when={r().plan !== "free"}
|
||||
fallback={
|
||||
@@ -260,7 +261,7 @@ export default function RelayDetailCard(props: RelayDetailCardProps) {
|
||||
>
|
||||
<ToggleButton
|
||||
enabled={cfg()?.livekit.enabled ?? true}
|
||||
onToggle={props.onToggleMediaStorage}
|
||||
onToggle={props.onToggleLivekitSupport}
|
||||
/>
|
||||
</Show>
|
||||
</ToggleField>
|
||||
|
||||
@@ -104,6 +104,9 @@ export type RelayConfig = {
|
||||
blossom: {
|
||||
enabled: boolean
|
||||
}
|
||||
livekit: {
|
||||
enabled: boolean
|
||||
}
|
||||
push: {
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
@@ -45,6 +45,9 @@ export default function AdminRelayDetail() {
|
||||
blossom: {
|
||||
enabled: config?.blossom.enabled ?? (relay()?.plan !== "free"),
|
||||
},
|
||||
livekit: {
|
||||
enabled: config?.livekit.enabled ?? (relay()?.plan !== "free"),
|
||||
},
|
||||
push: {
|
||||
enabled: config?.push.enabled ?? true,
|
||||
},
|
||||
@@ -131,6 +134,15 @@ export default function AdminRelayDetail() {
|
||||
void updateFlags(nextConfig, config)
|
||||
}
|
||||
|
||||
function toggleLivekitSupport() {
|
||||
const config = withDefaults(relay()?.config)
|
||||
const nextConfig = {
|
||||
...config,
|
||||
livekit: { enabled: !config.livekit.enabled },
|
||||
}
|
||||
void updateFlags(nextConfig, config)
|
||||
}
|
||||
|
||||
return (
|
||||
<PageContainer>
|
||||
<BackLink href="/admin/relays" label="Relays" />
|
||||
@@ -157,6 +169,7 @@ export default function AdminRelayDetail() {
|
||||
onToggleGroups={toggleGroups}
|
||||
onToggleManagement={toggleManagement}
|
||||
onToggleMediaStorage={toggleMediaStorage}
|
||||
onToggleLivekitSupport={toggleLivekitSupport}
|
||||
onTogglePushNotifications={togglePushNotifications}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -13,6 +13,7 @@ const DEFAULT_CONFIG: RelayConfig = {
|
||||
groups: { enabled: false, auto_join: false },
|
||||
management: { enabled: false },
|
||||
blossom: { enabled: false },
|
||||
livekit: { enabled: false },
|
||||
push: { enabled: false },
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,9 @@ export default function RelayDetail() {
|
||||
blossom: {
|
||||
enabled: config?.blossom.enabled ?? (relay()?.plan !== "free"),
|
||||
},
|
||||
livekit: {
|
||||
enabled: config?.livekit.enabled ?? (relay()?.plan !== "free"),
|
||||
},
|
||||
push: {
|
||||
enabled: config?.push.enabled ?? true,
|
||||
},
|
||||
@@ -132,6 +135,15 @@ export default function RelayDetail() {
|
||||
void updateFlags(nextConfig, config)
|
||||
}
|
||||
|
||||
function toggleLivekitSupport() {
|
||||
const config = withDefaults(relay()?.config)
|
||||
const nextConfig = {
|
||||
...config,
|
||||
livekit: { enabled: !config.livekit.enabled },
|
||||
}
|
||||
void updateFlags(nextConfig, config)
|
||||
}
|
||||
|
||||
return (
|
||||
<PageContainer>
|
||||
<BackLink href="/relays" label="Relays" />
|
||||
@@ -158,6 +170,7 @@ export default function RelayDetail() {
|
||||
onToggleGroups={toggleGroups}
|
||||
onToggleManagement={toggleManagement}
|
||||
onToggleMediaStorage={toggleMediaStorage}
|
||||
onToggleLivekitSupport={toggleLivekitSupport}
|
||||
onTogglePushNotifications={togglePushNotifications}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -13,6 +13,7 @@ const DEFAULT_CONFIG: RelayConfig = {
|
||||
groups: { enabled: false, auto_join: false },
|
||||
management: { enabled: false },
|
||||
blossom: { enabled: false },
|
||||
livekit: { enabled: false },
|
||||
push: { enabled: false },
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ const DEFAULT_CONFIG: RelayConfig = {
|
||||
groups: { enabled: true, auto_join: true },
|
||||
management: { enabled: true },
|
||||
blossom: { enabled: false },
|
||||
livekit: { enabled: false },
|
||||
push: { enabled: true },
|
||||
}
|
||||
|
||||
@@ -51,6 +52,7 @@ export default function RelayNew() {
|
||||
config: {
|
||||
...DEFAULT_CONFIG,
|
||||
blossom: { enabled: plan() !== "free" },
|
||||
livekit: { enabled: plan() !== "free" },
|
||||
},
|
||||
})
|
||||
navigate(`/relays/${relay.id}`)
|
||||
|
||||
Reference in New Issue
Block a user