Caddy v2.0.0-rc.1 Release Notes

Release Date: 2020-04-02 // 2 months ago
  • 🚀 🎉 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)