branuss

BRANUS — GitHub va mustaqil hosting uchun

Atir, shampun, sovun, yuz/tana parvarishi va kosmetika do‘koni. Frontend va backend mavjud. Ushbu paket Cloudflare Workers + D1 + R2 uchun moslangan; oddiy statik hosting uchun emas. ChatGPT hisobiga bog‘lanmagan admin login-paroli mavjud.

Nimalar ishlaydi?

Telegram @branus bilan aloqa havolasi mavjud. Avtomatik Telegram bot, onlayn to‘lov, avtomatik kuryer buyurtmasi yo‘q. Yetkazish narxi operator bilan kelishiladi. Bu funksiyalar bor deb ko‘rsatilmaydi.

1. GitHubga yuklash

ZIPni oching. Ichidagi fayllarni yangi private repositoryga yuklang. Yashirin .github, .gitignore, .npmrc fayllari ham kerak. node_modules, .dev.vars, .env, .wrangler, dist va real mijoz ma’lumotlarini yuklamang.

GitHub → Actions → BRANUS checks: dependency o‘rnatish, TypeScript, parol testlari va production build bajariladi. Yashil belgi server joylashtirilganini yoki haqiqiy to‘lov tekshirilganini bildirmaydi.

GitHub Pages backend va bazani ishga tushirmaydi. Repository kod saqlaydi; ishlab turgan do‘kon uchun quyidagi hosting kerak.

2. Kompyuterda to‘liq tekshirish

Node.js 22.13 yoki undan yangi versiya kerak.

npm ci
npm run admin:setup
npm run db:local
npm run dev

Brauzer: http://127.0.0.1:5173 Admin: http://127.0.0.1:5173/admin

admin:setup login va tasodifiy kuchli parolni terminalda bir marta ko‘rsatadi. Parolni parol menejerida saqlang. Login branus-admin; umumiy/default parol yo‘q. .dev.vars ichida faqat login, salt va parol xeshi saqlanadi. Bu fayl GitHubdan chetlatilgan. Mahalliy baza .wrangler/state ichida saqlanadi; serverga avtomatik ko‘chmaydi.

3. Cloudflarega joylash — domen shart emas

Cloudflare hisobingizda Workers, D1 va R2 ishlashi kerak. Tarif/limit va R2 faollashtirishdagi to‘lov ma’lumotlari talabini hisobingizda tekshiring; bu paket xarajatni avtomatik tasdiqlamaydi.

npx wrangler login
npx wrangler d1 create branus-db
npx wrangler r2 bucket create branus-images

D1 yaratish natijasidagi database_id qiymatini wrangler.jsonc ichidagi namunaviy UUID o‘rniga yozing. Boshqa do‘kon uchun nomlar band bo‘lsa, worker/database/bucket nomlarini ham moslang.

npm run db:remote
npx wrangler secret put ADMIN_USERNAME
npx wrangler secret put ADMIN_PASSWORD_SALT
npx wrangler secret put ADMIN_PASSWORD_HASH
npm run deploy

Har secret put so‘rovida .dev.vars ichidagi tegishli qiymatni kiriting. Parolning o‘zini ADMIN_PASSWORD_HASH o‘rniga yozmang. Wrangler yangi Worker yaratishni so‘rasa, branus-shop uchun tasdiqlang. Uchta secret aynan wrangler.jsoncdagi Workerga tegishli bo‘lishi kerak.

Deploy natijasida https://branus-shop.<hisob>.workers.dev kabi haqiqiy manzil chiqadi. /admin orqali o‘zingiz yaratgan login-parol bilan kiring. Shaxsiy domenni keyin ulash mumkin. Hostingga birinchi joylashda baza bo‘sh; admin orqali haqiqiy mahsulotlarni qo‘shing.

Hozirgi Sites do‘konidagi mahsulot, buyurtma va yuklangan rasmlar ZIPda yo‘q. Ularni saqlab qolish uchun D1 ma’lumotlari va R2 rasmlarini alohida eksport/import qilish kerak. Ko‘chirishdan oldin zaxira oling. Shu ZIPni chiqarish mavjud Sites sayti yoki uning bazasini o‘zgartirmagan.

4. Tekshiruv

npm run typecheck
npm test
npm run build

Kengroq API tekshiruvi: tests/integration.py. Faqat bo‘sh MAHALLIY test bazada, dev server ishlab turganda bajaring; test mahsulot va buyurtmalarini yaratadi. BRANUS_TEST_PASSWORD muhit qiymatiga mahalliy admin parolini bering; test uni ekranga chiqarmaydi. Login cheklovi test oxirida ishga tushadi; qayta sinovdan oldin 15 daqiqa kuting yoki faqat mahalliy test bazasini yangilang. Ishlab turgan serverda bajarilmang.

Mahalliy tekshiruvlar: noto‘g‘ri parol, soxta platforma headerlari, ruxsatsiz admin, mahsulot CRUD, rasm, buyurtma, takroriy buyurtma, bir dona qoldiq uchun parallel buyurtmalar, bekor qilish, sessiya va chiqish.

Yangi serverda alohida tekshiring: login/logout; rasm yuklash; mahsulot qo‘shish; mijoz buyurtmasi; admin buyurtma holati; telefon ekranida foydalanish. GitHubdagi CI haqiqiy server sozlamalarini tekshirmaydi.

5. Parolni almashtirish va zaxira

.dev.varsni xavfsiz zaxiralab olib tashlang, npm run admin:setupni qayta bajaring. Yangi uchta qiymatni serverga wrangler secret put bilan yangilang. Yangi xesh eski sessiyalarni yaroqsiz qiladi. Secretlarni repository yoki skrinshotlarda oshkor qilmang.

D1 bazasini muntazam eksport qiling, R2 rasmlarini ham alohida zaxiralang. GitHub kodi mijoz buyurtmalarining zaxirasi emas. HTTPS orqali ishlating; Cloudflare Workers manzili HTTPS beradi.