diff --git a/src/server/utils/validator.ts b/src/server/utils/validator.ts index a72f4b5d..f32454bf 100644 --- a/src/server/utils/validator.ts +++ b/src/server/utils/validator.ts @@ -98,7 +98,9 @@ export const isValidWebhookUrl = (input: string): boolean => { url.protocol === "https:" || // Allow http for localhost only. (url.protocol === "http:" && - ["localhost", "0.0.0.0", "127.0.0.1"].includes(url.hostname)) + ["localhost", "0.0.0.0", "127.0.0.1", "host.docker.internal"].includes( + url.hostname, + )) ); } catch { return false; diff --git a/tests/unit/validator.test.ts b/tests/unit/validator.test.ts index f1561225..2e0b11f0 100644 --- a/tests/unit/validator.test.ts +++ b/tests/unit/validator.test.ts @@ -30,5 +30,6 @@ describe("isValidWebhookUrl", () => { expect(isValidWebhookUrl("http://localhost:3000")).toBe(true); expect(isValidWebhookUrl("http://0.0.0.0:3000")).toBe(true); expect(isValidWebhookUrl("http://user:pass@127.0.0.1:3000")).toBe(true); + expect(isValidWebhookUrl("http://host.docker.internal:3000")).toBe(true); }); });