Skip to content

version 0.16.0

Choose a tag to compare

@vicanso vicanso released this 12 Oct 14:43
· 42 commits to main since this release

0.16.0 - 2026-10-12

⛰️ Features

  • (install) Optional systemd service, stop the unit with SIGTERM - (35caf86)
  • (logger) JSON access log, stdout/stderr and remote syslog targets - (7058b1c)
  • (upstream) Send the PROXY protocol header to backends - (af17765)
  • (webhook) "*" in webhook_notifications is every category - (424fd80)
  • (webhook) Notifications to ntfy - (98f2bff)
  • A name and labels for a deployment, in notifications, access log and traces - (f803780)
  • Add expect_body health checks, config history for every file layout, more accounts for --admin - (d26b403)
  • Add DNS SRV discovery, RSA+ECDSA certificate pairs, OCSP stapling and the oidc plugin - (77ba8bf)
  • Add PROXY protocol, least_conn and fail_open, ACME directory and EAB, etcd over TLS, admin roles and API tokens - (688c6c6)
  • Add cache controls, hashed basic auth, access log filters, upstream and listener mTLS - (9913d01)
  • Add jwt claim rules, compression types and skip, $ENV/$FILE config references, --diff, more metrics - (e058074)
  • Add maintenance and health plugins, redirect rules, cors origin list, forwarded headers behind trusted proxies - (4b51d32)
  • Add request_headers and uri_block plugins, directory fallback, limit quota headers, strict mode - (7909f94)

🐛 Bug Fixes

  • (acme) Go on with a challenge record that is already there - (8852b92)
  • (acme) Bound CA requests, accept ready orders, fix DNS zones - (b29acc1)
  • (plugin) Redirect port, jwt nbf, stacked limits and body filters - (e034c14)
  • (proxy) Keep private responses out of the cache, harden error pages - (ec13ba2)
  • No hand-over restart from a foreground process; releases start as drafts - (e4bc1be)
  • Say what waits for a restart, and keep a restart from ending with no process - (598464b)
  • Compression and cache seams, in-flight gauge, client aborts, log level default - (b7fe521)
  • Control panel trusted proxies, cache skip, stray config files, match_query, location metrics - (f6070b3)
  • Tighten jwt leeway, admin token and certificate listing, forward_auth headers - (fc86a38)
  • Resolve suspected issues in acme, cache, reload and plugins - (e3aeab2)
  • Harden metrics, rewrite, jwt expiry, admin and certificate reload - (56ee9ed)
  • Harden ip-based plugins, rate limit, config warnings and secrets - (2e43876)
  • Close bugs across admin, config, proxy and plugins - (2d895b2)
  • Close the last two access-control gaps - (a8d8196)
  • Low-severity findings across plugins, logging and restart - (8aa7f85)
  • Config storage, cache purge and upstream validation - (4b40236)
  • Catch config values that only failed at runtime - (dc2a540)
  • Close three access control gaps - (fd6fe1a)
  • Follow-up fixes from the review of the severe findings - (44e75ed)
  • Close the 16 severe findings of the code review - (cc2e68a)

📚 Documentation

  • Shorter readme, lead with what sets pingap apart - (26bb6ff)
  • Upgrading from 0.15 to 0.16 - (b36d34b)
  • Welcome pull requests, animated diagrams in the readme - (24a2213)

⚡ Performance

  • Cut hot-path costs in error pages, cache eviction, access log, acme and reload - (2a5ca4c)
  • Cut per-request lookups and unblock health checks - (5c04e35)

⚙️ Miscellaneous Tasks

  • (cache) Replace deprecated AtomicU64::fetch_update with update - (624b7f1)
  • Check the Windows build on every push and pull request - (d808572)
  • End-to-end checks, admin form coverage, i18n key parity - (74250fa)
  • Replace free-disk-space and docker-run-action with shell steps - (f687924)
  • Narrow where the GITHUB_TOKEN can be read - (23710b9)
  • Require the CLA box to be ticked on pull requests - (3743209)

Build

  • Add a distroless image variant - (65c10e8)
  • Run the Docker image on the builder's Debian release - (a47888f)