Files
Aggregator/DEPLOYMENT.md
Semen_Babenishev 4420c5c60a Initial: Nutshell Site Aggregator MVP Phase 1
- Backend: Express + TypeORM + PostgreSQL, JWT + OTP auth
- Frontend: React + Vite + Tailwind, 4 pages (Home/Login/Orders/404)
- Docker Compose: PostgreSQL 15 on port 5434
- Tests: 16 tests passing (API + Frontend)
- ai_state: rules.md, INSTRUCTIONS.md, session tasks
- Examples: brand book PDF, logos, page mockups
2026-07-16 11:38:08 +04:00

168 lines
4.1 KiB
Markdown
Raw 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.
# Запуск Nutshell Site Aggregator
## Предварительные требования
- Node.js 18+ (установлен: npm 11.11.0)
- Docker Desktop (опционально, или PostgreSQL локально)
- Windows 10+
## Структура проекта
```
backend/ - Express.js API (TypeScript, port 3001)
frontend/ - React + Vite (TypeScript, port 3000)
processing/ - Python валидатор моделей
docker-compose.yml - PostgreSQL + Nginx конфиг
```
## Быстрый старт
### 1. Установка зависимостей
**Backend:**
```bash
cd backend
npm install
```
**Frontend:**
```bash
cd frontend
npm install
```
### 2. Переменные окружения
**backend/.env** (контейнер БД):
```
NODE_ENV=development
PORT=3001
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=nutshell
DATABASE_PASSWORD=nutshell_dev_password
DATABASE_NAME=nutshell_db
JWT_SECRET=your_jwt_secret_key_change_this_in_production
SMS_PROVIDER=mock
```
**frontend/.env** (URL API сервера):
```
VITE_API_URL=http://localhost:3001/api
```
### 3. Запуск сервисов
**Вариант 1: Docker Compose (PostgreSQL + Nginx)**
```bash
docker-compose up -d
```
**Вариант 2: Локальный PostgreSQL**
- Установить PostgreSQL 15
- Создать БД `nutshell_db`
- Обновить `DATABASE_HOST` в backend/.env
### 4. Запуск серверов
**Backend (новый терминал):**
```bash
cd backend
npm run dev
```
Будет слушать на `http://localhost:3001/api`
**Frontend (новый терминал):**
```bash
cd frontend
npm run dev
```
Будет слушать на `http://localhost:3000`
### 5. Проверка
Откройте http://localhost:3000 в браузере
## Скрипты для быстрого старта
**Запустить всё сразу (Windows):**
```bash
start_all.bat
```
**Только backend:**
```bash
start_backend.bat
```
**Только frontend:**
```bash
start_frontend.bat
```
## API Эндпоинты
- `POST /api/auth/login` - Вход (phone)
- `POST /api/auth/verify-otp` - Проверка OTP
- `GET /api/orders` - Список заказов (требует JWT)
- `GET /api/health` - Статус сервера
## Архитектура
### Frontend (React + Vite)
- **Pages**: HomePage, LoginPage, OrdersPage, NotFoundPage
- **Context**: AuthContext (JWT, user state)
- **i18n**: Поддержка русского и английского
- **API**: Axios с JWT middleware
### Backend (Express + TypeORM)
- **Entities**: User, Order, Model3D, Pricing, Translation
- **Auth**: JWT + SMS OTP (mock mode)
- **DB**: PostgreSQL 15
- **Storage**: Nginx (max 200MB)
### Database (PostgreSQL 15)
- 5 таблиц (User, Order, Model3D, Pricing, Translation)
- JWT токены, OTP, заказы
- Миграции не требуются (init скрипты в docker-compose.yml)
## Проблемы и решения
### PowerShell блокирует npm
Используйте cmd.exe вместо PowerShell или скрипты `.bat`
### Docker не запускается
Используйте локальный PostgreSQL:
```bash
# Ubuntu/Debian
sudo apt-get install postgresql-15
sudo -u postgres createdb nutshell_db
# Windows
# Скачайте PostgreSQL 15 отсюда: https://www.postgresql.org/download/windows/
```
### Port 3000/3001 уже занят
Измените PORT в `backend/.env` и `VITE_API_URL` в `frontend/.env`
## MVP Статус
### ✅ Реализовано (Phase 1)
- 4 страницы (HomePage, LoginPage, OrdersPage, NotFoundPage)
- Аутентификация (JWT + OTP)
- React Context для state management
- i18n (русский/английский)
- Tailwind CSS styling
- Express API с TypeORM
- PostgreSQL + Docker
### 🔄 В разработке
- Загрузка 3D моделей
- Расчёт стоимости заказа
- Email/SMS уведомления
## Контакты
- Email: support@nutshell.dev
- GitHub: https://github.com/nutshell/site-aggregator