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 detailed up-to-date instructions.
Clone this repository, create your .env file based on the example file (check docs for all options) and start the stack.
git clone https://github.com/PrivateCaptcha/self-hosting.git private-captcha
cd private-captcha
cp .env.example .env && $EDITOR .env
docker compose upNow you can open $PC_PORTAL_BASE_URL (e.g. portal.yourdomain.com or http://portal.privatecaptcha.local:8080) in browser and log in.
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
Please refer to the official documentation for applying updates.
You need to add an additional environment variable CE_LICENSE_KEY via compose.override.yml file (which you should put in the .env file).
services:
privatecaptcha:
environment:
- CE_LICENSE_KEY=${CE_LICENSE_KEY}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 put 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