Onboarding
Deploy Docket on Cloudflare from scratch.
Cloudflare Onboarding
Prerequisites
- Cloudflare account (free tier works)
- Cloudflare API token with permissions for D1, R2, Workers AI, and Queues
- Node.js 20+ and npm
Step 1: Create Cloudflare Resources
D1 Database
# Using wrangler (install via npm i -g wrangler)
wrangler d1 create docket-db
# Note the database ID
R2 Bucket
wrangler r2 bucket create docket-blobs
Queue
wrangler queues create docket-jobs
Workers AI
No setup needed — enabled by default on your account.
Step 2: Get API Token
- Go to Cloudflare API Tokens
- Create a token with these permissions:
- Account: Workers Scripts:Edit
- Account: Workers AI:Read
- Account: D1:Edit
- Account: R2:Edit
- Account: Queues:Edit
- Copy the token
Step 3: Configure Docket
Create config/config.yaml:
docket:
adapters:
llm:
default: "cloudflare-workers-ai"
providers:
cloudflare-workers-ai:
adapter: "@docket/llm-cloudflare-workers-ai"
config:
accountId: "${CF_ACCOUNT_ID}"
apiToken: "${CF_API_TOKEN}"
model: "@cf/meta/llama-3.1-8b-instruct"
embedder:
default: "cloudflare-workers-ai"
providers:
cloudflare-workers-ai:
adapter: "@docket/embedder-cloudflare-workers-ai"
config:
accountId: "${CF_ACCOUNT_ID}"
apiToken: "${CF_API_TOKEN}"
model: "@cf/baai/bge-base-en-v1.5"
dimensions: 768
store:
default: "cloudflare-d1"
providers:
cloudflare-d1:
adapter: "@docket/store-cloudflare-d1"
config:
accountId: "${CF_ACCOUNT_ID}"
databaseId: "${CF_D1_DATABASE_ID}"
apiToken: "${CF_API_TOKEN}"
blob:
default: "cloudflare-r2"
providers:
cloudflare-r2:
adapter: "@docket/blob-s3"
config:
endpoint: "https://${CF_ACCOUNT_ID}.r2.cloudflarestorage.com"
bucket: "docket-blobs"
accessKeyId: "${R2_ACCESS_KEY_ID}"
secretAccessKey: "${R2_SECRET_ACCESS_KEY}"
region: "auto"
forcePathStyle: true
queue:
default: "cloudflare-queues"
providers:
cloudflare-queues:
adapter: "@docket/queue-cloudflare"
config:
accountId: "${CF_ACCOUNT_ID}"
queueName: "docket-jobs"
apiToken: "${CF_API_TOKEN}"
Step 4: Set Environment Variables
export CF_ACCOUNT_ID=your-account-id
export CF_API_TOKEN=your-api-token
export CF_D1_DATABASE_ID=your-d1-database-id
export R2_ACCESS_KEY_ID=your-r2-key-id
export R2_SECRET_ACCESS_KEY=your-r2-secret
Step 5: Run Docket
npm install
npm start
The server will initialize all Cloudflare adapters and verify connectivity.