diff --git a/apps/docs/docs/integrations/pi-hole/index.mdx b/apps/docs/docs/integrations/pi-hole/index.mdx index 65612dbe2..d6f2f5baf 100644 --- a/apps/docs/docs/integrations/pi-hole/index.mdx +++ b/apps/docs/docs/integrations/pi-hole/index.mdx @@ -15,7 +15,8 @@ import { piHoleIntegration } from "."; - Homarr supports both Pi-hole v5 and v6. It automatically detects the version and uses the correct API. + Homarr supports both Pi-hole v5 and v6. It automatically detects the version and uses the correct API. If your reverse + proxy restricts API paths, allow the public `/api/info/login` endpoint used to detect Pi-hole v6. ### Widgets & Capabilities diff --git a/packages/integrations/src/pi-hole/pi-hole-integration-factory.ts b/packages/integrations/src/pi-hole/pi-hole-integration-factory.ts index 346b40642..047509e89 100644 --- a/packages/integrations/src/pi-hole/pi-hole-integration-factory.ts +++ b/packages/integrations/src/pi-hole/pi-hole-integration-factory.ts @@ -8,13 +8,13 @@ import { PiHoleIntegrationV6 } from "./v6/pi-hole-integration-v6"; export const createPiHoleIntegrationAsync = async (input: IntegrationInput) => { try { const baseUrl = removeTrailingSlash(input.url); - const url = new URL(`${baseUrl}/api/info/version`); + const url = new URL(`${baseUrl}/api/info/login`); const response = await fetchWithTrustedCertificatesAsync(url); /** * In pi-hole 5 the api was at /admin/api.php, in pi-hole 6 it was moved to /api - * For the /api/info/version endpoint, the response is 404 in pi-hole 5 - * and 401 in pi-hole 6 + * The public /api/info/login endpoint returns 404 in pi-hole 5 + * and 200 in pi-hole 6, without requiring an authenticated session. */ if (response.status === 404) { return new PiHoleIntegrationV5(input);