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);
   });
 });