From b1d7187ef8c22465d87bf4f032441d8c94cc8a44 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sun, 11 Jan 2026 09:18:41 -0700 Subject: [PATCH] Handle options file for go2rtc option --- .../rootfs/usr/local/go2rtc/create_config.py | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/docker/main/rootfs/usr/local/go2rtc/create_config.py b/docker/main/rootfs/usr/local/go2rtc/create_config.py index 8b8aef6d9..fb701a9b6 100644 --- a/docker/main/rootfs/usr/local/go2rtc/create_config.py +++ b/docker/main/rootfs/usr/local/go2rtc/create_config.py @@ -23,8 +23,28 @@ sys.path.remove("/opt/frigate") yaml = YAML() # Check if arbitrary exec sources are allowed (defaults to False for security) -ALLOW_ARBITRARY_EXEC = os.environ.get( - "GO2RTC_ALLOW_ARBITRARY_EXEC", "false" +allow_arbitrary_exec = None +if "GO2RTC_ALLOW_ARBITRARY_EXEC" in os.environ: + allow_arbitrary_exec = os.environ.get("GO2RTC_ALLOW_ARBITRARY_EXEC") +elif ( + os.path.isdir("/run/secrets") + and os.access("/run/secrets", os.R_OK) + and "GO2RTC_ALLOW_ARBITRARY_EXEC" in os.listdir("/run/secrets") +): + allow_arbitrary_exec = ( + Path(os.path.join("/run/secrets", "GO2RTC_ALLOW_ARBITRARY_EXEC")) + .read_text() + .strip() + ) +# check for the add-on options file +elif os.path.isfile("/data/options.json"): + with open("/data/options.json") as f: + raw_options = f.read() + options = json.loads(raw_options) + allow_arbitrary_exec = options.get("go2rtc_allow_arbitrary_exec") + +ALLOW_ARBITRARY_EXEC = allow_arbitrary_exec is not None and str( + allow_arbitrary_exec ).lower() in ("true", "1", "yes") FRIGATE_ENV_VARS = {k: v for k, v in os.environ.items() if k.startswith("FRIGATE_")}