Files
2026-08-21 11:33:10 +00:00

55 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# applications_crm
CRM-панель для обработки обращений граждан: авторизация сотрудников, список заявок, фильтрация, статусы и приоритеты, история изменений, комментарии, аналитика и CSV import/export.
Проект размещён в организации [IT-One](https://git.it-one.pro/IT-One) в разделе клиентских проектов.
## Стек
- Next.js 16 + React 19 + TypeScript
- Prisma 6 + SQLite
- Tailwind CSS 4 и Radix UI
- Bun или Node.js 22+
## Локальный запуск
```bash
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:
```bash
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`.