I'm writing an email newsletter subscription manager. The server is a Python program using Flask. Are there any good CAPTCHAs I could use that are completely open source and do not connect to external servers for any reason? I would also prefer for it to work without JavaScript (using JS is okay as long as it's still possible to complete the CAPTCHA without it), but this is not an absolute requirement. I'm willing to write the CAPTCHA if nothing that meets these requirements is available, but I would prefer to use an existing project.
2 Answers
Maybe this project: https://github.com/lepture/captcha
Or this one: https://github.com/hasadna/OpenCaptcha
Another two open source and self-hostable Captcha solutions that are relatively well maintained as of today (2023-11-07). Please note that I have not tested any of them myself.
mCaptcha is PoW-based and seems to have a nice web UI for setup. As far as i can see it requires Javascript clientside.
LibreCaptcha provides a framework where you can create your own Captcha types. They offer some examples of visual Captchas in the repository which have not been tested against bots. As far as I can see it is based solely on a REST API, so it should not require Javascript.