Files
telegram-shop/docs/admin-nextjs-guide.md
2026-08-05 18:48:25 +00:00

2.4 KiB
Executable File
Raw Blame History

Next.js Админ-Панель — Руководство

Обзор

Новая админ-панель на Next.js 16 (App Router) + TypeScript + shadcn/ui + Prisma (SQLite) + Recharts. Полная замена EJS/SmartAdmin шаблонизатора.

Стек

Слой Технология
Фреймворк Next.js 16 (App Router, Turbopack)
Язык TypeScript 5
Стилизация Tailwind CSS 4 + shadcn/ui (New York)
БД Prisma ORM + SQLite
Графики Recharts
Состояние Zustand
Тема next-themes (dark/light)
Уведомления Sonner (toast)
Иконки Lucide React

Авторизация

  • Пароль: значение ADMIN_SECRET из .env
  • Если задан SUPER_ADMIN_SECRET (и ≠ ADMIN_SECRET) — вход с ним даёт роль super_admin
  • Если не задан — все админы = super_admin
  • Кука admin_token (httpOnly, 24ч)
  • Rate-limit: 5 попыток / 15 мин с IP

Экраны (11)

  1. Dashboard — 10 KPI, 7 графиков, активность, кошельки
  2. Catalog — дерево локаций + товары + модалка
  3. Users — список + детальная + бан + баланс
  4. Wallets — 3 вкладки + seed фразы (super_admin)
  5. Purchases — таблица с фильтрами
  6. Audit Log — журнал с цветными бейджами
  7. Categories — CRUD с привязкой к локациям
  8. Locations — CRUD (страна/город/район)
  9. Settings — редактирование .env переменных
  10. Locales — inline-редактор 3 языков
  11. Danger Zone — Seed / Clear с reauth

Docker (ARM)

docker build -t tg-admin .
docker run -p 3000:3000 -v ./db:/app/db -e ADMIN_SECRET=your_secret tg-admin

Требования: минимум 512 МБ RAM, ARM64/ARMv7/x86_64.

Seed-данные

POST /api/seed/demo создаёт данные идентичные оригинальному seed.js:

  • 3 локации, 5 категорий, 11 подкатегорий
  • 10 пользователей (alice-jack)
  • 10 товаров, 25-30 покупок
  • 10 криптокошельков, 2 комиссионных платежа, 12 audit записей