# Vdesi App Landing + Phone Admin Panel This project contains: - `public/index.html` — landing page - `public/admin.html` — phone-friendly admin panel - `src/worker.js` — API + APK/image upload/download - `wrangler.toml` — Cloudflare configuration ## Important You must create the Cloudflare R2 bucket and KV namespace and put the KV namespace ID in `wrangler.toml`. Do NOT put Cloudflare API tokens/passwords inside these files. ## Deployment 1. Install Node.js. 2. Install Wrangler: `npm install -g wrangler` 3. Login: `wrangler login` 4. Create an R2 bucket named `vdesi-assets`: `wrangler r2 bucket create vdesi-assets` 5. Create KV: `wrangler kv namespace create SETTINGS` Copy the returned ID into `wrangler.toml` replacing `REPLACE_WITH_KV_NAMESPACE_ID`. 6. Deploy: `wrangler deploy` After deployment: - Landing page: `/` - Admin panel: `/admin` ## Security The sample admin API is intentionally simple. Before making it public, protect `/admin` and `/api/admin/*` with Cloudflare Access or another authentication layer. Do not expose the upload API publicly without authentication. ## Automatic download The panel has ON/OFF and delay settings. Browser security can still block, warn, or otherwise limit automatic downloads. Admin customization now includes app name, developer, category, age rating, rating, review count, downloads, download button text, and description.