Next.js 15 (App Router) + Prisma 7 + NextAuth v5. Контейнер crm, порт 3005.
| Раздел | Функционал |
|---|---|
| Dashboard | KPI-метрики |
| Users | Поиск, детали, действия: block, friend, partner, balance, add sub, note |
| Subscriptions | Фильтрация по статусу |
| Operations | Реестр операций по типу |
| Finance | Графики выручки, разбивка по процессору и плану |
| Support | Просмотр тикетов/переписки |
| Gifts | Multi-gift ссылки + единичные подарки |
CRM_USERS=[{"email":"admin@...","passwordHash":"$2b$..."}]
CRM_AUTH_SECRET=<32+ chars>
CRM_AUTH_URL=https://crm.zipvpn.org
Генерация хэша пароля:
node -e "require('bcrypt').hash('password', 10, (e,h) => console.log(h))"
crm/prisma/schema.prisma — копия shared schema, только read-only. Миграции управляются из packages/shared.