A powerful, advanced captcha verification system for new members in a Discord server.
- Node.js version 16.9.0 or later (Recommended: Latest LTS)
- NPM version 7.0 or later (Recommended: Latest)
- A Discord Application with a bot account
- CAPTCHA provider API sitekey and secret.
If you want to run this application without installing Node.js or other tools, you can use Docker to run it. Usage:
docker run \
-e VERIFIED_ROLE_ID=x \
-e CAPTCHA_PROVIDER=x \
-e REQUIRE_VERIFIED_EMAIL=x \
-e SERVER_ID=x \
-e RECAPTCHA_SECRET=x \
-e RECAPTCHA_SITEKEY=x \
-e HCAPTCHA_SITEKEY=x \
-e HCAPTCHA_SECRET=x \
-e TURNSTILE_SITEKEY=x \
-e TURNSTILE_SECRET=x \
-e CALLBACK_URL=x \
-e CLIENT_SECRET=x \
-e TOKEN=x \
ghcr.io/ckt1031/discord-captcha-bot
- Clone the repository
- Install the dependencies with
npm install
PORT
- The port to run the server on (default:3000
)TOKEN
- The token of your Discord bot (Bot -> Token)CLIENT_ID
- The client ID of your Discord application (Oauth2 -> General -> Client ID)CLIENT_SECRET
- The client secret of your Discord application (Oauth2 -> General -> Client Secret)SERVER_ID
- The ID of the Discord your server (Right click on the server -> Copy ID)CALLBACK_URL
- The URL of the serverhttps://[your domain]/verify
(e.g.https://example.com/verify
)REQUIRE_VERIFIED_EMAIL
- Whether to require a verified email address for the user to pass the captcha (default:false
)VERIFIED_ROLE_ID
- The ID of the role to give to the user after they pass the captcha (Right click on the role -> Copy ID)
Register new Recaptcha v2 API key here
CAPTCHA_PROVIDER
- The captcha provider to use (default:recaptcha
), available options:recaptcha
,hcaptcha
Above options are only required if you are using specified captcha provider
RECAPTCHA_SITEKEY
- The site key of your Google reCAPTCHA v2 API key (Settings -> reCAPTCHA keys -> Copy Site key)RECAPTCHA_SECRET
- The secret key of your Google reCAPTCHA v2 API key (Settings -> reCAPTCHA keys -> Copy Secret key)HCAPTCHA_SITEKEY
- The site key of your hCaptcha API key (Site -> Site key)HCAPTCHA_SECRET
- The secret key of your hCaptcha API key (Settings -> Secret key)TURNSTILE_SITEKEY
- The site key of your Turnstile API key (Turnstile -> Site -> Site key)TURNSTILE_SECRET
- The secret key of your Turnstile API key (Turnstile -> Site -> Secret key)
- Start the server with
npm start
oryarn start
- Add the bot to your server with
https://discord.com/api/oauth2/authorize?client_id=[CLIENT_ID]&permissions=8&scope=bot%20applications.commands
- In
Oauth2 -> Redirects
add the callback URLhttps://[your domain]/verify
(e.g.https://example.com/verify
) - Adding the bot to your server will automatically create a new role called
Verified
and a new channel called#verify
- The bot will automatically send a message in the
#verify
channel with a link to the captcha verification page - The user will have to complete the captcha
- After the user completes the captcha, they will be given the
Verified
role and notified in the DMs
Light Mode:
Dark Mode: