Self-Host Domain Bobber

Deploy and manage your own instance of Domain Bobber on Cloudflare Workers.

System Requirements

Required Tools

  • • Node.js 18 or higher
  • • npm or yarn package manager
  • • Git for version control
  • • Wrangler CLI (latest version)

Quick Start

1. Get Access

Instant Download

Get the complete source code as a ZIP file

GitHub Access

Get invited to the private repository

Lifetime Updates

Free access to all future updates

1. Installation

git clone https://github.com/yourusername/domain-dash-pro
cd domain-dash-pro
npm install

2. Authentication

npx wrangler login

3. KV Storage Setup

# Create KV namespace
npx wrangler kv:namespace create kvcache

# Note the ID from the output:
# kvcache_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

4. Turnstile Setup

  1. Visit Cloudflare Turnstile Dashboard
  2. Create a new site widget
  3. Note both the Site Key and Secret Key

5. Deploy Your First Domain

npm run create-domain
# Or with all options specified:
npm run create-domain \
  --kv-id your-kv-id \
  --admin-password your-password \
  --turnstile-site-key your-site-key \
  --turnstile-secret-key your-secret-key

Command Line Options

OptionDescriptionRequiredExample
--kv-idYour Cloudflare KV namespace IDYes--kv-id abc123...
--admin-passwordPassword for accessing admin dashboardsYes--admin-password mySecurePass123!
--turnstile-site-keyCloudflare Turnstile Site KeyYes--turnstile-site-key 0x4AAAAAAACt...
--turnstile-secret-keyCloudflare Turnstile Secret KeyYes--turnstile-secret-key 0x4AAAAAAACt...

Configuration Guide

Environment Variables

VariableDescriptionRequired
ADMIN_PASSWORDDashboard access passwordYes
TURNSTILE_SITE_KEYCloudflare Turnstile site keyYes
TURNSTILE_SECRET_KEYCloudflare Turnstile secret keyYes
KV_NAMESPACE_IDCloudflare KV namespace IDYes

Domain Configuration

Each domain's configuration is stored in domains/<domain>/wrangler.toml:

name = "example-com"
main = "../../.worker-next/index.mjs"
compatibility_date = "2024-09-26"

[vars]
BASE_URL = "example.com"
TURNSTILE_SITE_KEY = "your-site-key"

[[kv_namespaces]]
binding = "kvcache"
id = "your-kv-id"

Deployment Options

Deploy All Domains

Use the deploy-all script to deploy all domains in your domains/ directory:

npm run deploy-all

This script will:

  • Verify Wrangler authentication
  • Build the worker if needed
  • Deploy each domain sequentially
  • Set required secrets
  • Provide detailed deployment status

Secret Management

Update secrets using the update-secrets command:

npm run update-secrets \
  --key ADMIN_PASSWORD \
  --value your-new-password