You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Valid additions and updates still apply; deletions wait for a clean reload.
Clean empty files still remove all file routes, and Docker/agent removals remain supported during partial failures.
Core/Configuration: Explicit empty lists remain distinct from omitted or null values when converting configuration values. (49e22e0)
Empty lists can disable inherited idlewatcher notification targets.
Deployment/Docker: The main image sets HOME=/app so the OVH SDK can check its optional configuration without permission errors when running as a non-root user. (ec19a07, #275)
Structured options, including arrays and nested objects, are supported while option values remain redacted in JSON/YAML output.
Boolean provider options use labeled checkboxes in both forms, supporting existing boolean and string values while saving edits as booleans. (yusing/godoxy-webui@b79f285)
Switching providers refreshes option controls and clears old option values in the selected certificate form without changing the other form. (yusing/godoxy-webui@b79f285)
Inferred field labels use spaced words, such as Zone Token and Polling Interval. Generic duration guidance no longer replaces duration field names; other descriptions and raw configuration keys stay unchanged. (yusing/godoxy-webui@b79f285)
Concurrent registry additions and removals no longer overwrite each other.
Listing a cleared registry no longer panics after removals.
Core/Rules: Repeated Basic Auth checks no longer panic on missing or invalid credentials. (yusing/goutils@1ab11c9)
Core/API: API error responses no longer fail when an error cause is absent. (yusing/goutils@78359dd)
Core/Listeners: HTTPS listeners support PROXY protocol without startup panics. (yusing/goutils@8803127)
Core/Events: Event IDs avoid deterministic collisions across processes. (yusing/goutils@c71a1e5)
New Features
Core/Idlewatcher: Optional sleep/pause and wake notifications use configured notification providers. (1025dc0, #264)
Enable them globally with defaults.idlewatcher.notify or per route with idlewatcher.notify; they are off by default.
Set to to provider names. An absent route block inherits global settings; an empty block inherits global targets, or uses all current providers at send time when neither block specifies targets.
Set notify: {to: []} to disable notifications and override global targets. A route with named targets can override a disabled global default.
Docker routes with proxy.idle_timeout can select targets with proxy.idle_notify_to: gotify,ntfy, or disable notifications with proxy.idle_notify_to: "".
Initial status, reloads, and dependency-only watchers stay silent; notifications report transitions rather than readiness or errors.
WebUI/Navigation: Header branding links to GitHub, and the version links to releases. (yusing/godoxy-webui@12f944b, webui #22)
Core/Logging: Startup logs show effective environment settings and their sources. (4824673, e60a798)
Sensitive setting values are redacted.
Unknown GODOXY_ variables produce name-only warnings.
Selected unprefixed app variables produce migration warnings but remain supported.
Set GODOXY_HTTPS_ADDR= for HTTP-only operation without a certificate.
An explicitly empty HTTPS address disables shared HTTP/3 and TCP SNI routing.
Dedicated route listeners are unaffected by disabling shared HTTPS.
The redirectHTTP middleware skips redirects when shared HTTPS is disabled.
Direct HTTP login requires GODOXY_API_JWT_SECURE=false.
Keep secure login cookies when clients connect through an external TLS-terminating proxy.
Failed startup closes partially started servers without disrupting existing TCP SNI routes.
Core/GeoIP: MaxMind downloads City databases by default. (4824673)
Set GODOXY_MAXMIND_COUNTRY_ONLY=true where City downloads are unavailable or Country-only data is required.
An existing Country database does not satisfy the new default, so a City database must be downloaded.
City databases provide the location data needed by timezone ACL rules.
City databases can exceed 100 MiB.
Deployment/Compose: The updated Compose example requires explicit deployment settings. (4824673)
When adopting the updated example, populate TAG, GODOXY_UID, GODOXY_GID, DOCKER_SOCKET, and LISTEN_ADDR in .env.
Set GODOXY_DOCKER_HOST in .env because Compose no longer injects a Docker endpoint.
Security
Core/ACL: Later country and timezone ACL rules match correctly. (3723f81, #270)
A nonmatching geographic rule no longer prevents a later deny or allow rule from matching.
Core/WebSocket: Local WebSocket endpoints reject cross-host origins. (yusing/goutils@7967281)
External reverse proxies must preserve the public Host header for same-host origin checks.
Closed WebSocket streams report closure instead of successful empty reads or writes.
Core/Redaction: Redacted output fully masks one- and two-character secrets. (yusing/goutils@c71a1e5)
Unicode redaction preserves valid character boundaries and JSON output.
CI
Contract Checks: Certificate-provider and environment contract checks run on pushes to main only when matching source, dependency, checked-output, workflow, or submodule-pointer paths change. Pull-request checks and all job steps remain unchanged. (881a4ca)
Full Changelog
c3b184d chore(webui): track reorganized main history
881a4ca ci: limit contract checks to relevant push changes
b406ad2 fix(autocert): keep duration guidance out of field labels
b28305a fix(autocert): integrate provider form corrections
5974829 fix(autocert): keep concrete provider options in sync