Skip to main content

Deploy Cap

Before using the one-click template, here is a minimal Docker Compose file for self-hosting Cap.

If you're new to Docker Compose, check out our guide on how to self-host a Docker Compose app. You can also browse more examples in our Docker Compose library.

Self-host Cap with Docker Compose (minimal)

services:
cap:
image: tiago2/cap:latest
ports:
- "3000:3000"
environment:
# Optional overrides
ADMIN_KEY: "" # Leave empty to auto-generate
volumes:
- cap-data:/usr/src/app/.data

volumes:
cap-data:

Cap stores captcha state and PoW challenge data in the /usr/src/app/.data directory.


Deploy Cap on Hostim.dev (One-Click)

Cap is a lightweight, modern open-source CAPTCHA alternative that uses SHA-256 proof-of-work. It's fast, private, and simple to integrate. With Hostim.dev, you can deploy Cap in one click, fully preconfigured with persistent storage and automatic HTTPS.

🔒 Protect your site with a privacy-focused, proof-of-work CAPTCHA – no tracking, no bloat.

Try it Yourself

Guest project runs for 1 hour. Log in to save and extend to 5 days.

Why Host Cap on Hostim.dev?

  • One-click Docker deployment
  • Persistent volume included
  • Automatic HTTPS and domain
  • Real-time logs and metrics
  • No tracking or data collection

What's included

ResourceDetails
Apptiago2/cap:latest image
Volume/usr/src/app/.data
DomainFree *.hostim.dev subdomain
SSLLet’s Encrypt (auto-enabled)
Port3000
DefaultsADMIN_KEY auto-generated

How to Deploy

  1. Go to your Hostim.dev dashboard.
  2. Click Create ProjectUse a Template.
  3. Select Cap.
  4. Choose a resource plan.
  5. Hit Deploy.

Post-Deploy Notes

  • ADMIN_KEY is auto-generated; find it under Environment Variables
  • Add a custom domain under Networking
  • Use the App panel to monitor logs and CPU usage
  • Cap uses PoW to reduce bot traffic without storing personal data

FAQ

Where does Cap store its internal data?

Cap stores challenge metadata and PoW state in /usr/src/app/.data, backed by a persistent volume.

How do I obtain my ADMIN_KEY?

It is generated automatically on first run. Check the app’s Environment Variables panel in the dashboard.

Does Cap require a database?

No. Cap is fully file-based and requires only a writable data directory.

How do I integrate Cap in my frontend?

Include the Cap client script from your instance and request a challenge token before submitting a form or API request.

Can Cap run behind a reverse proxy?

Yes. Forward HTTPS traffic to port 3000. No special headers are required.

How do I change difficulty of the PoW challenge?

Set the DIFFICULTY environment variable (defaults to 22). Higher = harder for bots.

How do I update Cap?

Docker: docker compose pull && docker compose up -d Hostim.dev: redeploy the app.

Why are some clients slow to solve the challenge?

Older devices may take longer; reduce DIFFICULTY if needed.


Alternatives

  • hCaptcha (self-hosted Enterprise) — traditional challenge-based CAPTCHA
  • FriendlyCaptcha — privacy-first PoW CAPTCHA
  • Cloudflare Turnstile — lightweight captcha-free verification

Source + Docs


Looking for something else? Browse all templates →


Try it now

Deploy Cap Now – in less than 60 seconds