Private Captcha is free for non-commercial use (community edition). Commercial use (enterprise edition) is a subject to EULA and requires obtaining a license.
NOTE: Please visit the official quickstart docs for up-to-date instructions.
git clone https://github.com/PrivateCaptcha/self-hosting.git private-captcha
cd private-captchacp .env.example .env
$EDITOR .envNow edit .env file to set your values. You can find full documentation about environment variables here.
Tips for local use
To run Private Captcha only locally, use privatecaptcha.local:8080 instead of yourdomain.com. To make it work, you need to add a few lines to /etc/hosts file:
127.0.0.1 portal.privatecaptcha.local
127.0.0.1 api.privatecaptcha.local
127.0.0.1 cdn.privatecaptcha.local
NOTE: email with
.localdomain is not a valid RFC-5322 address, so for 2FA code (required for login) you will need to find "two factor code" from docker logs manually
docker compose upNow you can open $PC_PORTAL_BASE_URL (e.g. portal.yourdomain.com or http://portal.privatecaptcha.local) in browser and log in.
NOTE: For local-only use, when asked for a verification code, you might need to find it in the logs of
privatecaptchacontainer. Search for "two factor code".
Please refer to the official documentation which contains descriptions of all configuration options.
There are a few changes you will need to make using a compose.override.yml file, namely replace privatecaptcha image to privatecaptcha-ee and set an additional environment variable EE_LICENSE_KEY (which you should do in the .env file).
services:
privatecaptcha:
image: ghcr.io/privatecaptcha/privatecaptcha-ee:latest
environment:
- EE_LICENSE_KEY=${EE_LICENSE_KEY}
migration:
image: ghcr.io/privatecaptcha/privatecaptcha-ee:latest