Skip to content

BRAVO68WEB/url-store-kv-worker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CF KV Workers 🚀

Just another custom URL store made with CloudFlare Workers and KV.

Feature Overview

  • KV for Slug and Link storage
  • D1 for View count tracking
  • Workers for Deployment

How to use?

  1. Clone the repo and head inside it
git clone https://github.com/BRAVO68WEB/url-store-kv-worker
cd url-store-kv-worker
  1. Install all dependencies
pnpm i
  1. Login to wrangler cli, if not done
pnpm wrangler login
  1. Handle KV Namespace
pnpm wrangler kv:namespace create you_pref_kv_name

{ binding = "you_pref_kv_name", id = "xxxxxxxxxxxxxxxxxxxxxxxxxx" }

Replace existing id with this id xxxxxxxxxxxxxxxxxxxxxxxxxx in wrangler.toml file

pnpm wrangler kv:namespace create you_pref_kv_name_preview

{ binding = "you_pref_kv_name_preview", id = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" }

Replace existing preview_id with this id yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy in wrangler.toml file

Finally, it should look like

kv_namespaces = [
  { binding = "URLSTORE", preview_id = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", id = "xxxxxxxxxxxxxxxxxxxxxxxxxx" }
]
  1. Handle D1 Database
pnpm wrangler d1 create you_pref_db_name

Output :-

[[ d1_databases ]]
binding = "DB" # i.e. available in your Worker on env.DB
database_name = "you_pref_db_name"
database_id = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

Replace existing database_id with this id wwwwwwwwwwwwwwwwwwwwwwwwwwwwww in wrangler.toml file Replace existing database_name with this id you_pref_db_name in wrangler.toml file

pnpm wrangler d1 create you_pref_db_name_preview

Output :-

[[ d1_databases ]]
binding = "DB" # i.e. available in your Worker on env.DB
database_name = "you_pref_db_name_preview"
database_id = "wwwwwwwwwwwwwwwwwwwwwwwwwwwwww"

Replace existing preview_database_id with this id wwwwwwwwwwwwwwwwwwwwwwwwwwwwww in wrangler.toml file

  1. Perform SQL table migrations
pnpm wrangler d1 execute URLSTORE --file=./schema.sql
  1. Test locally, to see if the config works
pnpm start
  1. Deploy to Cloudflare Workers
pnpm run deploy

Happy Hacking 🎉 !!