main
applications_crm
CRM-панель для обработки обращений граждан: авторизация сотрудников, список заявок, фильтрация, статусы и приоритеты, история изменений, комментарии, аналитика и CSV import/export.
Проект размещён в организации IT-One в разделе клиентских проектов.
Стек
- Next.js 16 + React 19 + TypeScript
- Prisma 6 + SQLite
- Tailwind CSS 4 и Radix UI
- Bun или Node.js 22+
Локальный запуск
cp .env.example .env
# задайте DATABASE_URL, ADMIN_PASSWORD и AUTH_SECRET
npm install
npx prisma generate
npx prisma db push
npm run dev
Панель будет доступна по адресу http://localhost:3000/crm.
Переменные окружения
DATABASE_URL— путь к SQLite-файлу;ADMIN_PASSWORD— пароль сотрудника CRM;AUTH_SECRET— случайный секрет подписи сессий;PUBLIC_LEADS_SECRET— внутренний секрет server-to-server ingest endpoint.
Не добавляйте реальные .env-файлы, SQLite-базы, production-артефакты или токены в Git.
Production
Production-сборка использует standalone output:
npm run build
NODE_ENV=production PORT=3100 node .next/standalone/server.js
При публикации под /crm используется basePath из next.config.ts, а reverse proxy должен направлять /crm и /crm/* на отдельный upstream.
API
/crm/api/auth/*— авторизация сотрудников;/crm/api/leads/*— защищённые операции с заявками;/crm/api/public/leads— закрытый внутренний endpoint для server-to-server интеграции формы;/crm/api/health— health-check.
Публичный endpoint не принимает заявки без PUBLIC_LEADS_SECRET.
Languages
TypeScript
96.6%
Shell
1.5%
CSS
1.3%
JavaScript
0.6%