You're being downvoted because you're asking another "I want everything, but works exactly to my needs, only the way I want it, and cheap." kind of question.
Cloudflare exists for a reason, as does every other DDOS mitigation platform. If there was a better or cheaper solution, they would be out of business already.
Best you're probably going to do for self-hosting is going to be blackholing abusive connections, but even then you're only going to be able to mitigate so much. Differentiation of mass amounts traffic still takes a massive amount of time and compute.
To add for people who might not be up on the technical aspects: DDOS mitigation works only if you have absolutely enormous amounts of bandwidth and compute resources to intercept and scrub the traffic.
It's not some magic wand someone is waving at a server and poof the DDOS disappears; it still comes into a datacenter, hits a server and is then mitigated before making it to your actual host.
So you have to invest in enough bandwidth and hardware to outscale the largest DDOS you're expecting, which is going to be far less than what's going to REALLY happen, and it has to be available even when nothing is going on.
It's expensive to offer, expensive to run, and only really gets "affordable" at the scale of someone like Cloudflare or Akamai or a hyperscaler.
It's either private, good, or cheap: pick one, maybe two.
DDoS is an advanced technique and the people who can do that spend a lot of time and effort putting malware on machines that can be ordered to perform DDoS on command. They usually sell that attack capability and it ends up getting used against worthy targets, we're talking attacks that disrupt entire industries, elections, warfare etc. Do you really think what you'll be hosting will attract that kind of attention and be impossible to take down with simpler methods?
To survive a DDoS attack you need a lot of resources, from a professional platform (like CloudFlare). The stuff they offer for free is not going to get you through a DDoS. If you'll read their terms you'll see it's worded just ambiguously enough to mean nothing. If you ever actually get targeted by an actual DDoS and you haven't paid a lot of money to a platform like that, everybody will simply drop you instantly (your ISP, your VPS provider, your tunnel provider, your VPN provider etc.) and possibly kick you off their service too.
If the stuff you'll be hosting is static files you can use a CDN service. CDN's are designed to be distributed and redundant so they're somewhat resilient to DoS attacks by default. They'll still kick you off if it gets to be too much but maybe you can weather shorter/moderate attacks.
If you're hosting a dynamic/interactive service forget about it.
Use your common sense. They're not going to expend any significant resources to keep up a free website.
They have a small capacity available for mitigating DoS for free accounts together, while resources last. If you happen to fit in that capacity at any given time that's nice, if you don't, you go down.
People simply don't care about whatever small website you plan on hosting. Unless it's something extremely controversial and you gain a lot of exposure suddenly.
It's worth worrying about if you ever get big but until then just forget it.
I.E. do something about it when/if it happens and not before. A ddos is fairly harmless unless you need to stay up for some reason (and you don't need to stay up).
Make your website all static files (if you can) and host on a CDN like Bunny.net. It's $1/month and your website might actually be able to get through some large traffic spikes. It won't work against a targeted sustained DDoS but like the other comments said that's not likely to happen.
They'd still fully consume the WAN bearer regardless of Crowdsec protecting the endpoint. For that you need a scrubbing centre to dump the traffic onto.
Cloudflare will be a lot more effective in case of attack. But I don’t think most people need more than a few mitigation rules. If DDOS really come, there are very few things you could do to mitigate anyway.