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
This commit is contained in:
167
DEPLOYMENT.md
Normal file
167
DEPLOYMENT.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# Запуск 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
|
||||
Reference in New Issue
Block a user