v0.20.0
Breaking
- WebUI: No longer requires host network mode, to migrate
- remove
network_mode: host - remove
HOSTNAMEandPORTenvironment variable - remove
proxy.#1.portorproxy.godoxy.portlabel
- remove
- WebUI: Replaced Next.js middleware with GoDoxy rules, in case WebUI cannot load properly:
- Clear browser cache
- Clear local storage (right click -> Inspect -> Storage -> Local Storage -> Right click on the domain name -> Delete All)
New
- Core/API: Rules playground endpoint.
- Core/API/JSON:
sonicbased JSON handling for gin. - Core/Rules: Post-request rules system with response manipulation (#160), variables support
- Core/Autocert: Added
hostingerprovider. - WebUI: New Rules Playground page with editor, mock request/response, presets, and run UI.
- WebUI: Lite build variant that runs static WebUI build with nginx (lite Dockerfiles, config, compose).
- Smaller image size and smaller memory footprint in expense of responsiveness
- Suitable for resource constrained environments
- Docker image:
github.com/yusing/godoxy-frontend:latest-lite - Add these to
tmpfs
- /var/cache/nginx:uid=101,gid=101 - /run:uid=101,gid=101
Changes
- Core: Upgrade to Go 1.25.3 and dependencies; health checks now use
fasthttp. - WebUI: Migrate from pnpm to bun; workflows build both standard and lite images.
- WebUI: Dependencies upgraded (incl. Next.js 16); Dockerfiles and configs updated.
- WebUI: Rule types updated; added
rule_filefield.
Fixes
- Core/Metrics: JSON format/marshaling fixes
- Core/Gotify: Proper error when token missing.
- Core/Favicon: Include status code in error messages.
- Core/Scripts: Correct
DOCKER_SOCKETfor rootful setup. - Core/Tasks: Ensure
onFinishruns; replace semaphore with channel. - Core/Validation: Fix validation not working for some fields
- WebUI: Fix MapInput (key-value input boxes) key collision
- WebUI: Layout and scrolling issue with YAML editor
- WebUI: Some graphs always show "Not enough data for selected period"
Performance
- Core/Health: Faster health checks; prevent Docker client resource hogging.
- Core/Memory: Tiered/unsized byte pools; string interning/dedup in metrics/tasks; replace string enums with
uint8; reduced GC pressure and improved HTTP latency - Core/Logging: Faster multi-line formatting.