v2.10.1
This is probably our biggest patch release ever -- not that lots of things were broken, but there's lots of refinement happening thanks to broader adoption and contributions from many more people. Just look at the New Contributors below!
Anyway, this release does contain some bug fixes and dependency upgrades which we hope will serve you well. Let us know if there's any issues! And thank you to all who contributed, especially our reliable maintainer team!
This version of Caddy requires Go v1.25.0 or newer.
What's Changed
- update quic-go to v0.51.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/6972
- forwardproxy: reference correct field name in LoadModule by @mohammed90 in https://github.com/caddyserver/caddy/pull/6978
- fix: Remove
nilarg fromzapslog.NewHandlercall by @IndraGunawan in https://github.com/caddyserver/caddy/pull/6984 - fileserver: Add support for .avif image format by @steffenbusch in https://github.com/caddyserver/caddy/pull/6988
- reverseproxy: use DialTLSContext for TLS if servername has placeholder by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6955
- admin: Make sure that any admin routers are provisioned when local/re… by @Compy in https://github.com/caddyserver/caddy/pull/6997
- log: default logger should respect
{in,ex}cludeby @mohammed90 in https://github.com/caddyserver/caddy/pull/6995 - Move local admin server replacement logic below data structure initia… by @Compy in https://github.com/caddyserver/caddy/pull/7004
- acme_server: fix policy parsing in caddyfile by @mohammed90 in https://github.com/caddyserver/caddy/pull/7006
- implement Unwrap for interceptedResponseHandler by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7016
- fileserver: map invalid path errors to fs.ErrInvalid, and return 400 … by @Compy in https://github.com/caddyserver/caddy/pull/7017
- caddyhttp: fix route sort by comparing paths without wildcard if they don't shar… by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7015
- refactor: use maps.Copy for cleaner map handling by @eveneast in https://github.com/caddyserver/caddy/pull/7009
- refactor: use slices.Contains to simplify code by @tongjicoder in https://github.com/caddyserver/caddy/pull/7039
- chore: upgrade .golangci.yml and workflow to v2 by @mohammed90 in https://github.com/caddyserver/caddy/pull/6924
- build(deps): bump golangci/golangci-lint-action from 6 to 8 by @dependabot[bot] in https://github.com/caddyserver/caddy/pull/7044
- fix: crash - null check on event origin by @suxatcode in https://github.com/caddyserver/caddy/pull/7047
- fix: prevent error handler from overriding sub handler matchers by @Hellio404 in https://github.com/caddyserver/caddy/pull/6999
- client_auth: wire up leaf verifier Caddyfile by @mohammed90 in https://github.com/caddyserver/caddy/pull/6772
- caddyfile: reject blocks in log_skip directive by @IwatsukaYura in https://github.com/caddyserver/caddy/pull/7056
- build(deps): bump github.com/cloudflare/circl from 1.6.0 to 1.6.1 by @dependabot[bot] in https://github.com/caddyserver/caddy/pull/7058
- cmd: fix
Commandsfunction not returning all registered commands by @hslatman in https://github.com/caddyserver/caddy/pull/7059 - ci: add dep review, OSSF scorecard actions by @mohammed90 in https://github.com/caddyserver/caddy/pull/7063
- ci: add
{base,head}-refto dep review check by @mohammed90 in https://github.com/caddyserver/caddy/pull/7064 - core: clean up new config if it failed to run by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7068
- chore: apply security best practices for CI by @mohammed90 in https://github.com/caddyserver/caddy/pull/7066
- refactor: use the built-in max/min to simplify the code by @xiaoxiangirl in https://github.com/caddyserver/caddy/pull/7081
- [ADD] sort buttons in grid mode by @filipRatajczak in https://github.com/caddyserver/caddy/pull/7089
- update quic-go to v0.53.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/7094
- refactor: replace HasPrefix+TrimPrefix with CutPrefix by @gopherorg in https://github.com/caddyserver/caddy/pull/7095
- docs: fix some minor issues in the comments by @mountdisk in https://github.com/caddyserver/caddy/pull/7101
- httpcaddyfile: Validates TLS DNS challenge options by @francislavoie in https://github.com/caddyserver/caddy/pull/7099
- chore: fix struct name in comment by @bytetigers in https://github.com/caddyserver/caddy/pull/7114
- reverse proxy: validate versions in http transport by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7112
- chore: fix function in comment by @bytesingsong in https://github.com/caddyserver/caddy/pull/7121
- Fix: Support placeholders in header replacement search patterns by @zongzewu23 in https://github.com/caddyserver/caddy/pull/7117
- fileserver: specify license for embedded JavaScript by @infertux in https://github.com/caddyserver/caddy/pull/7127
- fix dead link by @eeemmmmmm in https://github.com/caddyserver/caddy/pull/7136
- update quic-go to v0.54.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/7138
- chore: fix minor issue in comment by @pingshuijie in https://github.com/caddyserver/caddy/pull/7140
- refactor: use slices.Equal to simplify code by @minxinyi in https://github.com/caddyserver/caddy/pull/7141
- ci: reduce dependabot spam by @mohammed90 in https://github.com/caddyserver/caddy/pull/7078
- fix(provisioning):
Context.ApporContext.AppIfConfiguredwill return(val, nil)even if the app failed to provision or validate the first time by @alexandre-daubois in https://github.com/caddyserver/caddy/pull/7070 - build(deps): bump the actions-deps group with 6 updates by @dependabot[bot] in https://github.com/caddyserver/caddy/pull/7142
- Use KeepAliveConfig to pass keepalive_interval to listener's accepted sockets by @joshuamcbeth in https://github.com/caddyserver/caddy/pull/7151
- build(deps): bump the all-updates group across 1 directory with 17 updates by @dependabot[bot] in https://github.com/caddyserver/caddy/pull/7155
- cmd: Allow
caddy adaptto read from stdin by @bosdhill in https://github.com/caddyserver/caddy/pull/7163 - feat: add bcrypt cost parameter to hash-password by @GreyXor in https://github.com/caddyserver/caddy/pull/7149
- fix typo in bcrypt cost flag name by @GreyXor in https://github.com/caddyserver/caddy/pull/7168
- chore: fix inconsistent function name in comment by @youzichuan in https://github.com/caddyserver/caddy/pull/7174
- caddytls: fix regression in external certificate manager support by @quagsirus in https://github.com/caddyserver/caddy/pull/7179
- http: free up quic listener when stopping by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7177
- chore: bump Go to v1.25 by @dunglas in https://github.com/caddyserver/caddy/pull/7184
- caddyhttp: refactor to use reflect.TypeFor by @cuiweixie in https://github.com/caddyserver/caddy/pull/7187
- refactor: use a more modern writing style to simplify code by @joemicky in https://github.com/caddyserver/caddy/pull/7182
- http: disable keepalive when KeepAliveInterval is negative by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7158
- http: clean up listeners if some of the listeners fail to bind by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7176
- reverse_proxy: use the new KeepAliveConfig to set probe interval by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7157
- ci: set proper build tags in golangci and minor cleanup by @dunglas in https://github.com/caddyserver/caddy/pull/7183
- doc: Add a few lines about Etag file content by @Pizmovc in https://github.com/caddyserver/caddy/pull/7173
- file_server: set Range header for precompressed static files to force Content Length header to appear by @WeidiDeng in https://github.com/caddyserver/caddy/pull/7042
- caddyhttp: use the new http.Protocols to handle h1, h2 and h2c requests by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6961
Changelog
- 44d078b6705c7abcabb2a60f501568ff7f5a57a1 acme_server: fix policy parsing in caddyfile (#7006)
- 320c57291dbe06e00e0759bdb5cbbf0d622e5968 admin: Make sure that any admin routers are provisioned when local/re… (#6997)
- 49dac61b078a704b3e98566134c108d6def19450 bcrypt: add cost parameter to hash-password (#7149)
- 4bfc3b95b5f88a1042a5103d8ad3fac3f42bf129 bcrypt: wrong cost flag name (#7168)
- 4b01d77b81a9ebda046637026cf57671a3cc5859 build(deps): bump github.com/cloudflare/circl from 1.6.0 to 1.6.1 (#7058)
- 45c9341deb9818638ab389b98e7b4c74dc9f6afc build(deps): bump golangci/golangci-lint-action from 6 to 8 (#7044)
- 5bc2afbbb6ee5bc1537b521fd507506fd86ae43f build(deps): bump the actions-deps group with 6 updates (#7142)
- 007f4066f6abf55f42195155117c53b230490a73 build(deps): bump the all-updates group across 1 directory with 17 updates (#7155)
- 8524386737e7dcaf6ab2378e5bc9456f82b91cd1 caddyhttp: Compare paths w/o wildcard if prefixes differ (#7015)
- 7590c9ca1ba6096408574a7dd3b9dc42d12cb948 caddyhttp: Free up quic listener when stopping (#7177)
- b15ed9b0844dd7b73977f4c6dacfb3348579ce4a caddyhttp: refactor to use reflect.TypeFor (#7187)
- 14a63a26b9a673857fc37cba37aedc35a10ce634 caddyhttp: use the new http.Protocols to handle h1, h2 and h2c requests (#6961)
- 731e6c24821630f7ac117ff74188e79a06a75d1e caddytls: Improve ECH error logging (close #7152)
- 105eee671c384459de666889be953857a7175afa caddytls: Set local_ip, not remote_ip (#6952)
- b898873b90b5cb804400888ec2f2994f6a2dd270 caddytls: fix regression in external certificate manager support (#7179)
- 1481c0411aa3ce3a53c206e18ee9ce4223cc156d caddytls: wire up client_auth leaf verifier Caddyfile (#6772)
- 19ff47a63b9ff2ae424790b02548d9ba4afc56ba cmd: Allow
caddy adaptto read from stdin (#7163) - e633d013f64d057f462786ccf4a430cd27817d4d cmd: fix
Commandsfunction not returning all registered commands (#7059) - 7099892958fbee17f5e087c768f4db1940303fa8 core: Check for nil event origin (#7047)
- 3d0b4fac5a583d615fe411a4af9a24a7bcc3bee3 core: Clean up new config if it failed to run (#7068)
- 051e73aefca4cc3d930e8b637d848deb5e100126 core: Replace admin server later in provisionContext (#7004)
- fe41ff3c5bbee0aaa44110c110fd6b4fbf052048 core: Save app provisioning errors with context (#7070)
- e4447c4ba783482c35b096cfbe0e0ffa0403b450 core: Use KeepAliveConfig to pass keepalive_interval to listener's accepted sockets (#7151)
- b9710c6af4f764b463a8e0c080783f2b7fb15ce0 fileserver: Add a few doc lines about Etag file content (#7173)
- 3b4d966fba069e9895980dbbf05f84bf818968ba fileserver: Add sort buttons in grid mode (#7089)
- 54d03ced48a8ed2264ae9248c81f00a1c2648d82 fileserver: Add support for .avif image format (#6988)
New Contributors
- @IndraGunawan made their first contribution in https://github.com/caddyserver/caddy/pull/6984
- @Compy made their first contribution in https://github.com/caddyserver/caddy/pull/6997
- @eveneast made their first contribution in https://github.com/caddyserver/caddy/pull/7009
- @tongjicoder made their first contribution in https://github.com/caddyserver/caddy/pull/7039
- @suxatcode made their first contribution in https://github.com/caddyserver/caddy/pull/7047
- @Hellio404 made their first contribution in https://github.com/caddyserver/caddy/pull/6999
- @IwatsukaYura made their first contribution in https://github.com/caddyserver/caddy/pull/7056
- @xiaoxiangirl made their first contribution in https://github.com/caddyserver/caddy/pull/7081
- @filipRatajczak made their first contribution in https://github.com/caddyserver/caddy/pull/7089
- @gopherorg made their first contribution in https://github.com/caddyserver/caddy/pull/7095
- @mountdisk made their first contribution in https://github.com/caddyserver/caddy/pull/7101
- @bytetigers made their first contribution in https://github.com/caddyserver/caddy/pull/7114
- @bytesingsong made their first contribution in https://github.com/caddyserver/caddy/pull/7121
- @zongzewu23 made their first contribution in https://github.com/caddyserver/caddy/pull/7117
- @infertux made their first contribution in https://github.com/caddyserver/caddy/pull/7127
- @eeemmmmmm made their first contribution in https://github.com/caddyserver/caddy/pull/7136
- @pingshuijie made their first contribution in https://github.com/caddyserver/caddy/pull/7140
- @minxinyi made their first contribution in https://github.com/caddyserver/caddy/pull/7141
- @alexandre-daubois made their first contribution in https://github.com/caddyserver/caddy/pull/7070
- @joshuamcbeth made their first contribution in https://github.com/caddyserver/caddy/pull/7151
- @bosdhill made their first contribution in https://github.com/caddyserver/caddy/pull/7163
- @GreyXor made their first contribution in https://github.com/caddyserver/caddy/pull/7149
- @youzichuan made their first contribution in https://github.com/caddyserver/caddy/pull/7174
- @quagsirus made their first contribution in https://github.com/caddyserver/caddy/pull/7179
- @cuiweixie made their first contribution in https://github.com/caddyserver/caddy/pull/7187
- @joemicky made their first contribution in https://github.com/caddyserver/caddy/pull/7182
- @Pizmovc made their first contribution in https://github.com/caddyserver/caddy/pull/7173
Full Changelog: https://github.com/caddyserver/caddy/compare/v2.10.0...v2.10.1