Repository navigation
feat(server)!: own the wildcard certificate and route custom domains through Traefik's file provider - #36
Merged
Conversation
…through Traefik's file provider Claude-Session: https://claude.ai/code/session_01LCd93wpNDDvqEJpWZuX4oQ
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.
Buzz now obtains its own wildcard certificate and routes custom domains through Traefik's file provider, so the proxy needs no Buzz-specific configuration. On Coolify, Reset configuration to default is always safe.
What changes
BUZZ_DOMAINand*.BUZZ_DOMAINover Cloudflare DNS-01 with certbot'sacmelibrary, keeps it in/data/tls, and writes it tobuzz-certificate.yamlin the Traefik dynamic directory. A missing or changed file is rewritten within 5 minutes without a new order.buzz-routes.yamlin the same directory, acknowledged through a revision router. Traefik's API, the control token, thebuzz-adminentrypoint and the HTTP provider are no longer used./healthreports"status": "degraded"(still HTTP 200) when the certificate can't be obtained, saved, published or served, or when custom-domain routers exist but the dynamic directory is unset. In that last case Buzz keeps serving its own sites and answers421for custom hostnames instead of refusing to start.ERROR: Invalid <NAME>. Empty values count as unset.PATH, nouv, digest-pinned bases.Breaking changes for self-hosters
uv.BUZZ_CLOUDFLARE_DNS_API_TOKEN(Zone:Read and DNS:Edit on the zone).CF_API_TOKENtoBUZZ_CLOUDFLARE_DNS_API_TOKENand deleteACME_EMAIL. Local Traefik edits move tocompose.override.ymlasTRAEFIK_*keys.BUZZ_TRAEFIK_CONTROL_TOKEN,BUZZ_TRAEFIK_API_URL,BUZZ_TRAEFIK_API_AUTHORIZATION,BUZZ_TRAEFIK_CONTROL_PORT,BUZZ_CUSTOM_DOMAIN_ACME_CA_SERVER,BUZZ_CUSTOM_DOMAIN_ROUTING_ENABLED,BUZZ_CUSTOM_DOMAIN_ADMISSION_ENABLED,BUZZ_CLOUDFLARE_DIAGNOSTICS_ENABLED,BUZZ_CLOUDFLARE_ACTIVATION_ENABLED,BUZZ_AUTOMATIC_DOMAIN_TRANSITION_ADMISSION_ENABLED.BUZZ_TRAEFIK_CERT_RESOLVERnow defaults toletsencrypt, which must be HTTP-01./healthcan return"status": "degraded"with HTTP 200. Monitors matching the exact body{"status":"ok"}must check thestatusfield.The upgrade steps are in the Coolify and Docker Compose self-hosting pages.
Testing
ghcr.io/infomiho/buzzstatic:latestto the new image.static.miho.devwith a zone-scoped Cloudflare token.https://claude.ai/code/session_01LCd93wpNDDvqEJpWZuX4oQ