Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upProposal: Permanently change all proprietary licensing to open source #2786
Comments
This comment has been minimized.
This comment has been minimized.
|
Hi, Congratulations on your partnership with Ardan Labs. This seems like a great fit for you, your company, Caddy, and the greater Caddy community. Really awesome to see the eagerness of wanting to completely open source Caddy and the timetable of releases of caddy v2. In an effort to tell the world about all of this, I'd recommend another FLOSS Weekly interview. You were last on November 2015! https://twit.tv/shows/floss-weekly/episodes/364 So long ago. Since I am not an enterprise user of Caddy, I have no objections to your proposal and I'm anxious to see what's next for you. |
This comment has been minimized.
This comment has been minimized.
|
This is great and I commend you on the effort. My only question would be why not take it the extra step and put Caddy into the Apache Incubator? That way it would exist in a trusted non-profit that has a proven track record at fostering open source communities. They also have some experience with HTTP servers I've heard... |
This comment has been minimized.
This comment has been minimized.
|
This was my major concern before digging into caddy. This is a yes from me. |
This comment has been minimized.
This comment has been minimized.
|
This is great. I have had a number of clients wave off and not use Caddy simply because it wasn't fully open source. This is an excellent turn of events. |
This comment has been minimized.
This comment has been minimized.
|
Thank you ! Thats a yes from me |
This comment has been minimized.
This comment has been minimized.
|
Wow! This is excellent news! This will certainly help increase adoption. |
This comment has been minimized.
This comment has been minimized.
|
It will help increase adoption. |
This comment has been minimized.
This comment has been minimized.
|
This is fantastic news @mholt. Congratulations, looking forward to all this. |
This comment has been minimized.
This comment has been minimized.
|
Thank you everyone, for your feedback so far -- we are reading all of it. @jungle-boogie - good to hear from you again!
Yes, we'd love to go on. I would love it if @ardan-bkennedy would go on with me.
We can look into it. It seems like this proposal will overwhelmingly pass. Our immediate focus will be getting the website updated along with accelerating v2 development. By the way, if you're just joining us, have a look at what v2 has to offer here: https://github.com/caddyserver/caddy/tree/v2 with docs here ("Version 2" pages): https://github.com/caddyserver/caddy/wiki#version-2 -- We fully expect that v2 will be competitive replacement for other web servers/proxies as it reaches maturity, with all the added benefits Caddy has to offer. So please, try out v2 as soon as you are able, and get involved with your feedback, issues, pull requests -- the sooner we can spread out more of this to the community, the faster it will come together and the better it will be. Plus, it'll be fun. |
This comment has been minimized.
This comment has been minimized.
|
@mholt Great news! I've followed Caddy for several years, but have hesitated to switch because of lock-in fears. This will certainly drive adoption! Out of curiosity, what prompted this change in focus? |
This comment has been minimized.
This comment has been minimized.
|
@mholt Congratulations! Interesting new approach to funding open source: get acquired and let them figure it out! |
This comment has been minimized.
This comment has been minimized.
|
Great news! Thank you very much for all your efforts you are putting into the project! 👍🏻 |
This comment has been minimized.
This comment has been minimized.
|
Great initiative! |
This comment has been minimized.
This comment has been minimized.
|
Fantastic news. If this proposal passes I will give Caddy a try in production and will look for opportunities to contribute to the project. |
This comment has been minimized.
This comment has been minimized.
|
This is a pleasant and very welcome surprise! This change will remove the only barrier remaining for me to recommend Caddy to all my clients. |
This comment has been minimized.
This comment has been minimized.
|
Go for Copyleft, not a permissive license. |
This comment has been minimized.
This comment has been minimized.
|
This is good news and a choice that will definitely drive adoption! The new licensing model will allow the full Caddy server to be packaged in GNU/Linux distributions. Not having a native package in Debian/Ubuntu has been a blocker in some potential use cases I encountered. |
This comment has been minimized.
This comment has been minimized.
|
This is good news! I also think getting caddy to EPEL or such package would speed up adoption, getting caddy to be easy as apt/yum install package will help a lot. Also caddy needs its own SELinux rules for Enterprise operating systems. |
This comment has been minimized.
This comment has been minimized.
|
This is fantastic! I'm looking forward to the future with caddy! |
This comment has been minimized.
This comment has been minimized.
This |
This comment has been minimized.
This comment has been minimized.
|
@carlwgeorge, I think this will be very good for the future of the Fedora packaging for caddy. |
This comment has been minimized.
This comment has been minimized.
|
@raatti Caddy is packaged in Fedora and EPEL. I recently updated it to v1 for Fedora 31. It also integrates correctly with SELinux. |
This comment has been minimized.
This comment has been minimized.
|
I am not involved with the project in any way; but I hope you can find/use a clear licence to use specifically (I am not making any recommendations, that is up to you of course, but it should ideally be clear and understandable for downstream users too, in particular if there are any exceptions to this, so I hope the transition will also include all necessary details IF there are exceptions that is). |
This migrates a feature that was previously reserved for enterprise users, according to #2786. The PEM loader allows you to embed PEM files (certificates and keys) directly into your config, rather than requiring them to be stored on potentially insecure storage, which adds attack vectors. This is useful in automated settings where sensitive key material is stored only in memory. Note that if the config is persisted to disk, that added benefit may go away, but there will still be the benefit of having lesser dependence on external files.
This migrates a feature that was previously reserved for enterprise users, according to #2786. TLS session ticket keys are sensitive, so they should be rotated on a regular basis. Only Caddy does this by default. However, a cluster of servers that rotate keys without synchronization will lose the benefits of having sessions in the first place if the client is routed to a different backend. This module coordinates STEK rotation in a fleet so the same keys are used, and rotated, across the whole cluster. No other server does this, but Twitter wrote about how they hacked together a solution a few years ago: https://blog.twitter.com/engineering/en_us/a/2013/forward-secrecy-at-twitter.html
This comment has been minimized.
This comment has been minimized.
|
Okay, proposal officially accepted and in motion. I've drafted PR #2799 which (when finished) will bring all the enterprise code into this repo as open source. Almost all these features were already documented on the wiki, so you can learn how to use them from there. Individual commit messages have some details on each feature, but I'll summarize them here:
Anyway, that's what is around the corner with this next beta release. As for the other objectives, namely the website:
Thanks for your input, everyone! Along with caching and embedded scripts, we also would like to add modules for:
Feel free to take a look at the code and get involved, especially on the many unfinished or desired modules. (Always open an issue to discuss your plan in detail before spending lots of time on a PR.) This should be fun!! |
This comment has been minimized.
This comment has been minimized.
|
@mholt After this change, do we need to continue having the CLA requirement? The CLA only makes it easy for relicensing to proprietary, and if we're switching to pure open source, it's not needed anymore... |
This comment has been minimized.
This comment has been minimized.
|
@Conan-Kudo Caddy, like many open-source projects, is using the Developer's Certificate of Origin to make sure that contributors have the right to push changes into the Caddy project. This is not a CLA per definition, it's widely recognized, and respected by the open-source community.
|
This comment has been minimized.
This comment has been minimized.
|
@elcore Ah, that's fine. I assumed it was different since you were using SAP's CLA Assistant bot (the terms weren't loading for me...) |
This comment has been minimized.
This comment has been minimized.
|
@Conan-Kudo Yeah... Sometimes it takes some time to load, you probably have closed the tab too fast |
This migrates a feature that was previously reserved for enterprise users, according to #2786. The Starlark integration needs to be updated since this was made before some significant changes in the v2 code base. When functional, it makes it possible to have very dynamic HTTP handlers. This will be a long-term ongoing project. Credit to Danny Navarro
This comment has been minimized.
This comment has been minimized.
Yes. The CLA verifies that you have the right to submit the change. We use the Linux Foundation's DCO. Without a signature on each contribution, companies like Google were unable to use Caddy.
Our CLA does not assign copyright. The original author retains the copyright over their original work, but licenses it for use according to the project's open source license (Apache 2.0 in our case). I've finished pushing the rest of the code. The Starlark middleware needs more work to bring it up to speed with the current Caddy 2 architecture. Like with the caching module, contributions are welcomed here as well. |
This comment has been minimized.
This comment has been minimized.
It's worth emphasizing here that it's not that they're unable to use Caddy without it, but rather that they're unwilling to use it. There's no legal requirement for it; this is just a risk reduction demand on Google's part. Whether that's something the project should accommodate is a separate discussion, of course, but I think it's important to be clear about where the requirement comes from. @mholt Please do be careful not to make the same mistake as the Linux Foundation and various other projects; namely, to demand that "real names" be used in the DCO. There's really no legal value to that, and all it does is scare off people who have very legitimate reasons not to want to put their government-registered name on their work, eg. because they belong to an at-risk minority of some sort. |
This comment has been minimized.
This comment has been minimized.
|
Relax.
I think it's obvious that we want large companies using Caddy. And I say "unable" because the red tape that is needed to circumvent or change those requirements becomes practically impossible at companies like Google.
Are we demanding that? I've never heard of this. |
This comment has been minimized.
This comment has been minimized.
|
I'm perfectly calm, just pointing out a few things of note :)
I don't know if the Caddy project does, but I do know that the Linux project does (and there's been a kerfuffle over this on a mailing list, IIRC). This wasn't an accusation, rather a heads-up, since this consequence of a 'real-name policy' tends to get missed a lot when projects consider whether to institute such a policy or not. |
This comment has been minimized.
This comment has been minimized.
We don't. |
This comment has been minimized.
This comment has been minimized.
|
That's good to hear! |
This comment has been minimized.
This comment has been minimized.
|
Reasonable commercialization is always a good thing. It's surprising that a stable version of Addy V2 will be released in Q1 2020. |
This comment has been minimized.
This comment has been minimized.
|
This is very exciting news! I can't wait to try out Caddy v2. |
This comment has been minimized.
This comment has been minimized.
|
@whalehub you don't have to wait: https://github.com/caddyserver/caddy/tree/v2 |
This comment has been minimized.
This comment has been minimized.
|
Update for the week: All the code that has been open-sourced is now available in the beta 6 pre-release: https://github.com/caddyserver/caddy/releases/tag/v2.0.0-beta6 Hoping to get the updated website released this week, followed by the WIP Kubernetes ingress controller. (We'll want the community's help to finish that, by the way!) We're also actively working on Docker, Debian/etc, RedHat/etc, DigitalOcean, AWS, and other official distros/images. This part is especially a community effort, so if you have chops packaging up Go programs for any distribution channels, let us know and we'd love your help! (See relevant issues) |
This comment has been minimized.
This comment has been minimized.
|
What a great update! Is there any plan to support invalidation with the cache layer? support for surrogate keys would be a killer feature (e.g. https://docs.fastly.com/en/guides/purging-api-cache-with-surrogate-keys) that could bring a lot of users! |
This comment has been minimized.
This comment has been minimized.
|
@lpellegr Yes, the caching handler is a WIP. Please feel free to open a new issue to discuss how that can be done. Thanks! |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Final update on this We've recently released the work-in-progress Caddy Kubernetes ingress controller and the NGINX config adapter. This concludes our transition to fully open source licensing. Thank you, everyone! In addition, our community has made significant strides in publishing official images/distributions for: We are still looking for experienced volunteers to work on Debian/Ubuntu packages. If you would like to help us publish official Debian/Ubuntu packages, please let me know! We also need help finishing the NGINX adapter and Kubernetes ingress controller. We can help coordinate efforts, just start getting involved on the repositories and we'll take note. You can also post on our forums if you have questions. Thanks! |
We (Light Code Labs in partnership with Ardan Labs) have decided that we would like to make all Caddy code open source and permanently remove all proprietary licensing within the project, effective as soon as this proposal is accepted.
We would like the community's feedback on these plans, which are as follows:
released under the same open source license and moved into open repositories
With regards to the website, our plans are:
caddyserver.com/v1with redirects for most URLscaddyserver.comthat reflects the values, features, and benefits of the new Caddy projectWith Ardan Labs as our official partner for the Caddy project, we are ready to support the enterprise use cases. Ardan Labs is world-renowned for their Go training and support in the enterprise setting. We are confident that businesses will love using Caddy 2 once they try it, and we look forward to supporting their production use cases.
Our plans for businesses are:
With regards to Caddy v2, our plans are:
We want the world to know that Caddy:
We hope these changes will make this vision for the new Caddy project a reality.
What do you think?
Please submit your votes and feedback in this issue, and share it as widely as you can because this is the culmination of many years' efforts from ourselves and many of you! Thank you to everyone involved!