- Neon saytida yangi project oching.
- Project ichidan connection string (
DATABASE_URL) ni oling. backend/.env.exampledan nusxa olibbackend/.envyarating..envichida quyidagilarni to'ldiring:
PORT=4000
JWT_SECRET=your_strong_secret
DATABASE_URL=postgresql://USER:PASSWORD@HOST.neon.tech/DB_NAME?sslmode=requirecd backend
npm install
npm run db:init
npm run db:seed
npm run devsuperadmin/123456(super_admin)admin1/123456(admin)cashier1/123456(cashier)kitchen1/123456(kitchen)tv1/123456(tv_display)
Build muvaffaqiyatli bo‘lsa ham, Environment Variables bo‘lmasa server ishga tushmaydi.
| Maydon | Qiymat |
|---|---|
| Root Directory | (bo‘sh qoldiring — repo o‘zi backend) |
| Build Command | npm install |
| Start Command | npm start |
Render dashboard → Web Service → Environment → Add Environment Variable:
| Key | Qiymat |
|---|---|
DATABASE_URL |
Neon (yoki boshqa PostgreSQL) connection string. Masalan: postgresql://user:pass@ep-xxx.neon.tech/neondb?sslmode=require |
JWT_SECRET |
Uzun, tasodifiy maxfiy kalit (masalan: openssl rand -hex 32 natijasi) |
PORT ni Render o‘zi beradi — qo‘lda yozish shart emas.
Logda
injected env (0) from .envko‘rinsa — hech qanday env o‘rnatilmagan..envfayl GitHubga kirmaydi; barcha qiymatlar Render panelida bo‘lishi kerak.
Mahalliy kompyuterdan bir marta (production DATABASE_URL bilan):
cd backend
# .env ichida production DATABASE_URL bo‘lsin
npm run db:init
npm run db:seedYoki Neon SQL Editor orqali db/schema.sql va db/seed.sql ni ishga tushiring.
Deploydan keyin brauzerda to'g'ri URL ni oching:
| URL | Natija |
|---|---|
https://SIZNING-SERVIS.onrender.com/ |
API haqida qisqa ma'lumot |
https://SIZNING-SERVIS.onrender.com/api/health |
{"ok":true,"message":"API ishlayapti"} |
Agar {"message":"Endpoint topilmadi"} chiqsa — noto'g'ri yo'l (masalan /health o'rniga /api/health ishlating).
VITE_API_URL oxirida /api bo'lishi shart:
# To'g'ri
VITE_API_URL=https://SIZNING-SERVIS.onrender.com/api
# Noto'g'ri (404 beradi)
VITE_API_URL=https://SIZNING-SERVIS.onrender.comFrontend deploy qilganda env o'zgaruvchini build vaqtida qo'shing, keyin qayta build qiling.
GET /api/healthPOST /api/auth/loginGET|POST|DELETE /api/categoriesGET|POST|DELETE /api/productsGET|POST /api/ordersGET /api/orders/history(admin, filter + pagination)GET /api/orders/export(admin, Excel)PATCH /api/orders/:id/statusPATCH /api/orders/:id/cancelGET /api/restaurants/me(admin, cashier, kitchen, tv_display)GET|POST|PATCH|DELETE /api/restaurants(super_admin)