fix(frigate): publish the authenticated HTTPS listener - #4997
Draft
tang-vu wants to merge 1 commit into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Frigate's published browser port currently forwards to internal port 5000, where its UI/API bypass login. Forward it to the authenticated HTTPS listener on container port 8971 and carry HTTPS browser metadata through catalog generation, service discovery, API responses and dashboard/sidebar links.
Why this matters
An operator can enable Frigate authentication yet still expose an unauthenticated browser/API through the ODS port mapping. With the exact shipped 0.15.0 image, a disposable instance returned 200 for
/api/configthrough the old HTTP mapping and 401 through HTTPS 8971. The corrected mapping enforces the application's configured authentication at the published browser boundary. Loopback remains the default binding; internal health still uses HTTP port 5000.The producer is
service.ui_scheme: https; catalog and installed-manifest readers preserve it, API/sidebar/status serializers carry it, and browser URL generation uses it. Onlyhttpsselects TLS; existing services retain HTTP defaults and explicitpublic_urloverrides keep precedence. The README covers generated first-login credentials, persistent accounts/JWT secret, self-signed certificates, existing TLS/auth overrides, trusted reverse proxies and rollback. The camera RTSP password is distinct from web login credentials. This change preserves existing operator configuration and cannot require login ifauth.enabledwas explicitly disabled.Regenerating the catalog also restores metadata for the already-tracked, disabled-by-default
pixel-inferenceservice that was absent from the checked-in catalog. Its manifest and.disabledCompose file are unchanged; this is discovery metadata, not activation. Other catalog additions in this batch contain the same generated entry, which must appear only once in the combined catalog.Overlap check
Searched open and closed PRs for
Frigate auth,Frigate 8971,Frigate TLS,serviceUrl httpsandui_scheme; searched changed production paths for Frigate, URL helpers/registry, catalog generator and API manifest/link readers. #404 restricts bind addresses; #387/#716 concern credential/setup configuration. #1760 adds explicit public-URL overrides, whose precedence is preserved. #1613 changes generic link/path navigation and Chroma health, but does not switch Frigate to its authenticated listener or propagate HTTPS browser metadata. #4735/#4753/#4779 validate user-provided URL strings, a separate input contract. No existing PR covers this published Frigate authentication boundary.Validation
http://localhost:8971link and passes onhttps://localhost:8971. Installed-manifest/API regression also fails before the change. Focused dashboard, extension, URL and sidebar-registry suites: 50 passed. Lint: 0 errors, 598 existing warnings. Production build passes.git diff --checkpass.make gatereproduces the existing root/WSL no-sudo fixture failure; the complete local gate is not claimed green.Keep draft for independent human review of the authentication and link changes. Live evidence covers Linux amd64 only; browser certificate onboarding, cameras/RTSP/WebRTC, hardware acceleration, ARM and native macOS/Windows activation remain unverified. Port 5000 is still trusted inside the Docker network; RTSP/WebRTC controls are outside this web-listener change. Restore a cold configuration/database backup if an unrelated upgrade needs rollback, and retain the authenticated mapping: reverting it removes browser login enforcement again. Upstream 0.15.0 contract: https://github.com/blakeblackshear/frigate/blob/v0.15.0/docs/docs/configuration/authentication.md.