All Versions
38
Latest Version
Avg Release Cycle
21 days
Latest Release
32 days ago

Changelog History
Page 1

  • v2.0.0

    May 04, 2020

    🎉 It's here! Caddy 2 is ready for production. Check out the v2 landing page!

    🍱 💚 *Please consider sponsoring - I work on this full-time, and it would not be possible without continued company and individual sponsors, thank you!

    📚 We recommend all users begin to upgrade. Please spend time in the documentation. We've worked hard to make everything as clear and simple as possible. Once you have tested Caddy 2, deploy it into production. We think you'll be very pleased with the results.

    🛠 Keep in mind that this is just the beginning: "2.0" does not mean the software is perfect, only that it is stable. Its readiness is guided by your feedback! We will continue to develop features, quality-of-life improvements, and bug fixes (2.1 is already slated to have 30+ improvements)

    Thank you to everyone in the community who helpfully reported bugs and contributed over the past year!

    👀 See all commits since RC 3 here.

    👌 Support:

    Resources:

    🔄 Changelog

    🛠 9a57263 admin: Close admin endpoint when shutting down (fixes #3269)
    f5ccb90 admin: Disable host checking if wildcard interface is specified
    5ae1a56 caddyhttp: Add split_path to file matcher (used by php_fastcgi) (#3302)
    🌲 f931c26 caddyhttp: Better duration logging
    ebf07f8 caddyhttp: Fix auto redirects for catch-all HTTPS sites
    bacf50a caddyhttp: Fix common_log format's user ID placeholder (#3300)
    🐧 83c85c5 caddyhttp: Fix listener overlap detection on Linux
    🛠 026937f caddyhttp: Fix trailers when recording responses (fixes #3236)
    🌲 10db570 caddyhttp: General improvements to access logging (#3301)
    📄 a1796c2 caddytls: Adjust DNS challenge structure; clarify some docs
    ⬆️ 8e42661 caddytls: Finish upgrading to libdns DNS providers for ACME challenges
    86a4f2c caddytls: Fix namespace tls.dns -> dns.providers
    c11d0e4 cmd: Clean up, simplify reverse proxy command; fix some edge cases
    100d19e dangit, of course I would bork my git commit
    ⚡️ 1fa8c18 go.mod: Remove DNSProviderMaker interface; update to lego 3.6
    ⚡️ 2609a72 go.mod: Update dependencies including CertMagic (fixes #3202)
    97ed9e1 httpcaddyfile: Add nil check to prevent panic, fix validation logic
    🛠 829e36d httpcaddyfile: Don't lowercase placeholder contents (fixes #3264)
    📜 bca610f httpcaddyfile: Minor fixes to parsing storage options
    ⚡️ a77bd1d httpcaddyfile: Update tls parsing for DNS providers
    295604d httpcaddyfile: Why was this code repeated??
    0798459 readme: Fix broken links (#3283)
    1b06181 reverseproxy: Don't forget to provision embedded headers handler
    👀 a507a5b reverseproxy: Remove circuitbreaker module (see #3331)
    76bbb47 reverseproxy: Set X-Forwarded-Proto (closes #3275) (#3276)
    da8686c reverseproxy: always set req.URL.Host with upstream (#3297)

  • v2.0.0-rc.3

    April 13, 2020

    🚀 🎉 Release Candidate 3! It is anticipated that this is the final pre-release. No new bug fixes or enhancements are planned. Only critical fixes that require a significant change will result in a fourth release candidate; otherwise, next tag should be v2.0.0.

    🍱 💚 Please consider sponsoring this project. I work on this full-time and appreciate your support!

    🚀 This release is production-ready and should be used in production (after testing locally and in staging environments) as much as possible. We recommend that all users test and upgrade to this release candidate.

    🚀 Thank you to everyone in the community who helpfully reported bugs and contributed to this release!

    Some highlights:

    • 🛠 Fixed occasional logging-related panic on some HTTP requests (introduced in rc2)
    • ✨ Enhanced default security of admin endpoint (thanks to @kalmi for the great feedback!)

    👀 See all commits since RC 2 here.

    👌 Support:

    v2 Resources:

    🔄 Changelog

    a3bdc22 admin: Always enforce Host header checks
    🛠 999ab22 caddyhttp: Add nil check (fixes #3248 and fixes #3250)
    ec45681 core: Don't return error on RegisterModule() and RegisterAdapter()
    🚚 3bee569 httpcaddyfile: Don't remove empty TLS conn policies (fix #3249)

  • v2.0.0-rc.2

    April 09, 2020

    🚀 🎉 Release Candidate 2! A release candidate means we think the software is good enough to release, but we want to allow another cycle for bug fixes based on issues raised from the community. Now is the time to upgrade!

    🍱 💚 Please consider sponsoring this project. I work on this full-time and appreciate your support!

    🚀 This release is production-ready and should be used in production (after testing locally and in staging environments) as much as possible. We recommend that all users test and upgrade to this release candidate.

    🚀 Thank you to everyone in the community who helpfully reported bugs and contributed to this release!

    Some highlights:

    • 🍱 ⚠️ The reverse proxy's NTLM transport module was moved into its own repository
    • 🆕 New key_type Caddyfile global option to customize certificate key type
    • The not matcher in the Caddyfile can now be a one-liner to negate a single matcher
    • 🛠 Numerous bug fixes and other improvements

    👀 See all commits since RC 1 here.

    👌 Support:

    v2 Resources:

    🔄 Changelog

    fbd9515 basicauth: Re-prompt after invalid credentials (fix #3239) (#3240)
    7be747f caddyhttp: Add missing LB policy Caddyfile unmarshalers (#3230)
    ♻️ e5dc76b caddyhttp: CEL matcher checks return type; slight refactor
    0️⃣ 0fe9803 caddyhttp: Fix logging name associations by adding a default
    e30deed caddyhttp: Return port placeholders as ints
    5b355cb caddyhttp: Strictly forbid unnecessary blocks on matchers (#3229)
    👍 a3cfe43 caddyhttp: Support single-line not matcher (#3228)
    0️⃣ 85f5f47 caddytls: Don't initialize default internal issuer unless necessary
    d89ad2f caddytls: Fix for TLS conn policy being applied to HTTP-only servers (#3243)
    👍 6a32daa caddytls: Support custom bind host for challenges (#3232)
    0️⃣ 4d9b63d cel: Leverage DefaultAdapter to extend CEL's type system
    346c33b cmd: Log warning if --resume and --config used together
    📜 8b2dbc5 core: Rename ParsedAddress -> NetworkAddress
    🔧 1e8af27 fastcgi: Account for lack of split path configuration (fix #3221)
    c5f9227 go.mod: Try smallstep again
    ⚡️ c7ac7de go.mod: Update CertMagic (again) v0.10.10
    ⚡️ b6482e5 go.mod: Update CertMagic to v0.10.8
    ⚡️ d33926b go.mod: Update certmagic
    ⚡️ b4a7d62 go.mod: Update dependencies
    ⚡️ 88d391c go.mod: Update smallstep/cli
    05164c8 go.mod: Use latest Certmagic (v0.10.9)
    28fdf64 httpcaddyfile, caddytls: Multiple edge case fixes; add tests
    5110643 httpcaddyfile: Add key_type global option (#3231)
    🛠 145aebb httpcaddyfile: Carry bind setting through to ACME issuer (fixes #3232)
    🌲 3d6fc1e httpcaddyfile: Yield cleaner JSON when conn policy or log name is empty
    🌲 6e4132e logging: Colorize output in all cases of stdout/stderr
    🌲 6e4c688 logging: Only colorize console output
    f29023b reverseproxy: Minor tweaks
    ♻️ 2c1b663 reverseproxy: Remove NTLM transport; refactor and improve docs
    b1ce9d4 templates: Add env function (closes #3237)
    ⚡️ 95f6bd7 templates: Update docs
    📄 437d509 templates: Use text/template; add experimental notice to docs

  • v2.0.0-rc.1

    April 02, 2020

    🚀 🎉 Release Candidate 1! A release candidate means we think the software is good enough to release, but we want to allow another cycle for bug fixes based on issues raised from the community. Now is the time to upgrade!

    🍱 💚 Please consider sponsoring this project. I work on this full-time and appreciate your support!

    🚀 This release is production-ready and should be used in production (after testing locally and in staging environments) as much as possible. We recommend that all users test and upgrade to RC1.

    🚀 Remember that release candidates are still pre-release, and there may be more than one release candidate depending on bug reports.

    🚀 Thank you to everyone who participated in the improvements for this release, especially @Mohammed90 for being our CI wizard! Also a huge thanks to @sarge for working on integration tests, which will get more attention in the coming months, and to @whitestrake and @francislavoie for helping in the community so much.

    Some highlights:

    • 🔀 ⚠️ A few lesser-known/used properties in the JSON were changed: not request matchers now take an array of objects rather than a single object; removed manage_sync from TLS automation policies; renamed tag to any_tags and all_tags and removed policy in TLS certificate selection policies.
    • 0️⃣ The root directive now gets evaluated before redir and rewrite by default.
    • 🆕 New caddy trust command for installing Caddy's default root certificate.
    • 👌 Supports ACME externalAccountBinding feature, for interop with commercial CAs.
    • The not HTTP request matcher can now consult one or more matcher sets.
    • 🛠 Numerous bug fixes and other improvements.

    👀 See all commits since beta 20 here.

    👌 Support:

    v2 Resources:

    🔄 Changelog

    📇 397e04e caddyauth: Add Metadata field to caddyauth.User (#3174)
    6fe04a3 caddyfile: Export NewTestDispenser() (close #2930)
    7ee3ab7 caddyfile: Formatter enhancements
    🛠 deba26d caddyfile: Minor fixes to the formatter
    73643ea caddyhttp: 'not' matcher now accepts multiple matcher sets and OR's them (#3208)
    🖨 581f1de caddyhttp: Print actual listener address in log message (closes #2992)
    ac65f69 caddyhttp: Rename MatchNegate type to MatchNot type
    ⚡️ 0d2a351 caddyhttp: Update host matcher docs about wildcards
    👍 9fb0b1e caddytls: Add support for externalAccountBinding ACME extension
    7ca1586 caddytls: Encode big.Int as string with JSON
    c87f82f caddytls: Match automation policies by wildcard subjects too
    ♻️ 6ca5828 caddytls: Refactor certificate selection policies (close #1575)
    🚚 ea3688e caddytls: Remove ManageSync
    👍 5c55e5d caddytls: Support placeholders in key_type (#3176)
    ⚡️ ce3ca54 caddytls: Update cipher suite names and curve names
    673d3d0 file_server: Fix dumb error check I must have written at 1am
    ⚡️ 19b4554 go.mod: Update smallstep/truststore
    ⚡️ d322de6 gzip: Use klauspost/gzip, an optimized gzip implementation
    37aa516 headers: Trim any trailing colon from field names as a courtesy
    904d9ca httpcaddyfile: Include non-standard ports when mapping logger names
    178ba02 httpcaddyfile: Put root directive first, before redir and rewrite
    ♻️ 1c190b0 httpcaddyfile: Refactor site key parsing; detect conflicting schemes
    244b839 pki: Add trust subcommand to install root cert (closes #3204)
    🛠 1456f15 readme: So much more ... what? Fixed cliffhanger
    e207240 reverse_proxy: Upstream.String() method returns either LookupSRV or Dial
    809e727 rewrite: Fix for rewrites with URI placeholders (#3209)

  • v2.0.0-beta9

    November 04, 2019

    🚀 Caddy 2.0 beta 9 is the next pre-release in the development cycle of Caddy 2 and is the best update yet! Some highlights:

    • 🛠 Significant bug fixes, especially related to HTTP requests. (Got rid of those panics! Oops)
    • ♻️ Refactored the admin (API) endpoint code significantly, making many internal improvements and fixing several bugs.
    • ➕ Added optional origin enforcement features to the API for added security.
    • 👌 Improved config reload performance significantly.
    • 🛠 Fixed some bugs related to the Caddyfile.

    👀 See all commits since beta 8 here.

    🚀 Please remember that Caddy 2 beta releases are not yet feature-complete as development is ongoing, nor are they stable; there are likely to be some breaking changes between tags. We hope you will find ways to use Caddy 2 beta in production and report any issues you find!

    Thank you to all of you who have reported bugs or requested features so far. We continue to make good progress.

    👀 To learn how to get started, see the README on the v2 branch.

    🍱 💚 Please consider sponsoring this project!

    This is a community effort, so please report bugs, join the discussion, and submit pull requests to be a part of the team!

    👌 Support:

    v2 Resources:

  • v2.0.0-beta8

    October 29, 2019

    🚀 Caddy 2.0 beta 8 is the next pre-release in the development cycle of Caddy 2 and is the best update yet! Some highlights:

    • 📚 Logging! Caddy 2 has an exceptionally powerful, flexible, and high-performing log. Read the docs about logging.
    • Rewrite handler can now quickly strip path prefix or suffix conveniently, and issue HTTP redirects
    • Significant improvements to TLS certificate management, especially at large scale. Give Caddy 2 a million domains and it will gradually obtain certificates for them with built-in rate limiting and retries over the course of days or weeks.
    • CI improvements, including continuous fuzzing.
    • 🔧 HTTP cache can be configured to work in a group/cluster setting.
    • 🚑 Several bug fixes, including a hotfix for silly bug in beta 7 (d'oh! 🤦‍♂️)

    👀 See all commits since beta 6 here.

    🚀 Please remember that Caddy 2 beta releases are not yet feature-complete as development is ongoing, nor are they stable; there are likely to be some breaking changes between tags. We hope you will find ways to use Caddy 2 beta in production and report any issues you find!

    Thank you to all of you who have reported bugs or requested features so far. We continue to make good progress.

    👀 To learn how to get started, see the README on the v2 branch.

    This is a community effort, so please report bugs, join the discussion, and submit pull requests to be a part of the team!

    👌 Support:

    v2 Resources:

  • v2.0.0-beta7

    October 28, 2019

    🚀 Matt made an oops on this release, it has a bug serving HTTP requests; please use beta 8 instead.

  • v2.0.0-beta6

    October 14, 2019

    🚀 Caddy 2.0 beta 6 is the next pre-release in the development cycle of Caddy 2 and is the biggest update yet! Some highlights:

    • 🚧 Migrated all WIP and completed enterprise features to open source, including:
      • /config and /id API endpoints, which enable config traversal (selective updates) and exporting current configuration
      • WIP cache plugin for HTTP responses
      • pem_loader plugin, for specifying TLS certs and keys directly in config
      • distributed_stek plugin, for high-performance TLS session resumption in clusters
      • Custom TLS certificate selection policies
      • WIP Starlark handler (embedded scripting language)
    • 🆕 New placeholders for RemoteAddr (client IP, etc.)
    • 🔌 HTTP basic authentication plugin
    • reverse_proxy: Ability to customize ServerName value in TLS handshake to backends
    • reverse_proxy: Dynamic backends using placeholders (variables) in dial address
    • 0️⃣ reverse_proxy: Minor optimization of MaxIdleConnsPerHost default value

    👀 See all commits since beta 4 here.

    ✅ (We tagged beta 5 mid-cycle as a test, but made a mistake with a dependency so we're ignoring that tag.)

    🚀 Be advised that the next beta release may be delayed as we transition a bunch of code to open source and work on a new website and official images/packages.

    🚀 Please remember that Caddy 2 beta releases are not yet feature-complete as development is ongoing, nor are they stable; there are likely to be some breaking changes between tags. We hope you will find ways to use Caddy 2 beta in production and report any issues you find!

    Thank you to all of you who have reported bugs or requested features so far. We've made good progress.

    👀 To learn how to get started, see the README on the v2 branch.

    This is a community effort, so please report bugs, join the discussion, and submit pull requests to be a part of the team!

    👌 Support:

    v2 Resources:

  • v2.0.0-beta5

    October 10, 2019
  • v2.0.0-beta4

    October 07, 2019

    🚀 Caddy 2.0 beta 4 is the next pre-release in the development cycle of Caddy 2. Some highlights:

    • 🔌 Plugged in the JSON 5 and JSON-C config adapters
    • 🆕 New file-server and reverse-proxy commands for convenience
    • 🔧 reverse_proxy module: Make request retries configurable based on properties of the request
    • 0️⃣ adapt subcommand: Default --adapter value is "caddyfile"
    • 🛠 Several bug fixes

    👀 See all commits since previous tag here.

    🚀 Be advised that the next beta release may be delayed as we transition a bunch of code to open source and work on a new website.

    🚀 Please remember that Caddy 2 beta releases are not yet feature-complete as development is ongoing, nor are they stable; there are likely to be some breaking changes between tags. We hope you will find ways to use Caddy 2 beta in production and report any issues you find!

    Thank you to all of you who have reported bugs or requested features so far. We've made good progress.

    👀 To learn how to get started, see the README on the v2 branch.

    This is a community effort, so please report bugs, join the discussion, and submit pull requests to be a part of the team!

    👌 Support:

    v2 Resources: