Anyone else dislike v2?

I hate what caddy has become.

Now I know this is a non-popular opinion and I know that a lot of time and effort went into creating v2. When I started to learn how to use v1 and write the v1-caddyfiles, I was astonished it could be so simple. No endless number of configs to manage and it just worked. I liked the Caddyfile. Now its all just a confusing mess.

I read the documentation for migrating from v1 and was even more confused. “Why do I need an API endpoint for configuring my webserver?!” “Why is the config suddenly JSON?!” “Do I have to re-learn how to write configs in JSON now?”
If I want to use Caddyfiles, I have to convert them. I didn’t find a tool to convert v1-Caddyfiles to v2-Caddyfiles, only for v1 to JSON. This sucks. The JSON configs may be a lot more dynamic but they aren’t as good as the Caddyfiles for overviewing what it actually does!

Caddy V2 is not the next version of Caddy, it is a completely new piece of software. I want Caddy v1 back and I want it maintained. I just think it’s sad.

This is just a misunderstanding on your part @MCMainiac.

Caddy v2’s default config language is JSON, and is what it uses internally. In v2, the Caddyfile is an adapter, which is essentially syntax sugar (plus some nice magic) that translates to JSON. It’s very easy to use.

You don’t need to use JSON at all in Caddy v2, it’s just what is used internally. The docs are written such that you’re aware that that’s how Caddy works, because otherwise you would never know the depth of the power Caddy offers.

The API is necessary to allow for zero-downtime graceful reloads of Caddy when you change your configuration, in a manner that works cross-platform (Windows/Mac/Linux). The caddy reload command essentially just makes an HTTP request to the API to push new configuration.

Caddy v2 is a complete rewrite from Caddy v1, from the ground up. Caddy v1 had a huge laundry list of limitations and pitfalls that made it very complicated to solve certain usecases. A rewrite of the codebase was necessary to make it much more flexible. This unfortunately means breaking changes. We also took the opportunity to implement everything that was on our wishlist for the project for years but never had the opportunity to try because it would be too big a fundamental change to v1’s architecture at the time.

If you need help to convert your Caddyfile from v1 to v2, please open a help thread on these forums, and we’ll help you out. Posting an angry comment like this doesn’t solve anything. Please spend the time to learn why things changed.

I’m considering closing this thread, because it’s just turned into an opportunity for anyone with their misunderstandings to complain, but I don’t want to make anyone angry by doing so.

If you have any specific complaints or questions, please open a new thread instead of reviving this one.


Thanks for your feedback @MCMainiac, but you are confused (incorrect) about a number of points.

Why? Just keep using the Caddyfile: Caddyfile Tutorial — Caddy Documentation

You don’t, but a lot of people do. If you don’t need it, don’t use it.

Lots of reasons! v2: FAQ · caddyserver/caddy Wiki · GitHub

But again, if you don’t like JSON, don’t use JSON.

No you don’t. Not sure where you got that idea: Caddyfile Quick-start — Caddy Documentation

The v1 Caddyfile is not compatible with v2. That’s why we call it v2. :slight_smile:

Feel free to make a converter tool though! I’m sure yourself and others will be very pleased. This is how open source projects work, after all. You can complain or you can contribute. Prefer contributing.

There are many pros and cons to each: Getting Started — Caddy Documentation

Which is why both are available.

In case you’re new to open source, here’s how it works: if you want something a certain way, you can make it that certain way! :smiley: So if you want to keep maintaining v1, feel free to do so!

1 Like

Thanks @matt and @francislavoie for your replies.

As you may have realised while reading my comment from earlier, I was angry because something didn’t work, went to this forum and saw a thread titled “Anyone else dislike v2?”. It wasn’t right to just complain about things. Reading through your comments here makes some decisions clearer for me.

I got the idea when I changed no config at all and just replaced the binary. On startup it complained about unknown directives. So I had to convert v1-Caddyfiles to v2-Caddyfiles.

I’m not really new to open source software projects, but I don’t have the expertise to maintain a project like caddyserver v1. Neither have I the time, nor do I have the knowledge. Consider it a cry for help which is hopefully picked up by someone more capable than me.

In any case, I think you developed software, which is very useful and became even better (in terms of quality and quantity of features) than the previous version.


Awesome, glad we cleared that up.

Please open a new thread if you need any help with getting up and running with Caddy v2!

I’m going to close this thread now, because all the questions have been answered.