selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

PrivateCaptcha logo

Self-host PrivateCaptcha

v1.46.1

Privacy-first Proof-of-Work CAPTCHA service

ReleaseSource AvailableOther
Updated9 hours ago
LanguageGo
Setup difficultyAdvanced
MobileResponsive
ThemeDark mode
Stars
199
RAM
2GB
Port
8080 (HTTP server (portal, API, CDN))
Requires
ClickHouse, PostgreSQL
Docker
ghcr.io/privatecaptcha/privatecaptcha
Install with Docker Compose
Self-hosted Private Captcha dashboard with properties overviewAPI keys settings screen in self-hosted dashboardBasic property settings with difficulty growth sliderCaptcha requests analytics chart with requested and verified statisticsSelf-hosted dashboard mobile view

What is PrivateCaptcha?

An independent CAPTCHA service built on Proof-of-Work cryptographic challenges that run silently in the background, replacing traditional puzzle-based CAPTCHAs. The self-hosted version deploys via Docker Compose with PostgreSQL and ClickHouse, exposing a lightweight widget (roughly 7% the size of reCAPTCHA) that supports invisible operation, light/dark themes, and over ten languages. Core capabilities include adaptive difficulty that scales exponentially to deter bots, custom rules for targeting specific traffic patterns, a form proxy to shield webhooks, audit trails, a platform API for automation, and detailed usage analytics. The community edition is free for non-commercial use under the PolyForm Noncommercial License; commercial deployments require a paid license. Ready-made integrations cover WordPress, Magento 2, TYPO3, React, Vue, Python, Go, PHP, Java, .NET, Ruby, JavaScript, and OpenAPI.

Should you self-host PrivateCaptcha?

PrivateCaptcha scores 43/100 on selfhost.directory (how scoring works) and ranks #59 of 78 in Security. It has 199 GitHub stars.

It shipped 17 stable releases in the past year. The latest, v1.46.1, came out on 20 October 2026. New versions land roughly every 7 days.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is capjs (72/100, 8 197 stars). It scores higher overall, so compare the two before you pick. See PrivateCaptcha vs capjs side by side.

Features

  • Adaptive difficulty scaling
  • Audit LogsEnterprise edition only in self-hosted
  • Custom difficulty rulesEnterprise edition only in self-hosted
  • Form proxy
  • GDPR Compliance
  • Invisible CAPTCHA mode
  • Multi-organization SupportEnterprise edition only in self-hosted
  • Platform APIEnterprise edition only in self-hosted
  • Proof-of-work CAPTCHA
  • Rate Limiting
  • reCAPTCHA migration compatibility
  • Scraping protection
  • Two-factor authentication
  • Usage statistics
  • Widget customization

PrivateCaptcha README

How to install PrivateCaptcha

Install PrivateCaptcha with Docker Compose

Environment variables
PC_PORTAL_BASE_URL, PC_API_BASE_URL, PC_CDN_BASE_URL, PC_ADMIN_EMAIL, PC_EMAIL_FROM, PC_RATE_LIMIT_HEADER, PC_USER_FINGERPRINT_KEY, PC_XSRF_KEY, PC_API_SALT, PC_ID_HASH_SALT, SMTP_ENDPOINT, SMTP_USERNAME, SMTP_PASSWORD, PC_REGISTRATION_ALLOWED, PC_VERBOSE, PC_LOCAL_ADDRESS, PC_LOCAL_API_KEY, PC_RATE_LIMIT_RPS, PC_RATE_LIMIT_BURST, PC_COUNTRY_CODE_HEADER, PC_HEALTHCHECK_INTERVAL, CE_LICENSE_KEY (community), EE_LICENSE_KEY (enterprise)

git clone https://github.com/PrivateCaptcha/self-hosting.git private-captcha cd private-captcha ./bootstrap-env.sh mydomain.com > .env docker compose up

Requires domain name and SMTP provider for production. Local-only use supported with localhost:8080.

How to configure PrivateCaptcha

  • CE_LICENSE_KEYCommunity edition license key

    Community edition license key

  • EE_LICENSE_KEYEnterprise edition license key

    Enterprise edition license key

  • PC_ADMIN_EMAILAdmin email for initial account

    Admin email for initial account

  • PC_API_BASE_URLBase URL for the API

    Base URL for the API

  • PC_API_SALTAPI salt for token signing

    API salt for token signing

  • PC_CDN_BASE_URLBase URL for the CDN

    Base URL for the CDN

  • PC_COUNTRY_CODE_HEADERHeader containing country code from CDN

    Header containing country code from CDN

  • PC_EDGE_TOKEN_SIGNING_PRIVATE_KEYPrivate key for edge token signing

    Private key for edge token signing

  • PC_EDGE_TOKEN_SIGNING_PUBLIC_KEYPublic key for edge token signing

    Public key for edge token signing

  • PC_EMAIL_FROMFrom email address for outgoing emails

    From email address for outgoing emails

  • PC_FINGERPRINT_HEADERHeader containing fingerprint from CDN

    Header containing fingerprint from CDN

  • PC_HEALTHCHECK_INTERVALHealth check interval

    Health check interval

  • PC_ID_HASH_SALTSalt for ID hashing

    Salt for ID hashing

  • PC_LOCAL_ADDRESSLocal address for internal API

    Local address for internal API

  • PC_LOCAL_API_KEYAPI key for local access

    API key for local access

  • PC_PORTAL_BASE_URLBase URL for the portal interface

    Base URL for the portal interface

  • PC_RATE_LIMIT_BURSTRate limit burst allowance

    Rate limit burst allowance

  • PC_RATE_LIMIT_HEADERHeader containing client IP for rate limiting

    Header containing client IP for rate limiting

  • PC_RATE_LIMIT_RPSRate limit requests per second

    Rate limit requests per second

  • PC_REGISTRATION_ALLOWEDAllow new user registration

    Allow new user registration

  • PC_USER_FINGERPRINT_KEYKey for user fingerprinting (generate with openssl rand -hex 64)

    Key for user fingerprinting (generate with openssl rand -hex 64)

  • PC_VERBOSEEnable verbose logging

    Enable verbose logging

  • PC_XSRF_KEYXSRF protection key

    XSRF protection key

  • SMTP_ENDPOINTSMTP server endpoint

    SMTP server endpoint

  • SMTP_PASSWORDSMTP password

    SMTP password

  • SMTP_USERNAMESMTP username

    SMTP username

PrivateCaptcha releases & version history

FAQ

Is support included?

Email support during business hours is included with Enterprise license only. Additional support services are billed separately.

Can I run multiple instances with a single license?

One license allows for a single installation of Private Captcha.

What constitutes commercial use?

Commercial use is when client integrations are used by for-profit legal entities or on websites that sell products or services.

Is scraping protection included with any plan?

Yes, scraping protection is included and billed by the number of requests.

How easy is it to migrate from other providers?

Pre-built integrations for different platforms, OpenAPI spec, and a special compatibility mode for reCAPTCHA migration make migration easy.

Is there an additional charge for traffic spikes?

No automatic charges for traffic spikes. Only after monthly usage exceeds the tier limit for two months will support contact you about upgrading.

Can I try Private Captcha before buying?

Yes, there is a 14-day free trial without a credit card.

What counts as a request?

A request refers to obtaining a new puzzle from the servers by the captcha widget or verifying a captcha solution. The widget only obtains a new puzzle when the user starts filling out the form, not on every page load.

More in Authentication

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…