Skip to content

Self-Hosting: work from a fresh clone, and add a Cloudflare free-plan page - #123

Merged
forgetso merged 2 commits into
mainfrom
fix/self-hosting-fresh-clone
Oct 22, 2026
Merged

forgetso merged 2 commits into
mainfrom
fix/self-hosting-fresh-clone

Conversation

@forgetso

@forgetso forgetso commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

What changed

Two things on the Self-Hosting docs.

1. The main page now works from a fresh clone (matches prosopo/captcha#3587, merged). I followed it from a brand new clone and three steps broke:

  • The clone now uses --recurse-submodules. Without the fingerprintjs submodule, the build fails.
  • pnpm run build:all now runs in step 1. The env script needs the built packages.
  • The -f flag is gone from docker compose commands. The generated .env now sets COMPOSE_FILE.

2. A new page: Self-Hosting on Cloudflare's Free Plan. It's for anyone without a server that has a public IP. Your provider runs on any machine with Docker. A Worker on your free workers.dev address serves the widget and forwards requests to the provider through a Cloudflare Tunnel. You don't need a domain, open ports or certificates. The main page links to it.

Effect

Self-hosting no longer needs a server or a domain, only a free Cloudflare account and a machine that can run Docker.

Merge order

Merge after the captcha PR that adds docker/cloudflare/ and generateSelfHostedEnv.ts --cloudflare. The new page tells readers to use both.

Test coverage

Docs only. The site builds and every link between the two pages resolves. Every step on the new page was run from a fresh clone against real Cloudflare: a tunnel, a VPC service, the Worker on workers.dev, and the published 3.8.38 provider image.

  • The demo page rendered a puzzle.
  • A proof-of-work token passed @prosopo/server verification.
  • The provider recorded the visitor's real IP.

🤖 Generated with Claude Code

Clone with submodules, build before running the env script, and drop -f from
docker compose now that .env sets COMPOSE_FILE (prosopo/captcha#3587).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@netlify

netlify Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for peaceful-pothos-9e62ce ready!

Name Link
🔨 Latest commit bc014f6
🔍 Latest deploy log https://app.netlify.com/projects/peaceful-pothos-9e62ce/deploys/6ada185f98117187ac211ae3
😎 Deploy Preview https://deploy-preview-123--peaceful-pothos-9e62ce.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

A provider on any machine with Docker, fronted by a Worker on workers.dev that
forwards to it through a Cloudflare Tunnel. Matches prosopo/captcha's new
docker/cloudflare template and generateSelfHostedEnv.ts --cloudflare.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@forgetso forgetso changed the title Self-Hosting: make the guide work from a fresh clone Self-Hosting: work from a fresh clone, and add a Cloudflare free-plan page Oct 22, 2026
@forgetso
forgetso merged commit 19001cd into main Oct 22, 2026
6 checks passed
@forgetso
forgetso deleted the fix/self-hosting-fresh-clone branch October 22, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant