« Blog Index
May 10, 2018

Caddy 0.11 Released

By Matt Holt

We are pleased to release Caddy 0.11! The main contribution of this release is an integrated telemetry client, which enables you to check on the status of your server, examine the technical properties of clients connecting to it and, in the future, to gain insights beyond what logging or external monitoring systems can do. We hope telemetry will also produce a useful data set for the research and Internet standards communities. After months in the making, and through consultations with several academic, industry, and national research institutions, we're really relieved to deliver this to you today.

And of course—be sure to download Caddy 0.11 so you get the latest bug fixes.

The Caddy Telemetry Project

Caddy Telemetry was announced in January of this year, as part of an academic course that I got permission to work on for university credit. The goal is to develop a system that would provide a global, server-side perspective of the health and status of the Web. While client-side scans to probe servers are not uncommon, there is a lack of useful insights into the kinds of clients that connect to web servers and the behaviors they exhibit.

We called on (again) researchers and anyone else to get involved by offering their feedback and expressing any research goals they might have. The process was documented openly as work progressed. This project was developed with the help of several contributors, and after our telemetry pre-announcement blog post we got a lot more of your feedback, as well. Thanks to the collective efforts of several who participated in our Slack discussions, and in counsel from academic and research institutions, we've been able to get this up and running in just a few months while drawing from the experience of a diverse group of developers and field experts. That doesn't mean we got it perfect: but we're pretty pleased with the system so far.

Telemetry is detailed on the Telemetry documentation page. Look there for a list of which metrics are collected and how it is implemented. We were careful to design telemetry so that it should not adversely affect the performance of your server in any way. If you find that it does, file a bug report.

You can look up some basic stats about your instance on our new Stats page. We're just starting to build this out, so let us know what you want to see on these pages.

We are still in the process of proving our systems, so telemetry is currently OFF by default when downloading Caddy from our website or getcaddy.com. For the time being, all data that is collected will be considered expendible (in case we need to do a reset for the health of the platform, or technical correctness going forward), although we hope that won't be necessary. We plan to have any major quirks ironed out by version 1.0.

We encourage you to enable telemetry, see how it can be useful for you, and to contribute with us in understanding the global Internet a little bit better.

Benefits and Goals of Telemetry

The point of telemetry is to understand Caddy usage, gain insights into the technical behavior of clients on the Internet, and to enable ambitious research projects that improve the health and security of the Internet. Essentially, we're building the first-ever data set of its kind to observe the global status of the Web from a server-side perspective. Unlike most existing, similar data sets, the source of this data is anticipated to be widely diverse and not constrained to any single proprietary network or infrastructure. Data like this can also be used to help further and improve Web standards and client software. In the future, possibly even to automatically detect emerging threats and work to counter them in near-real-time.

Many large projects and popular software have been collecting telemetry for years: Google Chrome, Mozilla Firefox, Canonical's Ubuntu, and Microsoft Windows to name a few. Most, if not all, of these enable telemetry by default (including Ubuntu 18.04). Yet most telemetry data remains proprietary: it is usually walled off from the users of the software and is solely for product improvement purposes. Caddy telemetry, on the other hand, makes the data available to you. In addition—and unlike desktop / client-side software—Caddy telemetry collects mostly aggregate data, abstracted from a single end user; this adds another layer of anonymity as well as a new, unseen perspective of the Web for the research world.

We're really excited about the opportunities this opens up, and are optimistic about the future of the Web. We hope you will make great things happen, backed by Caddy telemetry data. To experts and researchers: we hope you will be interested and participate with us. For now, you can request access to query the data by telling us your specific research objectives. If telemetry could be made more useful to you, let us know how!

Next stop: 1.0

We are now setting our sights on a 1.0 release. Mainly, this will involve figuring out a compatibility guarantee and fixing bugs. This is not a strict feature-freeze, but we are narrowing our focus to making Caddy stable enough in its releases to be considered a true 1.x tree. It might even mean official packages for Docker or popular package managers.

A huge thanks to everyone who has contributed to Caddy to make it what it is today, and to those in our community who have helped others find answers to their questions!

« Blog Index