From c6074bdbc5a357a914d048453744c7adc1e96b14 Mon Sep 17 00:00:00 2001 From: Jonathan Sykes Date: Sat, 3 Oct 2026 22:11:24 +0800 Subject: [PATCH] Load the direct-transfer protocol from public/ inside the container image --- server/direct-relay.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/direct-relay.js b/server/direct-relay.js index e53df7f..0750920 100644 --- a/server/direct-relay.js +++ b/server/direct-relay.js @@ -1,5 +1,13 @@ import { randomBytes } from 'node:crypto'; -import protocol from '../frontend/direct-protocol.js'; +import { existsSync } from 'node:fs'; +import { createRequire } from 'node:module'; + +// The image copies frontend/ to ./public, so fall back to that path in production. +const protocol = createRequire(import.meta.url)( + existsSync(new URL('../frontend/direct-protocol.js', import.meta.url)) + ? '../frontend/direct-protocol.js' + : './public/direct-protocol.js', +); // One instance per authenticated room. It has no media endpoint or binary path. export function createDirectRelay({ now = Date.now } = {}) {