github caddyserver/caddy v2.7.0-beta.1

latest releases: v2.8.4, v2.8.3, v2.8.2...
pre-release16 months ago

This is our first beta release of Caddy 2.7! Please try it out before we tag the stable release.

Highlights

  • ⚠️ The ask endpoint is now required to enable On-Demand TLS (b97c76f) for catch-all or wildcard hosts. Our docs have always mentioned this is required in production environments, but now the code enforces it. The ask endpoint is not required for local-only or internal-only names (#5384 and a7af7c4).
  • New default template for the file server's "browse" listings - more modern, easier to use, grid view, filetype-specific icons, and better dark mode (see #5427 for more screenshots and info)
    list view
    grid view
  • Reverse proxy now supports the PROXY protocol (#5424)
  • Caddyfile import arg placeholders support slice syntax, e.g. {args[2:]} (#5249)
  • Experimental new short flags for the CLI. (#5379)
  • HTTP/3 performance improvements (upstream in quic-go) including enabling 0-RTT.
  • Caddyfile now supports Heredoc syntax for long embedded strings/documents. (#5385)
  • @francislavoie implemented a suite of enhancements to bring you more reliable, trustworthy client IP information, even through proxies and CDNs (#5104)
  • ⚠️ The long-deprecated lookup_srv feature of the reverse proxy has been removed. It was replaced with the dynamic upstreams feature in 2.6. (#5396)
  • Customizable "fallback" policy for reverse proxy in case the primary policy isn't applicable (#5488)
  • EXPERIMENTAL: Define "named routes" to reuse them without copying. Caddyfile snippets are useful for reusing config, but reusing the same HTTP routes involves lots of copied config and memory bloat. Named routes let you define a route once and reuse it throughout your HTTP server without copying. It is available for JSON and Caddyfile configs. (#5107)
  • Many many bug fixes you may or may not notice 🙃

Thank you to everyone who contributed! And thank you to our sponsors who truly make this project possible.

New Contributors

Full Changelog: v2.6.4...v2.7.0-beta.1

Changelog

  • 3f20a7c acmeserver: Configurable resolvers, fix smallstep deprecations (#5500)
  • b1366c7 build(deps): bump actions/setup-go from 3 to 4 (#5474)
  • f3379f6 caddyfile: Fix heredoc fuzz crasher, drop trailing newline (#5404)
  • 960150b caddyfile: Implement heredoc support (#5385)
  • 8bc05e5 caddyfile: Implement variadics for import args placeholders (#5249)
  • 53b6fab caddyfile: Stricter parsing, error for brace on new line (#5505)
  • cfc85ae caddyhttp: Add a getter for Server.name (#5531)
  • 05e9974 caddyhttp: Determine real client IP if trusted proxies configured (#5104)
  • c05e389 caddyhttp: Enable 0-RTT QUIC (#5425)
  • 8537586 caddyhttp: Fix vars_regexp matcher with placeholders (#5408)
  • 1c9ea01 caddyhttp: Impl ResponseWriter.Unwrap(), prep for Go 1.20's ResponseController (#5509)
  • cbf16f6 caddyhttp: Implement named routes, invoke directive (#5107)
  • 2b3046d caddyhttp: Log request body bytes read (#5461)
  • 96919ac caddyhttp: Refactor cert Managers (fix #5415) (#5533)
  • d8d87a3 caddyhttp: Serve http2 when listener wrapper doesn't return *tls.Conn (#4929)
  • 808b05c caddyhttp: Update quic's TLS configs after reload (#5517) (fix #4849)
  • a7af7c4 caddytls: Allow on-demand w/o ask for internal-only
  • a02ecb0 caddytls: Check for nil ALPN; close #5470 (#5473)
  • faf0399 caddytls: Configurable fallback SNI (#5527)
  • e16a886 caddytls: Eval replacer on automation policy subjects (#5459)
  • be53e43 caddytls: Relax the warning for on-demand (#5384)
  • b97c76f caddytls: Require 'ask' endpoint for on-demand TLS
  • 0cc49c0 caddytls: Zero out throttle window first (#5443)
  • b301a3d celmatcher: Implement pkix.Name conversion to string (#5492)
  • 096971e ci/cd: ship tarballs with vendored deps (#5403)
  • 5ded580 cmd: Adjust documentation for commands (#5377)
  • 508cf2a cmd: Create pidfile before config load (close #5477)
  • 9e69195 cmd: Expand cobra support, add short flags (#5379)
  • 5ebb7d4 cmd: Reduce spammy logs from --watch
  • 79de6df cmd: Strict unmarshal for validate (#5383)
  • 205b142 cmd: Support ' quotes in envfile parsing (#5437)
  • bf54892 cmd: make caddy fmt hints more clear (#5378)
  • f6bab8b context: Rename func to AppIfConfigured (#5397)
  • 99d4705 core: Eliminate unnecessary shutdown delay on Unix (#5413)
  • c6ac350 core: Return default logger if no modules loaded
  • b3f0cea encode: flush status code when hijacked. (#5419)
  • c803286 fastcgi: Fix capture_stderr (#5515)
  • 571fc03 feature: watch include directory (#5521)
  • f9bd2d3 fileserver: Add color-scheme meta tag (#5475)
  • 6cc3cbb fileserver: New file browse template (#5427)
  • 94d41a9 fileserver: Remove trailing slash on fs filenames (#5417)
  • 52d7335 fileserver: Use EscapedPath for browse (#5534)
  • 1af419e go.mod: Update some dependencies
  • 774f228 go.mod: Upgrade CertMagic
  • 0de6064 go.mod: Upgrade CertMagic again
  • 9e94331 go.mod: Upgrade dependencies
  • 8cb1bb4 go.mod: Upgrade quic-go to v0.33.0 (Go 1.19 min)
  • 36546cd go.mod: Upgrade several dependencies
  • e8352ae headers: Add > Caddyfile shortcut for enabling defer (#5535)
  • dd86171 headers: Support deleting all headers as first op (#5464)
  • 330be2d httpcaddyfile: Adjust path matcher sorting to solve for specificity (#5462)
  • 1aef807 log: Make sink logs encodable (#5441)
  • cdce452 logging: Actually honor the SoftStart parameter
  • f0e3981 logging: Add traceID field to access logs when tracing is active (#5507)
  • f3e8b9d logging: Soft start for net writer (close #5520)
  • b6fe5d4 proxyprotocol: Add PROXY protocol support to reverse_proxy, add HTTP listener wrapper (#5424)
  • f5a13a4 replacer: Add HTTP time format (#5458)
  • 48598e1 reverseproxy: Add fallback for some policies, instead of always random (#5488)
  • f8b59e7 reverseproxy: Add query and client_ip_hash lb policies (#5468)
  • 66e571e reverseproxy: Add mention of which half a copyBuffer err comes from (#5472)
  • 75b690d reverseproxy: Expand port ranges to multiple upstreams in CLI + Caddyfile (#5494)
  • 335cd2e reverseproxy: Fix active health check header canonicalization, refactor (#5446)
  • 2b04e09 reverseproxy: Fix reinitialize upstream healthy metrics (#5498)
  • 10b265d reverseproxy: Header up/down support for CLI command (#5460)
  • b19946f reverseproxy: Optimize base case for least_conn and random_choose policies (#5487)
  • 4636109 reverseproxy: Remove deprecated lookup_srv (#5396)
  • 2182270 reverseproxy: Reset Content-Length to prevent FastCGI from hanging (#5435)
  • 941eae5 reverseproxy: allow specifying ip version for dynamic a upstream (#5401)
  • e3909cc reverseproxy: refactor HTTP transport layer (#5369)
  • 13a3768 rewrite: use escaped path, fix #5278 (#5504)
  • 2943c41 templates: Add fileStat function (#5497)
  • b420561 tracing: Support autoprop from OTEL_PROPAGATORS (#5147)

Don't miss a new caddy release

NewReleases is sending notifications on new releases.