10 ms·
Caddy Server Is Acquired By Apilayer
- tpetry 6y agoCaddy is a really nice server but the documentation for v2 is kind of strange. Every documented config setting is for the new json format, but there is almost no information or examples for a complete json config. And all complete examples are with the old Caddyfile which has now no documentation anymore.
- francislavoie 6y agoThat's not true at all. There's a ton of documentation for the Caddyfile https://caddyserver.com/docs/caddyfile https://caddyserver.com/docs/caddyfile Examples can be found on the wiki on the community forums (which is linked to right at the top of sidebar in the docs site): https://caddy.community/c/wiki/13 https://caddy.community/c/wiki/13 If you still need v1 documentation, you can download an archive of the old website here (linked in the bottom of the docs sidebar) https://caddyserver.com/caddy-v1-docs-archive.tar.gz https://caddyserver.com/caddy-v1-docs-archive.tar.gz but please upgrade to Caddy v2, it's better in every way.
- goliatone 6y agoI think there is a more positive interpretation of comments like GP regarding the v2 documentation. There might be content but is not discovered easily. I have experienced this myself, the structure of the docs, currently, is not structured in a way that makes it easy to find what you need. A lot of the meat is interspersed in random replies to questions both in github issues and community posts. Also, I have the impression that some content is not accessible (linked?) from the side bar in the docs page but only through links from content pages. Most google and github search return content for v1, most tutorials online are for v1. I don’t think the feedback was meant to detract from the effort put to document things, it just highlights that current documentation could be better organized.
- mholt 6y ago> I have the impression that some content is not accessible (linked?) from the side bar in the docs page but only through links from content pages. That may be true, but we have hundreds of content pages in the new docs. It's a bit unmanageable to have them all in a sidebar. Not sure what we can do about search results and content on other sites, either, other than encouraging contributions to our wiki so people can find things easier.
- lmeyerov 6y agoA belated congrats! We love Caddy, especially for the read-friendly nature of Caddyfiles and the built-in LE. But, we do find the docs and plugin situations difficult enough for deeper customization + debugging that we still also use Nginx elsewhere, and are only now getting serious about a V1 -> V2 migration. The below are about our V1 docs experience and looking at V1 -> V2 migration two times and being scared off, and hopefully actually doing it the third time. 1. Docs: -- Common full working configurations are unclear: Finding them requires Google searches hitting broken examples in support forums, when you are lucky that they exist. This is common stuff like proxying, auth API gates, etc. (There was a small V1 github repo that was helpful, it may exist for V2 as well now?) -- The doc style seems to prioritize terseness vs. clarity. (Even in math, we know an error-correcting language uses repetition & spacing to provide value beyond what a minimal number of characters can do ;-)) -- Examples... aren't. Ex: They are generally 'out-of-context', so unclear how to put into a full working configuration, even at the syntax level 2. Plugins: The philosophy of pushing basic capabilities to the community via plugins makes sense for a small-staffed effort, though like the JavaScript nodejs/npm situation, that causes its own problems. The above examples like auth are so basic that even if they're via the community, they're part of a migration of a real implementation, and even if the core is fine, they're central enough that they need to be great too: features, docs, etc. Node kind of got away with it b/c a few people took on big lifts for stuff like the HTTP libraries, and that was a big part of the success. Our earlier analysis of basic V2 plugins showed they were a WIP, and while we're now revisiting, it was disappointing to see V1 stopped. Hope that helps! We are not paying users, but we do evangelize to federal + F500 IT types.
- 6y ago
- mholt 6y agoA lot of the "how to" stuff is moved into the wiki, which the community can edit directly: https://caddy.community/c/wiki/13 https://caddy.community/c/wiki/13 Including an article for how to write a JSON config from scratch: https://caddy.community/t/writing-a-caddy-json-config-from-scratch/7524 https://caddy.community/t/writing-a-caddy-json-config-from-s... And using JSON config to only keep certificates renewed: https://caddy.community/t/using-caddy-to-keep-certificates-renewed/7525 https://caddy.community/t/using-caddy-to-keep-certificates-r... If you need v1 docs, there's still a link to them at the bottom of our current docs' sidebar. I recommend everyone start with the Getting Started guide, no matter how new or experienced you are: https://caddyserver.com/docs/getting-started https://caddyserver.com/docs/getting-started If you're coming from v1, we have an upgrade guide: https://caddyserver.com/docs/v2-upgrade https://caddyserver.com/docs/v2-upgrade
- patates 6y agoI really love your work, but in comparison to how easy v1 was to configure, the new JSON stuff is "here be dragons" level. For me at least. This is, however, a nitpick in the grand scheme of things. Thanks for making caddy and keep up the great work!
- brainzap 6y agoAgree, migrating was very painful
- francislavoie 6y agoIt would be helpful to understand why you found that to be the case. We get off-hand comments like this about the docs on occasion, and without explanation, we can't do anything to improve the docs to resolve the complaints. We put in a ton of effort on the docs, and we think they're great. What are you missing? Did you spend the time going through and reading the docs?
- mattbee 6y agoI've also seen the negative sentiment to the v2 docs. I've been hesitant to jump in on the community site because I've seen a lot of - very polite, like yours - RTFM responses, citing the work you've put in etc. I am probably one of those people who would have flamed someone 20 years ago for posting a critique like this without _any_ time to help directly, but I'm not too proud to give you a "moron in a hurry" perspective, because I think it answers your question. Firstly - maybe do nothing. This is just what losing your old users looks like. They make a lot of noise that things aren't the same, that they're lost, confused etc. and want you to sink a lot of effort into making them comfortable. It's probably not worth it! You know what your success metrics for Caddy look like - so if v2 is succeeding in terms of adoption etc. - just let users go, or trust that they will work it out eventually. But as one of these muddled users from 5 years ago who has put v2 into production despite the confusion: the v1 docs were brilliant. They were written hand-in-hand with a piece of software that had a target user in mind, and was so clearly hungry for adoption. The Caddyfile remains excellent, an ambitious design to map out what admins truly wanted to configure in a web server, removing everything else. I think that explains negative sentiment to the v2 docs - Caddy is not built around the Caddyfile any more. So the docs don't centre it, and so caddy doesn't look like it's designed to do the same things. With v1, I felt that as I understood the Caddyfile, I understood caddy, an important and magical new binary on my system. That was almost certainly a flattering lie, but it never faltered. Every experience I had with v1 backed it up. The v2 docs make clear that the Caddyfile is _legacy_, and that my old understanding doesn't help. The "Getting started" guide introduce Caddy's config with a JSON config eight brackets deep. Eight! Then it tells you about the API that you might want to use to reconfigure it. Then it tells you about the Caddyfile, but makes clear that it's compiled to the "real" config, and that you'll miss some features in using it. I briefly look for the JSON reference, and it's nothing like as simple as the Caddyfile. I dig 3 brackets down before to find the configuration for the HTTP server (wait, what, that's just a module now), and there's a lot of boilerplate in that. So there's this mental conflict as I read - the docs say that Caddyfile is _a_ valid way of configuring caddy, but it's clear I'm missing out a true understanding of the program which now has a lot of boilerplate. BOOOOO to boilerplate. Like caddy has spilled its guts into the JSON - the hardwired elegance is a bolt-on. I'm sure this is a lot like how v1 worked, except the v1 docs didn't want me to love its guts. The v2 docs document Caddy very well, but they sugar-coat the effort of re-understanding a server that old users felt they understood before. It is just not as easy as it was (NB it is still quite easy). I am happy I can continue using v2 because of the nearly-the-same Caddyfile, but at some point I will have to understand the JSON to really feel in control of my server - maybe that's only 2-3x more work than writing this comment has been :) but that's work the v1 docs never made me do.
- tyrust 6y ago>Every documented config setting is for the new json format I did my v2 migration this past weekend and for few minutes thought this as well. I think part of the problem is that when you use the site search for some Directives all that comes up is a selection of the corresponding Module docs and not the Directive docs. For example, if I search "reverse_proxy" I get links to pages like [0] but no link to [1]. If the search could prioritize exact-matches to document titles that may help. [0] - https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random#module-list-container https://caddyserver.com/docs/modules/http.reverse_proxy.sele... [1] - https://caddyserver.com/docs/caddyfile/directives/reverse_proxy https://caddyserver.com/docs/caddyfile/directives/reverse_pr...
- ozfive 6y agoAgree with this comment 10x. There is a disconnect on the config settings that needs to be resolved.
- francislavoie 6y agoCare to elaborate? What issues are you talking about?
- rhacker 6y agoDoes it make sense to announce that a company has "acquired" an open source project? Wouldn't it make sense to title and write the article that the company that writes most (or all) of the code was acquired? "Light Code Labs, LLC."
- mholt 6y agoLight Code Labs was not acquired; just the Caddy and CertMagic projects and their assets.
- krn 6y agoWould it be safe to say then, that Apilayer has simply acquired the trademarks and the domain name of an open-source project? Edit: If the entire project is licensed under Apache License 2.0, what does acquiring the copyright give? The ability to change the license going forward?
- renewiltord 6y agoAnd the copyright, dude. And literally what else is there? That's the project itself.
- deleted 6y ago[deleted]
- IshKebab 6y agoAnd copyright?
- Xylakant 6y agoThey probably also acquired the copyrights the seller held on the code, allowing them to use them as they see fit ( for example integrate them in products that have incompatible license requirements)
- gregwebs 6y agoOpen source projects still have a copyright holder with special rights.
- atonse 6y agoDidn't they already join forces a while back? Am I missing something here? And what does this do for Caddy as an open source server? Will it fork into a confusing mess of features like nginx did? Update: According to mholt's post above, the gist: - happened 6 months ago - everything is still Apache 2.0
- mholt 6y agoI was hired by Ardan Labs last year to develop Caddy 2. Ardan is still the exclusive partner for business/enterprise support (which I recommend for companies using Caddy). I now work on Caddy full-time through support from apilayer (the new owner) and other sponsors. This should be a more stable and long-term arrangement that benefits everyone, especially the user base / community! The last six months should give you some idea. And no, I'd rather quit than make a mess of the project.
- atonse 6y agoGreat, and congrats again on the arrangement. Definitely more sustainable.
- fb03 6y agoWhat does this means for Caddy? Are we gonna need to fork or are they gonna simply keep developing it in an open way? I wasn't able to grok this info from the post in the link. Thanks in Advance.
- freedomben 6y agoLooks like the license won't change, and now there's an easy way to get a paycheck[1] [1]: https://caddy.community/t/caddy-and-certmagic-have-new-ownership-no-changes-to-licensing-or-development/9754?u=matt https://caddy.community/t/caddy-and-certmagic-have-new-owner...
- fb03 6y agoamazing! thank you
- mholt 6y agoHi HN. Here's my own announcement with some details: https://caddy.community/t/caddy-and-certmagic-have-new-ownership-no-changes-to-licensing-or-development/9754?u=matt https://caddy.community/t/caddy-and-certmagic-have-new-owner... Please note that there are no changes to licensing, and this transfer actually happened about six months ago. I'm quite happy about this. We're already seeing some great things. For example, in Caddy 2.2 there will be native ZeroSSL ACME support (with Let's Encrypt still being the default, because ZeroSSL requires EAB) -- which is appealing because ZeroSSL doesn't have tight rate limits like Let's Encrypt does. It's also good to diversify the ACME CA ecosystem a little bit. I'm also less stressed and outputting better quality work this year. (Compare the code base from Caddy 1 with that of Caddy 2 and you'll see what I mean.) We have more committed maintainers as well due to its growth and stability, which I'm very grateful to all who contribute!
- freedomben 6y agoThanks for posting this. I had immediate fear and this made much of it go away.
- Semaphor 6y agoGood to hear and thanks for your (and others) work on Caddy, it’s always been fun to use for my self-hosted setup :)
- mholt 6y agoGlad it's fun! Home projects should be enjoyable like that. Hopefully you can deploy it into production for your next work project too.
- gigatexal 6y agoso is this an acqui-hire?
- johnghanks 6y agois caddy the one where the lead maintainer is an opinionated ass in pull requests?
- francislavoie 6y agoThat's inflammatory. Care to elaborate your statement with evidence?
- anaganisk 6y agoI think you're talking about Iris framework guy
- RcouF1uZ4gsC 6y agoJust wanted to say that I love CaddyServer. It is super easy to use with minimal boilerplate. The automatic https support it uses LetsEncrypt to acquire a cert for the domain it is hosting is awesome and one of my favorite features! Congratulations on the acquisition!
- mholt 6y agoThanks! It's great to hear the positive experiences too.
- ksec 6y agoOk. 1. It is now 404 2. Apliayer ( https://apilayer.com https://apilayer.com ) 3. What has Ardanlabs got to do with Apilayer? 4. What is the relationship between Caddy, Ardanlabs, and Apilayer? Edit: May be just change the link to https://caddy.community/t/caddy-and-certmagic-have-new-ownership-no-changes-to-licensing-or-development/9754?u=matt https://caddy.community/t/caddy-and-certmagic-have-new-owner...
- hundchenkatze 6y ago1 - Ardan Labs changed the url to https://www.ardanlabs.com/news/2020/08/caddy-server-acquired-by-apilayer/ https://www.ardanlabs.com/news/2020/08/caddy-server-acquired... 2, 3 - Based on the Cruchbase page for Apilayer, they were acquired by Ardan Labs yestday.(?) https://www.crunchbase.com/organization/apilayer-ltd https://www.crunchbase.com/organization/apilayer-ltd Or maybe the two companies bought Caddy together? I'm not really sure. > Ardan Labs announces they have secured the acquisition of Caddy Server with Apilayer.
- mholt 6y agoHonestly that Crunchbase page looks automatically generated by a bot. It's not accurate.
- hobofan 6y agoEven if it's not automatically generated, Crunchbase is (or was?) a crowdsourced wiki, and one of the worst ones at that, with next to no quality control and moderation.
- ardan_bkennedy 6y agoApilayer acquired Caddy only. This is a mistake by Crunchbase.
- ardan_bkennedy 6y agoThe original url was put back https://www.ardanlabs.com/news/2020/08/caddy-server-is-acquired/ https://www.ardanlabs.com/news/2020/08/caddy-server-is-acqui...
- FlyingSnake 6y agoAs a heavy Nginix user could someone shed some light on why Caddy is a better alternative? Serious replies only, please.
- francislavoie 6y ago- Built-in ACME client, automated certificate management - Simpler configuration language, the Caddyfile - Single static binary, no external dependencies - Built with Go, so memory safety is essentially solved - Very pluggable if you need to add additional behaviour (simple Go module plugin system) - Config API with graceful reloads - Plenty more, just scroll through the homepage to get an idea: https://caddyserver.com/ https://caddyserver.com/
- calcifer 6y agoThe parent comment asked why Caddy is better than Nginx but I'm not sure some of these are applicable. > Built with Go, so memory safety is essentially solved Has there been any memory safety issues with Nginx? > Very pluggable if you need to add additional behaviour Nginx is easily extendable and has far, far larger plugin ecosystem than Caddy. > Config API with graceful reloads So does nginx, with "nginx -s reload"
- mholt 6y ago> Has there been any memory safety issues with Nginx? Yes, of course. For example, nginx uses openssl, so it was vulnerable to Heartbleed, something Caddy can never be vulnerable to. Part of the point of Caddy is to stop deploying C code to the edge. > Nginx is easily extendable and has far, far larger plugin ecosystem than Caddy. Nginx is also 4x older. I'd say for just a few years we're doing pretty good with our very young plugin ecosystem. A lot of this depends on the community. If you want it, make it so! > So does nginx, with "nginx -s reload" I think he was referring to a REST/JSON API that isn't unix-specific.
- calcifer 6y ago
- hundchenkatze 6y agoIt seems Ardan Labs changed the url to https://www.ardanlabs.com/news/2020/08/caddy-server-acquired-by-apilayer https://www.ardanlabs.com/news/2020/08/caddy-server-acquired...
- ardan_bkennedy 6y agoThe original URL was put back https://www.ardanlabs.com/news/2020/08/caddy-server-is-acquired/ https://www.ardanlabs.com/news/2020/08/caddy-server-is-acqui...
- alextselikas 6y agoI talked to matt when Caddy 2 launched and was very helpful. Caddy is a great piece of software!
- jarym 6y agoI must admit I saw this when it was first announced and I didn’t get why it was better but seeing it again and having more time on my hands I intend to experiment a bit further. Congratulations to the author for their success - it is clear they’ve created a community of happy users and probably worked really hard to get here.
- dzonga 6y agois there anything for caddy, like nginx nchan ?
- francislavoie 6y agoNot currently, no. It shouldn't be too hard to implement a plugin that does something similar though! If there's an existing pubsub solution in golang, it could be integrated into Caddy.
- thomasfromcdnjs 6y agoCaddy is the best way to get junior devs up to speed. And the reverse proxy is amazing. And it is easy to know what caddy is doing compared to nginx etc
- pcein 6y agoThe first time I used caddy (came to it from nginx), I was blown away by how simple it was to get up and running (letsencrypt etc...). Thank you for creating something wonderful, and congratulations!
- nklmilojevic 6y agoHi Matt and the team behind Caddy - I would say that we are very happy with it in MailerLite (https://www.mailerlite.com https://www.mailerlite.com). We have a feature that is called landing domains, which gives the user possibility to use custom domains for their landing pages built through us. We also provide a free SSL certificate for it and previously have used nginx with some custom LetsEncrypt implementation. With Caddy and its ask point we just created a simple microservice which is hit each time there is a request to Caddy to issue the certificate, returns status 200, and we are good to go. It has been marvellous to use in our k8s setup with Redis plugin. I'm also really happy that you improved startup time with 2.2.0rc1, because we had problems as our setup is massive (over 8000 domains and certificates). It took 17m previously when we redeployed the app for the pods to startup, now it takes ~30s which is quite ok as we also have autoscaling in place. As of the docs, I also find it a bit confusing, coming from v1. :) I use Caddy for my personal stuff as well and it was quite a learning curve to get the same setup I had before work in v2, but as you said, it is one-time only so it is okay. Keep up the great work!
- mholt 6y agoThanks for your feedback! That's great to know. The startup times were recently improved in collaboration with one of our corporate sponsors, Fathom Analytics. The remaining duration is likely due to the speed of the storage backend and/or CPU, but I'd need to see a profile to know with more certainty. 8000 certificates is a lot of decoding/encoding and crypto operations. Caddy can handle it, but the hardware has to be up to snuff too. Post in our forum and we can look for ways to optimize it even more once we know where the bottleneck is.
- nklmilojevic 6y agoThank you! Will do.
- guggle 6y agoThank you for Caddy ! It's been my default HTTP server for a few months and so far the user experience is stellar.