v2.9.0
版本发布时间: 2025-01-01 01:34:20
caddyserver/caddy最新发布版本:v2.9.1(2025-01-08 23:22:53)
Happy New Year! We're pleased to release Caddy 2.9. Aside from some minor new features, this release is mainly focused on refinements and bug fixes in many areas, including:
- Config loading
- Events
- Logging
- Placeholders
- Reverse proxy and HTTP server performance
- Matchers
- HTTP (esp. HTTP/3)
- Metrics (per-host metrics)
- Security
- TLS automation & ACME ARI
We realize there is extensive interest in Encrypted Client Hello (ECH) and post-quantum ciphers. These are slated to be supported in Go 1.24, which is scheduled for a stable release in approximately February. We did not want to force users to go through the inconvenience of installing pre-release, non-stock installations of Go, even though the RCs are quite stable and production-ready, in order to even compile Caddy, which is quite common given our plugin ecosystem. We anticipate a Caddy 2.10 release in the near future with these capabilities, built on Go 1.24.
We hope you will enjoy the 2.9 release. Thanks to all contributors, bug reporters, and helpers, and those organizations which deployed pre-release versions to production to help verify patches and features.
Changelog
- ef4e0224a8495fc29847d865087febdee8736e3b caddyfile: Fix comma edgecase in address parsing (#6616)
- b116dcea3d022cd2b060a978c499ac17e5d0a2e1 caddyhttp: Add
{?query}
placeholder (#6714) - c216cf551dcbd2de1da1b9fe8a7e179b76827753 caddyhttp: Allow matching Transfer-Encoding, add to access logs (#6629)
- 197c564f2032becba14aeec0152fe5eeb639d6c1 caddyhttp: Set default ReadHeaderTimeout (1 min)
- 09b2cbcf4d839adec91b189fea549d64a69e0595 caddyhttp: Add
MatchWithError
to replace SetVar hack (#6596) - c6f2979986d87d7236b132c687c8887c92248dd8 caddyhttp: Close http3 server gracefully (#6213)
- 88fd5f3491ab888f69f0be02cea68a49164298eb caddyhttp: Use internal issuer for IPs when no APs configured
- 5c8dc344181c49bc7feade4a293bb4eed882b838 caddytls: Allow disabling storage cleaning, avoids writing two files (#6593)
- d7564d632fbed209e81978c5c2c529a7bf1836f7 caddytls: Drop
rate_limit
andburst
, has been deprecated (#6611) - d398898b352a6a7e8ac5c24da01dd948fc334d77 cmd: Allow
add-package
to select version of package (#6665) - 66c80caf236e2d98e61bf1bc8bb062d7b8c25430 cmd: Disable go1.23 tlskyber=1 experiment
- fb72793269d419b2b37b5f1db8141c63818be514 cmd: Reject multiple configs for fmt command (#6717)
- b3ce260389a88a35c9b0e0a19a93abfe92fb6e9f cmd: ignore missing keys during storage export (#6697)
- 0182fb87fa7276463086c2360431a1c0dc797edf core: addresses.go funcs renames (#6622)
- e76405d55058b0a3e5ba222b44b5ef00516116aa core: Change ListenerFunc signature (#6651)
- 315715e90ffa25c4ad0d8a96e828dbdf6f638583 core: Implement FastAbs to avoid repeated os.Getwd calls (#6687)
- d0e209e1da6cd6d7d61e83b851f2913ee31454f8 encode: good defaults (#6737)
- 5ba1e06fd661aac2cbaab6d4a2ef63a9eb877a46 encode: try to use sendfile when compression is not used (#6749)
- bcaa8aaf114629031d10dcef0ca7680ae8163e32 encode: write status immediate for success response for CONNECT requests (#6738)
- 1d156527ea8fef0a96faa54d7ff61244e4be4094 events: Use
WithLazy
to prevent eager serialization of the event data (#6671) - 6790c0e38abcc534c4b3365b6e438148001fd6df fastcgi: check for CONTENT_LENGTH when sending requests (#6661)
- eddbccd298f637c4785c891f5f96dbf103580fa8 fastcgi: remove dir redirection when useless in php_fastcgi (#6698)
- efd9251ad38a4fd9f7d900445400ac3c8e564c28 fileserver: Add
first_exist_fallback
strategy fortry_files
(#6699) - d0123bd760f6c140f3b935159a55ba64899c84f8 fileserver: Fix policy
Validate()
oversight (#6727) - 290cfea08f2486fb86dbc11eec96d79751180eda fileserver: add a test for precompressed defaults (#6743)
- 5c2617ebf9303100fc8c6be2a80b966b2c7fb7f1 fileserver: good default for precompressed (#6736)
- cc23ad6402e6dace30b04f0d9113530a4d9541a9 fileserver: Add
file_limit
option for browse (to be experimental) (#6648) - 350ad38f63f7a49ceb3821c58d689b85a27ec4e5 fileserver: Fix Caddyfile parsing
- 9753c4451077d4459ec10cb3df27ab9dc4456290 fileserver: fix try_policy when instantiating file matcher from CEL (#6624)
- 05cfb121ec3f214c0e45206c188f34bad4d4eb8c forwardauth: Skip copying missing response headers (#6608)
- ed1c594cdbddf89829eaf1174f414028577b432d go.mod: Upgrade ACMEz to v3; and upgrade CertMagic
- 3f3f8b3d5270add46d5fc7d99bdcc705ad2d5df4 go.mod: Upgrade CertMagic to v0.21.5
- 91e34139a17b8914a62669b275084b5d225e0624 go.mod: upgrade only some otel deps (#6676)
- 22b9d512687cdcfbf0c574a645fcf0edd23a584f go.mod: Upgrade quic-go to 0.48.2
- b129ed6be88e40667a843bfab74abb3e5239bc8f httpcaddyfile: Fixes for
prefer_wildcard
mode (#6636) - afa778ae05503f563af0d1015cdf7e5e78b1eeec httpcaddyfile: Implement experimental
force_automate
option (#6712) - b183aec83c2d467706583ad9ea0e4e9c56077c55 httpcaddyfile: Implement log
sampling
config (#6682) - 1d106fa14d7bc150acb1107ea7d034d669f9f80d metrics: add
go
andprocess
collectors (#6704) - 388c7e898c6cbcddd2c59e8a902238a0b4f06857 metrics: move
metrics
up, outsideservers
(#6606) - 8c3dd3de709040d72bd98a756a044c453d7e871e requestbody: Type-based error handling for
MaxBytesError
(#6701) - 5e6024c48da68492761837af3806be1951fa4c24 reverseproxy: Fix log message
- 48ce47f1d44da485fbbf6be536a0e3822763f313 reverseproxy: Use correct cases for websocket related headers (#6621)
- 825fe48e0654dc6e4e065df364a51ea79488e44b reverseproxy: Allow
0
as weights forweighted_round_robin
(#6681) - 328fb614f0e9996b184f41d59b7092c21dd9c712 reverseproxy: Only handle websocket protocol (#6740)
- 238f1108e6600049d9041abc88db24526ee4f882 reverseproxy: Revert #4952 - don't ignore context cancellation in stream mode
- 9c0c71e5774593e15a555d5c88de0af011e46394 reverseproxy: Rewrite requests and responses for websocket over http2 (#6567)
- c864b82ae13f9dc920ebd8782fe7c5b7007a3e1b reverseproxy: Set Content-Length when body is fully buffered (#6638)
- fbf0f4c425b23c39dbddd975d36df506cca5f45b reverseproxy: Sync changes from stdlib for 1xx handling (#6656)
- 5823eccf99d9fc6b4ffba8a78acfdb59c4ec0c97 rewrite: Don't add / in Caddyfile, do it after replacer (#6662)
- b443190b66055089d1e112abc992512ca4f6bfba sigtrap: always ignore SIGPIPE (#6645)
- f2c17d1f3fc4d9ad6324e05bab0c29aafb23e2e1 testing: sort force-automated hosts (#6756)
- 669fc41e6321115df554d5f7d8eb55fdfbdaab18 tracing: Add
spanID
field to access logs andhttp.vars.span_id
placeholder (#6646)
What's Changed
- Make it possible to configure the
DisableStorageCheck
setting for certmagic by @ankon in https://github.com/caddyserver/caddy/pull/6368 - caddyhttp: Add test case to corpus by @mholt in https://github.com/caddyserver/caddy/pull/6374
- cmd: remove zealous check of Caddyfile auto-detection by @mohammed90 in https://github.com/caddyserver/caddy/pull/6370
- ci: upgrade to goreleaser v2 by @mohammed90 in https://github.com/caddyserver/caddy/pull/6376
- logging: Allow setting log file permissions by @ririsoft in https://github.com/caddyserver/caddy/pull/6314
- Split
run
into a publicBuildContext
and a private part by @ankon in https://github.com/caddyserver/caddy/pull/6378 - Write the header if none had been written in WriteResponse by @ankon in https://github.com/caddyserver/caddy/pull/6380
- fix file mode configuration parsing by @ririsoft in https://github.com/caddyserver/caddy/pull/6383
- go.mod: update tscert package by @willnorris in https://github.com/caddyserver/caddy/pull/6384
- logging: Customizable
zapcore.Core
by @kkroo in https://github.com/caddyserver/caddy/pull/6381 - logging: set file mode when the file already exist. by @ririsoft in https://github.com/caddyserver/caddy/pull/6391
- caddyfile: Pass blocks to
import
for snippets by @elee1766 in https://github.com/caddyserver/caddy/pull/6130 - reverseproxy: add Max-Age option to sticky cookie by @JasonYuan869 in https://github.com/caddyserver/caddy/pull/6398
- fileserver: Remove newline characters from precomputed etags by @armadi1809 in https://github.com/caddyserver/caddy/pull/6394
- fix: http.intercept.header.* placeholders by @dunglas in https://github.com/caddyserver/caddy/pull/6429
- reverseproxy: Only log host is up status on change by @klaxa in https://github.com/caddyserver/caddy/pull/6419
- fix: don't compress already compressed fonts by @dunglas in https://github.com/caddyserver/caddy/pull/6432
- caddyhttp: Reject 0-RTT early data in IP matchers and set Early-Data header when proxying by @mholt in https://github.com/caddyserver/caddy/pull/6427
- reverseproxy: Add placeholder for host in active health check headers by @francislavoie in https://github.com/caddyserver/caddy/pull/6440
- browse: add Content-Security-Policy w/ nonce by @steffenbusch in https://github.com/caddyserver/caddy/pull/6425
- browse: fix Content-Security-Policy warnings in Firefox by @steffenbusch in https://github.com/caddyserver/caddy/pull/6443
- fileserver: Exclude symlink target size from total, show arrow on size by @francislavoie in https://github.com/caddyserver/caddy/pull/6412
- reverseproxy: Fix dynamic upstreams ip version by @armadi1809 in https://github.com/caddyserver/caddy/pull/6448
- reverseproxy: Add placeholder for networkAddr in active health check headers by @dylanschultzie in https://github.com/caddyserver/caddy/pull/6450
- Add option to set which HTTP method to use for active health checks by @jbro in https://github.com/caddyserver/caddy/pull/6453
- reverseproxy: Caddyfile support for health_method by @jbro in https://github.com/caddyserver/caddy/pull/6454
- reverseproxy: add health_upstream subdirective by @dylanschultzie in https://github.com/caddyserver/caddy/pull/6451
- ci: correct
-tags nobadger
on binary build by @girlbossceo in https://github.com/caddyserver/caddy/pull/6470 - Caddyfile support for TLS handshake matchers by @vnxme in https://github.com/caddyserver/caddy/pull/6461
- Caddyfile support for TLS connection and certificate selection policies by @vnxme in https://github.com/caddyserver/caddy/pull/6462
- chore: update golangci config by @mohammed90 in https://github.com/caddyserver/caddy/pull/6479
- encode: flush already compressed data to the stream by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6471
- proxyprotocol: Update WrapListener to use ConnPolicyFunc for PROXY protocol by @pi-prakhar in https://github.com/caddyserver/caddy/pull/6485
- fileserver: add
sort
options by @lollipopkit in https://github.com/caddyserver/caddy/pull/6468 - go.mod: update quic-go package by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6498
- Runtime placeholders for selected TLS and HTTP matchers by @vnxme in https://github.com/caddyserver/caddy/pull/6480
- replacer:
{file.*}
global placeholder strips trailing newline by @steffenbusch in https://github.com/caddyserver/caddy/pull/6411 - go.mod: update update golang/x/net by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6500
- reverse_proxy: apply keep-alive setting for h2c requests by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6343
- Fix a regression in #6480: the context may have no replacer by @vnxme in https://github.com/caddyserver/caddy/pull/6510
- caddyhttp: Export PrivateRangesCIDR() for plugins after #6480 by @vnxme in https://github.com/caddyserver/caddy/pull/6514
- ignore exec.ErrDot when starting caddy in background by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6512
- ci: don't exit early on error in remote CI machine by @mohammed90 in https://github.com/caddyserver/caddy/pull/6519
- reverseproxy: Active health checks request body option by @jbro in https://github.com/caddyserver/caddy/pull/6520
- reverseproxy: Change logs for write errors to warn level by @jum in https://github.com/caddyserver/caddy/pull/6532
- cmd: Use a factory to create the caddy root command by @elee1766 in https://github.com/caddyserver/caddy/pull/6533
- chore: Fix a typo by @sunnyagain in https://github.com/caddyserver/caddy/pull/6534
- error: run
error
(msg) through replacer by @mohammed90 in https://github.com/caddyserver/caddy/pull/6536 - reverseproxy: allow user to define source address by @mohammed90 in https://github.com/caddyserver/caddy/pull/6504
- chore: build and test with Go 1.23 by @dunglas in https://github.com/caddyserver/caddy/pull/6526
- tls: use Go default kex for the moment that include PQC by @bwesterb in https://github.com/caddyserver/caddy/pull/6542
- ci: prepare syso files for windows embedding in release by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6406
- Performance: Prevents the zap logger from serializing the request in rewrite.go. by @AlliBalliBaba in https://github.com/caddyserver/caddy/pull/6541
- fileserver: move
sort
tobrowse
by @lollipopkit in https://github.com/caddyserver/caddy/pull/6502 - reverse_proxy: add placeholder http.reverse_proxy.retries by @steffenbusch in https://github.com/caddyserver/caddy/pull/6553
- fix(#6551): Unexpected behaviour if caddyhttp.Route is provisioned twice by @jbro in https://github.com/caddyserver/caddy/pull/6558
- caddytls: Add sni_regexp matcher by @vnxme in https://github.com/caddyserver/caddy/pull/6569
- rewrite: Avoid panic on bad arg count for
uri
by @mister-turtle in https://github.com/caddyserver/caddy/pull/6571 - perf: use zap's Check() to prevent useless allocs by @dunglas in https://github.com/caddyserver/caddy/pull/6560
- ci: update the linter action version by @mohammed90 in https://github.com/caddyserver/caddy/pull/6575
- update quic-go to v0.47.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/6582
- quic: enable qlog, controlled by QLOGDIR env by @marten-seemann in https://github.com/caddyserver/caddy/pull/6581
- caddytls: Give a better error message when given encrypted private keys by @francislavoie in https://github.com/caddyserver/caddy/pull/6591
- chore: Use slices package where possible by @francislavoie in https://github.com/caddyserver/caddy/pull/6585
- caddyhttp: Optimize logs using zap's WithLazy() by @AlliBalliBaba in https://github.com/caddyserver/caddy/pull/6590
- doc: remove docs of deprecated directives by @mohammed90 in https://github.com/caddyserver/caddy/pull/6566
- Implement issue #6296 passing FDs / socket activation by @MayCXC in https://github.com/caddyserver/caddy/pull/6573
- caddyhttp: Fix listener wrapper regression from #6573 by @MayCXC in https://github.com/caddyserver/caddy/pull/6599
- chore: Adjust incorrect
reverse_proxy
Caddyfile comment by @francislavoie in https://github.com/caddyserver/caddy/pull/6598 - http: ReponseWriter prefer ReadFrom if available by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6565
- caddytls: Support new tls.context module by @mholt in https://github.com/caddyserver/caddy/pull/6369
- Better errors when reloading by @mholt in https://github.com/caddyserver/caddy/pull/6601
- caddyhttp: Escaping placeholders in CEL, add
vars
andvars_regexp
by @francislavoie in https://github.com/caddyserver/caddy/pull/6594 - autohttps: Implement
auto_https prefer_wildcard
option by @francislavoie in https://github.com/caddyserver/caddy/pull/6146 - metrics: scope metrics to active config, add optional per-host metrics by @mohammed90 in https://github.com/caddyserver/caddy/pull/6531
- ci: install xcaddy to fix release flow by @mohammed90 in https://github.com/caddyserver/caddy/pull/6602
- caddytls: Drop
rate_limit
andburst
, has been deprecated by @francislavoie in https://github.com/caddyserver/caddy/pull/6611 - tests: Fix adapt test warning by @mohammed90 in https://github.com/caddyserver/caddy/pull/6619
- docs: expand proxy protocol docs by @mohammed90 in https://github.com/caddyserver/caddy/pull/6620
- caddyfile: Fix comma edgecase in address parsing by @francislavoie in https://github.com/caddyserver/caddy/pull/6616
- reverseproxy: Use correct cases for websocket related headers by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6621
- chore: update quic-go to v0.48.0 by @marten-seemann in https://github.com/caddyserver/caddy/pull/6627
- caddyhttp: Close http3 server gracefully by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6213
- metrics: move
metrics
up, outsideservers
by @mohammed90 in https://github.com/caddyserver/caddy/pull/6606 - fix: always ignore SIGPIPE by @dunglas in https://github.com/caddyserver/caddy/pull/6645
- fileserver: fix try_policy when instantiating file matcher from CEL by @effleurager in https://github.com/caddyserver/caddy/pull/6624
- chore: fix some function names in comment by @davidwoood in https://github.com/caddyserver/caddy/pull/6650
- core: addresses.go funcs renames by @MayCXC in https://github.com/caddyserver/caddy/pull/6622
- tracing: Add
spanID
field to access logs andhttp.vars.span_id
placeholder by @YifanYang6 in https://github.com/caddyserver/caddy/pull/6646 - reverseproxy: Sync changes from stdlib for 1xx handling by @francislavoie in https://github.com/caddyserver/caddy/pull/6656
- chore: Bump quic-go to 0.48.1, fixing a panic by @francislavoie in https://github.com/caddyserver/caddy/pull/6654
- chore: compile without nosql's support for Postgres and MySQL by @dunglas in https://github.com/caddyserver/caddy/pull/6655
- cmd: Allow
add-package
to select version of package by @Botelho31 in https://github.com/caddyserver/caddy/pull/6665 - httpcaddyfile: Fixes for
prefer_wildcard
mode by @francislavoie in https://github.com/caddyserver/caddy/pull/6636 - Use
WithLazy
to prevent eager serialization of the event data by @ankon in https://github.com/caddyserver/caddy/pull/6671 - forwardauth: Skip copying missing response headers by @francislavoie in https://github.com/caddyserver/caddy/pull/6608
- caddyhttp: Add
MatchWithError
to replace SetVar hack by @francislavoie in https://github.com/caddyserver/caddy/pull/6596 - go.mod: upgrade only some otel deps by @mohammed90 in https://github.com/caddyserver/caddy/pull/6676
- fileserver: Add
file_limit
option for browse by @atakanyenel in https://github.com/caddyserver/caddy/pull/6648 - rewrite: Don't add
/
in Caddyfile, do it after replacer by @francislavoie in https://github.com/caddyserver/caddy/pull/6662 - caddytls: Allow disabling storage cleaning, avoids writing two files by @francislavoie in https://github.com/caddyserver/caddy/pull/6593
- ci: use commit sha in goreleaser-check by @mohammed90 in https://github.com/caddyserver/caddy/pull/6677
- reverseproxy: Allow
0
as weights forweighted_round_robin
by @suciptoid in https://github.com/caddyserver/caddy/pull/6681 - httpcaddyfile: Implement log
sampling
config by @nikonhub in https://github.com/caddyserver/caddy/pull/6682 - core: Implement FastAbs to avoid repeated os.Getwd calls by @francislavoie in https://github.com/caddyserver/caddy/pull/6687
- chore: Add
provides
to.deb
releases by @francislavoie in https://github.com/caddyserver/caddy/pull/6691 - chore: make FastAbs comment easier to understand by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6692
- cmd: ignore missing keys during storage export by @santhoshTpixler in https://github.com/caddyserver/caddy/pull/6697
- perf: remove dir redirection when useless in php_fastcgi by @dunglas in https://github.com/caddyserver/caddy/pull/6698
- requestbody: Type-based error handling for
MaxBytesError
by @rishitashaw in https://github.com/caddyserver/caddy/pull/6701 - metrics: add
go
andprocess
collectors by @mohammed90 in https://github.com/caddyserver/caddy/pull/6704 - ci: prevent jobs running on PRs from forks by @mohammed90 in https://github.com/caddyserver/caddy/pull/6720
- caddyhttp: Add
{?query}
placeholder by @francislavoie in https://github.com/caddyserver/caddy/pull/6714 - fileserver: Add
first_exist_fallback
strategy fortry_files
by @dunglas in https://github.com/caddyserver/caddy/pull/6699 - cmd:
fmt
prevents multiple files passed as args, add support for--config
by @armadi1809 in https://github.com/caddyserver/caddy/pull/6717 - fileserver: Fix policy
Validate()
oversight by @francislavoie in https://github.com/caddyserver/caddy/pull/6727 - chore: bump golang.org/x/net to v0.32.0 by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6728
- reverseproxy: Rewrite requests and responses for websocket over http2 by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6567
- chore: fix some typo in HTTPLoader comment by @jpadilla in https://github.com/caddyserver/caddy/pull/6735
- feat: good default for file_server.precompressed by @dunglas in https://github.com/caddyserver/caddy/pull/6736
- test: add a test for precompressed defaults by @dunglas in https://github.com/caddyserver/caddy/pull/6743
- feat: good default for encode by @dunglas in https://github.com/caddyserver/caddy/pull/6737
- encode: write status immediate for success response for CONNECT requests by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6738
- reverseproxy: Only handle extended connect for websockets by @bt90 in https://github.com/caddyserver/caddy/pull/6740
- core: Change getListenerFromPlugin signature by @MayCXC in https://github.com/caddyserver/caddy/pull/6651
- reverseproxy: Set
Content-Length
when body is fully buffered by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6638 - fastcgi: check for CONTENT_LENGTH when sending requests by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6661
- caddyhttp: Allow matching Transfer-Encoding, add to access logs by @francislavoie in https://github.com/caddyserver/caddy/pull/6629
- encode: try to use sendfile when compression is not used by @WeidiDeng in https://github.com/caddyserver/caddy/pull/6749
- httpcaddyfile: Implement
force_automate
by @francislavoie in https://github.com/caddyserver/caddy/pull/6712 - testing: sort force-automated hosts by @mohammed90 in https://github.com/caddyserver/caddy/pull/6756
New Contributors
- @ririsoft made their first contribution in https://github.com/caddyserver/caddy/pull/6314
- @JasonYuan869 made their first contribution in https://github.com/caddyserver/caddy/pull/6398
- @klaxa made their first contribution in https://github.com/caddyserver/caddy/pull/6419
- @dylanschultzie made their first contribution in https://github.com/caddyserver/caddy/pull/6450
- @jbro made their first contribution in https://github.com/caddyserver/caddy/pull/6453
- @girlbossceo made their first contribution in https://github.com/caddyserver/caddy/pull/6470
- @vnxme made their first contribution in https://github.com/caddyserver/caddy/pull/6461
- @pi-prakhar made their first contribution in https://github.com/caddyserver/caddy/pull/6485
- @lollipopkit made their first contribution in https://github.com/caddyserver/caddy/pull/6468
- @sunnyagain made their first contribution in https://github.com/caddyserver/caddy/pull/6534
- @AlliBalliBaba made their first contribution in https://github.com/caddyserver/caddy/pull/6541
- @mister-turtle made their first contribution in https://github.com/caddyserver/caddy/pull/6571
- @MayCXC made their first contribution in https://github.com/caddyserver/caddy/pull/6573
- @effleurager made their first contribution in https://github.com/caddyserver/caddy/pull/6624
- @davidwoood made their first contribution in https://github.com/caddyserver/caddy/pull/6650
- @YifanYang6 made their first contribution in https://github.com/caddyserver/caddy/pull/6646
- @Botelho31 made their first contribution in https://github.com/caddyserver/caddy/pull/6665
- @atakanyenel made their first contribution in https://github.com/caddyserver/caddy/pull/6648
- @suciptoid made their first contribution in https://github.com/caddyserver/caddy/pull/6681
- @nikonhub made their first contribution in https://github.com/caddyserver/caddy/pull/6682
- @santhoshTpixler made their first contribution in https://github.com/caddyserver/caddy/pull/6697
- @rishitashaw made their first contribution in https://github.com/caddyserver/caddy/pull/6701
- @jpadilla made their first contribution in https://github.com/caddyserver/caddy/pull/6735
Full Changelog: https://github.com/caddyserver/caddy/compare/v2.8.4...v2.9.0
1、 caddy_2.9.0_buildable-artifact.pem 3.09KB
2、 caddy_2.9.0_buildable-artifact.tar.gz 10.1MB
3、 caddy_2.9.0_buildable-artifact.tar.gz.sig 96B
4、 caddy_2.9.0_checksums.txt 7.51KB
5、 caddy_2.9.0_checksums.txt.pem 3.09KB
6、 caddy_2.9.0_checksums.txt.sig 96B
7、 caddy_2.9.0_freebsd_amd64.pem 3.09KB
8、 caddy_2.9.0_freebsd_amd64.sbom 109.01KB
9、 caddy_2.9.0_freebsd_amd64.sbom.pem 3.09KB
10、 caddy_2.9.0_freebsd_amd64.sbom.sig 96B
11、 caddy_2.9.0_freebsd_amd64.tar.gz 13.63MB
12、 caddy_2.9.0_freebsd_amd64.tar.gz.sig 96B
13、 caddy_2.9.0_freebsd_arm64.pem 3.09KB
14、 caddy_2.9.0_freebsd_arm64.sbom 109.01KB
15、 caddy_2.9.0_freebsd_arm64.sbom.pem 3.09KB
16、 caddy_2.9.0_freebsd_arm64.sbom.sig 96B
17、 caddy_2.9.0_freebsd_arm64.tar.gz 12.59MB
18、 caddy_2.9.0_freebsd_arm64.tar.gz.sig 96B
19、 caddy_2.9.0_freebsd_armv6.pem 3.09KB
20、 caddy_2.9.0_freebsd_armv6.sbom 108.78KB
21、 caddy_2.9.0_freebsd_armv6.sbom.pem 3.09KB
22、 caddy_2.9.0_freebsd_armv6.sbom.sig 96B
23、 caddy_2.9.0_freebsd_armv6.tar.gz 12.79MB
24、 caddy_2.9.0_freebsd_armv6.tar.gz.sig 96B
25、 caddy_2.9.0_freebsd_armv7.pem 3.09KB
26、 caddy_2.9.0_freebsd_armv7.sbom 108.78KB
27、 caddy_2.9.0_freebsd_armv7.sbom.pem 3.09KB
28、 caddy_2.9.0_freebsd_armv7.sbom.sig 96B
29、 caddy_2.9.0_freebsd_armv7.tar.gz 12.77MB
30、 caddy_2.9.0_freebsd_armv7.tar.gz.sig 96B
31、 caddy_2.9.0_linux_amd64.deb 13.74MB
32、 caddy_2.9.0_linux_amd64.deb.pem 3.09KB
33、 caddy_2.9.0_linux_amd64.deb.sig 96B
34、 caddy_2.9.0_linux_amd64.pem 3.09KB
35、 caddy_2.9.0_linux_amd64.sbom 109.01KB
36、 caddy_2.9.0_linux_amd64.sbom.pem 3.09KB
37、 caddy_2.9.0_linux_amd64.sbom.sig 96B
38、 caddy_2.9.0_linux_amd64.tar.gz 13.67MB
39、 caddy_2.9.0_linux_amd64.tar.gz.sig 96B
40、 caddy_2.9.0_linux_arm64.deb 12.72MB
41、 caddy_2.9.0_linux_arm64.deb.pem 3.09KB
42、 caddy_2.9.0_linux_arm64.deb.sig 96B
43、 caddy_2.9.0_linux_arm64.pem 3.09KB
44、 caddy_2.9.0_linux_arm64.sbom 109.01KB
45、 caddy_2.9.0_linux_arm64.sbom.pem 3.09KB
46、 caddy_2.9.0_linux_arm64.sbom.sig 96B
47、 caddy_2.9.0_linux_arm64.tar.gz 12.65MB
48、 caddy_2.9.0_linux_arm64.tar.gz.sig 96B
49、 caddy_2.9.0_linux_armv5.deb 12.89MB
50、 caddy_2.9.0_linux_armv5.deb.pem 3.09KB
51、 caddy_2.9.0_linux_armv5.deb.sig 96B
52、 caddy_2.9.0_linux_armv5.pem 3.09KB
53、 caddy_2.9.0_linux_armv5.sbom 108.78KB
54、 caddy_2.9.0_linux_armv5.sbom.pem 3.09KB
55、 caddy_2.9.0_linux_armv5.sbom.sig 96B
56、 caddy_2.9.0_linux_armv5.tar.gz 12.84MB
57、 caddy_2.9.0_linux_armv5.tar.gz.sig 96B
58、 caddy_2.9.0_linux_armv6.deb 12.89MB
59、 caddy_2.9.0_linux_armv6.deb.pem 3.09KB
60、 caddy_2.9.0_linux_armv6.deb.sig 96B
61、 caddy_2.9.0_linux_armv6.pem 3.09KB
62、 caddy_2.9.0_linux_armv6.sbom 108.78KB
63、 caddy_2.9.0_linux_armv6.sbom.pem 3.09KB
64、 caddy_2.9.0_linux_armv6.sbom.sig 96B
65、 caddy_2.9.0_linux_armv6.tar.gz 12.84MB
66、 caddy_2.9.0_linux_armv6.tar.gz.sig 96B
67、 caddy_2.9.0_linux_armv7.deb 12.88MB
68、 caddy_2.9.0_linux_armv7.deb.pem 3.09KB
69、 caddy_2.9.0_linux_armv7.deb.sig 96B
70、 caddy_2.9.0_linux_armv7.pem 3.09KB
71、 caddy_2.9.0_linux_armv7.sbom 108.78KB
72、 caddy_2.9.0_linux_armv7.sbom.pem 3.09KB
73、 caddy_2.9.0_linux_armv7.sbom.sig 96B
74、 caddy_2.9.0_linux_armv7.tar.gz 12.81MB
75、 caddy_2.9.0_linux_armv7.tar.gz.sig 96B
76、 caddy_2.9.0_linux_ppc64le.deb 12.49MB
77、 caddy_2.9.0_linux_ppc64le.deb.pem 3.09KB
78、 caddy_2.9.0_linux_ppc64le.deb.sig 96B
79、 caddy_2.9.0_linux_ppc64le.pem 3.09KB
80、 caddy_2.9.0_linux_ppc64le.sbom 109.23KB
81、 caddy_2.9.0_linux_ppc64le.sbom.pem 3.09KB
82、 caddy_2.9.0_linux_ppc64le.sbom.sig 96B
83、 caddy_2.9.0_linux_ppc64le.tar.gz 12.42MB
84、 caddy_2.9.0_linux_ppc64le.tar.gz.sig 96B
85、 caddy_2.9.0_linux_riscv64.deb 12.99MB
86、 caddy_2.9.0_linux_riscv64.deb.pem 3.09KB
87、 caddy_2.9.0_linux_riscv64.deb.sig 96B
88、 caddy_2.9.0_linux_riscv64.pem 3.09KB
89、 caddy_2.9.0_linux_riscv64.sbom 109.23KB
90、 caddy_2.9.0_linux_riscv64.sbom.pem 3.09KB
91、 caddy_2.9.0_linux_riscv64.sbom.sig 96B
92、 caddy_2.9.0_linux_riscv64.tar.gz 12.91MB
93、 caddy_2.9.0_linux_riscv64.tar.gz.sig 96B
94、 caddy_2.9.0_linux_s390x.deb 13.29MB
95、 caddy_2.9.0_linux_s390x.deb.pem 3.09KB
96、 caddy_2.9.0_linux_s390x.deb.sig 96B
97、 caddy_2.9.0_linux_s390x.pem 3.09KB
98、 caddy_2.9.0_linux_s390x.sbom 108.9KB
99、 caddy_2.9.0_linux_s390x.sbom.pem 3.09KB
100、 caddy_2.9.0_linux_s390x.sbom.sig 96B
101、 caddy_2.9.0_linux_s390x.tar.gz 13.2MB
102、 caddy_2.9.0_linux_s390x.tar.gz.sig 96B
103、 caddy_2.9.0_mac_amd64.pem 3.09KB
104、 caddy_2.9.0_mac_amd64.sbom 109.8KB
105、 caddy_2.9.0_mac_amd64.sbom.pem 3.09KB
106、 caddy_2.9.0_mac_amd64.sbom.sig 96B
107、 caddy_2.9.0_mac_amd64.tar.gz 14MB
108、 caddy_2.9.0_mac_amd64.tar.gz.sig 96B
109、 caddy_2.9.0_mac_arm64.pem 3.09KB
110、 caddy_2.9.0_mac_arm64.sbom 109.8KB
111、 caddy_2.9.0_mac_arm64.sbom.pem 3.09KB
112、 caddy_2.9.0_mac_arm64.sbom.sig 96B
113、 caddy_2.9.0_mac_arm64.tar.gz 13.26MB
114、 caddy_2.9.0_mac_arm64.tar.gz.sig 96B
115、 caddy_2.9.0_src.pem 3.09KB
116、 caddy_2.9.0_src.tar.gz 10.25MB
117、 caddy_2.9.0_src.tar.gz.sig 96B
118、 caddy_2.9.0_windows_amd64.pem 3.09KB
119、 caddy_2.9.0_windows_amd64.sbom 110.99KB
120、 caddy_2.9.0_windows_amd64.sbom.pem 3.09KB
121、 caddy_2.9.0_windows_amd64.sbom.sig 96B
122、 caddy_2.9.0_windows_amd64.zip 13.94MB
123、 caddy_2.9.0_windows_amd64.zip.sig 96B
124、 caddy_2.9.0_windows_arm64.pem 3.09KB
125、 caddy_2.9.0_windows_arm64.sbom 110.99KB
126、 caddy_2.9.0_windows_arm64.sbom.pem 3.09KB
127、 caddy_2.9.0_windows_arm64.sbom.sig 96B
128、 caddy_2.9.0_windows_arm64.zip 12.67MB
129、 caddy_2.9.0_windows_arm64.zip.sig 96B
130、 caddy_2.9.0_windows_armv5.pem 3.09KB
131、 caddy_2.9.0_windows_armv5.sbom 110.76KB
132、 caddy_2.9.0_windows_armv5.sbom.pem 3.09KB
133、 caddy_2.9.0_windows_armv5.sbom.sig 96B
134、 caddy_2.9.0_windows_armv5.zip 12.99MB
135、 caddy_2.9.0_windows_armv5.zip.sig 96B
136、 caddy_2.9.0_windows_armv6.pem 3.09KB
137、 caddy_2.9.0_windows_armv6.sbom 110.76KB
138、 caddy_2.9.0_windows_armv6.sbom.pem 3.09KB
139、 caddy_2.9.0_windows_armv6.sbom.sig 96B
140、 caddy_2.9.0_windows_armv6.zip 12.99MB
141、 caddy_2.9.0_windows_armv6.zip.sig 96B
142、 caddy_2.9.0_windows_armv7.pem 3.09KB
143、 caddy_2.9.0_windows_armv7.sbom 110.76KB
144、 caddy_2.9.0_windows_armv7.sbom.pem 3.09KB
145、 caddy_2.9.0_windows_armv7.sbom.sig 96B
146、 caddy_2.9.0_windows_armv7.zip 12.96MB
147、 caddy_2.9.0_windows_armv7.zip.sig 96B