The harsh truth is that even Free Software costs money to write, and developers should be paid.
There's a long list of free shit that we're building on top of. It's a bit like somebody sticking a cherry ontop of a free cake then trying to charge for it.
This is why a lot of people just go down the consultancy route. I imagine Matt Holt will be better off simply from being the author of a famous project.
Don't get me wrong though, if the project can monetise Caddy, all power to them.
1. Immediacy (pioneer?)
2. Personalization (bespoke?)
3. Interpretation (consultancy?)
4. Authenticity (brand?)
5. Accessibility (SaaS?)
6. Embodiment (concierge/luxury?)
7. Findability (marketing?)
I'm not sure if anyone else has written abt this, but I'd like to read more.
Or maybe, you know, just have a better product. Case in point: NLEs. There are a whole bunch of free and sometimes open source NLEs, most of which just aren't particularly good.
Non-linear editing systems?
Some friends got hit by this: they forgot some upstream from a domain that got removed, at the next nginx restart the whole server didn't come up.
Basically you have to pay for basic error handling. It's not "more advanced deployments" at all.
I of course don't dispute that this limitation exists, but I'm just pointing out that the need for this type of error handling is, in my experience, quite rare.
There may be some very specific use cases where this is a deal breaker, but I would say the claim that the free version of nginx does not include "basic error handling" is a pretty grotesque exaggeration.
I don't understand - if my upstream is down my nginx returns the usual "503 Service Unavailable". Are there any particulars to the configuration you are describing?
Workarounds include using addresses not names (not practical at scale), running a local resolver that will hand out the last known address if it can't see the resolvers it normally forwards requests to or gets an NXDOMAIN response (extra hassle and technically breaks DNS so make sure other things don't use that resolver), or just ignoring the problem because it very rarely happens (though for some setups it is more likely than in others).
In my (current) uses of nginx it isn't a problem at all, though a concern springs to mind that might affect me later: if it only fails on startup, does that imply it isn't ever refreshing name->address mappings at all in normal operation so that if a server it is proxying for moves address that proxy config will start to fail until nginx is restarted? Any nginx experts want to comment so I can be lazy and not test or otherwise research this myself?
Still not a large amount for a company with a profit making product, of course, but companies with profit making products are fewer and farther between than companies would like, and for a one-man-band or other small business trying to boot-strap something bigger, there isn't the same drop/ocean ratio.
Also, the implied problem (this still needs confirming/contradicting, so I might be barking up the wrong end of the stick) that it may not be updating name->address resolution regularly during normal operation (otherwise why does this only cause failure on start-up?) might not by fixed by the extra modules enabled by the paid licence.
I believe just specifying a resolver should fix it, but another common workaround is to use a variable for the hostname
Nope.
resolver 1.1.1.1;
set $resolved_upstream whatever-it-is.lan;
proxy_pass http://$resolved_upstream;
I am for sale, FWIW. ;) The first one's on me.>> Their paid features are for larger and more advanced deployments.
This is simple not true.
Long answer, hopefully really thoughtful and careful as I've had time to think this through:
I think I remember sponsoring Caddy when it was still an open source project. Not much, maybe USD25 or 35 or something (dinner level or something I think it said).
Also I think they got a grant or sponsorship from Mozilla.
I never used it though, I only donated because I was enthusiastic about him creating a nice open source project that I would likely use in the future.
Next I know it is a commercial project, more or less (it took a while before I realized he had left a way around it and it seemed entirely intentional that it wasn't obvious.)
So now I have helped someone start a business, which is nice but not what I thought I did when I donated to a permissively licensed open source project. (I thought I was helping create a new Apache server.)
Still no big problems so far in my case, I'm lucky that USD25 is not much in my case and he probably deserved it even if it left a small sour taste right there and then.
The bigger problem is I never started using Caddy because when I came back to use Caddy I had to consider if my use case would be OK, if I would have to pay a license (which is fine with me but an extra hassle as it has to got through my boss) and suddenly it was very easy to fall back to Apache.
Suddenly instead of helping kickstart an open source project around a product I loved I've helped start a business with a product that I can't use.
You have to worry about counting instances vs licenses. This might sound trivial, but months down the road, are you still remembering to go through and check which licenses are affected anytime you make a change to the number of instances you're running? Can you spin up another instance or two to handle a load burst, or does that violate your license terms and/or require a purchase order go through finance first? What about dev/staging/testing stacks? Can you spin up a replacement for your production in a blue-green deployment and flip, or do you require 2x licenses?
If the license is enforced technically (eg, a license file) then you have to also have that as part of your deployment, but also make sure you secure it. In the worst case if the license is unique per instance, that pretty much precludes use in modern "cloud" environments.
What guarantee is there the cost won't go up 10x come renewal time next year? If it does, what does it take to replace the component? As others have pointed out, you also have to go through purchasing and maybe convince someone(s) that this purchase is necessary, etc.
This is all extra cost (time) and pain that really doesn't exist with using OSS -- and brings it far above whatever the list price is (even if it's "only" $25/node).
Also, from a developer perspective, none of these problems are fun or interesting to spend time on. Even if it has some feature that's missing in the OSS equivalent, I'd way rather spend my time building out a missing feature than doing licensing paperwork.
When I was a student I did managed to buy several software packages, with student discounts, at prices that would be around 100 to 300 euros nowadays.
Let alone when one is actually having a business instead of a student side job.
Did you buy all of those packages yearly and for every one of your clients?
And? Supermarkets don't take pull requests.
Just like you cannot expect people that you don't support their work, keep doing it for free ad eternum.
Sure you can.
$2000-3000 per year is not something that I am willing to spend on my side projects.
The problem is now no one uses your software because there are endless amounts of more permissive open source software available that work just as well.
In most of the world it's a lot though, even for developers. Being able to afford it is another thing than being able to comfortably afford it.
> Congratulations! Interesting new approach to funding open source: get acquired and let them figure it out!
Back during that mess, I settled on haproxy+certbot+nginx in containers to setup my personal sites, but something like Caddy can greatly simplify that kind of stack.
This is pretty cool news and I hope this project continues to develop. How have they solved their funding problems? Does this have to do with the comment about Ardan Labs? For other people with FOSS projects who want to be able to work on this kind of stuff full time and not care about motorization, what options are there (other than Patreon/crowd/community type funding?)