Self-host

The hosted site and the repo are the same code, MIT licensed. Pick one of two ways to run it.

On your server, with Docker

git clone https://github.com/njaiswal78/green-patakha.git
cd green-patakha
cp .env.example .env        # set APP_ORIGIN to the URL you will serve it on
docker compose up -d

Open http://your-server:8080 and burst a cracker. The counter lives in a SQLite file on the data volume. Put Caddy or your host's proxy in front for HTTPS, then set APP_ORIGIN to that https:// URL and restart. The compose file only publishes port 8080.

On your own Cloudflare account

git clone https://github.com/njaiswal78/green-patakha.git
cd green-patakha
npm install
npx wrangler login
npx wrangler d1 create green-patakha     # paste the database_id into wrangler.jsonc
npx wrangler d1 migrations apply green-patakha --remote
npx wrangler deploy

Set APP_ORIGIN in wrangler.jsonc to your domain, then add it as a Custom Domain on the Worker so DNS is proxied through Cloudflare. Rate limiting uses the Workers rate-limit binding already in the config.

Just the game

Everything you see on /play is static files in public/. Any static host can serve that folder; the counter will show a dash and the crackers work the same.