| src | ||
| .gitignore | ||
| config.yml | ||
| package.json | ||
| README.md | ||
DiscSec Captcha Bot
Self-hosted Discord captcha verification bot with:
unverifiedrole gating on member join- DM-based verification links with short-lived tokens
- Web captcha page (
/verify/<token>) using mCaptcha - Per-server settings in SQLite (roles + log channel)
- Private captcha log channel creation and event logging
Install CS hosted Bot on your Server:
Invite the bot via THIS LINK
Or THIS LINK (Admin Permissions - May help if problems occur)
*Note that CrystalSky is not responsible for damage made by this Bot (e.g. in case some script kiddy hacked the bot)
Setup
- Prerequisites:
Make sure you have a working instance of mCaptcha. You can also use their demo instance (you may want to mention this in your privacy policy).
- Install dependencies:
npm install
- Edit
config.yml:
bot.discord_tokenbot.base_urlmcaptcha.base_urlmcaptcha.site_keymcaptcha.secret_key
- Start:
npm start
mCaptcha config
Default behavior now matches common mCaptcha setup:
- Verify endpoint:
<mcaptcha.base_url>/api/v1/pow/siteverify - Widget URL:
<mcaptcha.base_url>/widget/?sitekey=<site_key> - Submitted field:
mcaptcha__token - Verification payload:
token: captcha tokenkey: site keysecret: account secret
- Success check:
valid === true
You can still override mcaptcha.verify_url, mcaptcha.widget_url, mcaptcha.response_field, and mcaptcha.verify_payload if needed.
Commands
Default command prefix is !captcha.
!captcha help!captcha resend!captcha test!captcha admin-role <new name>!captcha unverified-role <new name>!captcha log-channel <new-name>
admin-role, unverified-role, log-channel require guild owner or captcha admin role.
!captcha test requires admin permission and defaults.test_enabled: true in config.yml.