180 lines
5.7 KiB
Markdown
180 lines
5.7 KiB
Markdown
# Next.js + Node.js Backend Template
|
||
|
||
Готовый шаблон для быстрого старта проектов с Next.js фронтендом и Express.js бэкендом.
|
||
|
||
## 🚀 Возможности
|
||
|
||
- **Next.js 15** с App Router (статический экспорт)
|
||
- **Express.js** бэкенд
|
||
- **TypeScript** полная поддержка
|
||
- **Tailwind CSS 4** для стилизации
|
||
- **ESLint** настроенный
|
||
- **Модульная архитектура** готовая к расширению
|
||
- **Документация** и правила разработки
|
||
|
||
## 📁 Структура проекта
|
||
|
||
```
|
||
NextNodeTemplate/
|
||
├── frontend/ # Next.js приложение
|
||
│ ├── app/ # App Router страницы
|
||
│ ├── components/ # React компоненты
|
||
│ ├── lib/ # Утилиты и типы
|
||
│ └── docs/ # Документация фронтенда
|
||
├── backend/ # Express.js сервер
|
||
│ └── server.js # Основной файл сервера
|
||
├── docs/ # Документация проекта
|
||
│ ├── PROJECT_RULES.md # Правила разработки
|
||
│ ├── KNOWLEDGE_BASE.md # База знаний
|
||
│ └── CHANGELOG.md # История изменений
|
||
├── .cursorrules # Правила для AI-ассистента
|
||
└── README.md # Этот файл
|
||
```
|
||
|
||
## 🛠️ Технологический стек
|
||
|
||
**Frontend:**
|
||
- Next.js 15.3.3 (App Router)
|
||
- React 19
|
||
- TypeScript 5
|
||
- Tailwind CSS 4
|
||
|
||
**Backend:**
|
||
- Express.js 5
|
||
- TypeScript (опционально)
|
||
|
||
## 📦 Установка и запуск
|
||
|
||
### Локальная разработка (Windows + PowerShell)
|
||
|
||
```powershell
|
||
# Клонировать репозиторий
|
||
git clone <repository-url> my-project
|
||
cd my-project
|
||
|
||
# Frontend
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
# Открыть http://localhost:3000
|
||
|
||
# Backend (в отдельном терминале)
|
||
cd backend
|
||
npm install
|
||
node server.js
|
||
# Сервер запустится на http://localhost:3001
|
||
```
|
||
|
||
### Production сборка
|
||
|
||
```powershell
|
||
cd frontend
|
||
npm run build
|
||
# Статические файлы в frontend/out/
|
||
```
|
||
|
||
## 🚢 Деплой на сервер (Ubuntu)
|
||
|
||
### Настройка сервера
|
||
|
||
1. Установить Node.js и PM2:
|
||
```bash
|
||
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
||
sudo apt-get install -y nodejs
|
||
sudo npm install -g pm2
|
||
```
|
||
|
||
2. Клонировать проект:
|
||
```bash
|
||
cd ~/projects
|
||
git clone <repository-url> my-project
|
||
cd my-project
|
||
```
|
||
|
||
3. Установить зависимости:
|
||
```bash
|
||
cd frontend && npm install && cd ..
|
||
cd backend && npm install && cd ..
|
||
```
|
||
|
||
4. Собрать фронтенд:
|
||
```bash
|
||
cd frontend && npm run build
|
||
```
|
||
|
||
5. Настроить PM2:
|
||
```bash
|
||
pm2 start backend/server.js --name my-project-backend
|
||
pm2 start frontend/.next/start.js --name my-project-frontend
|
||
# или настроить ecosystem.config.js
|
||
```
|
||
|
||
## 🔧 Настройка проекта
|
||
|
||
### Переименование проекта
|
||
|
||
1. Обновить `package.json` в `frontend/` и `backend/`
|
||
2. Обновить название в `README.md`
|
||
3. Обновить пути в конфигурации (если нужно)
|
||
|
||
### Переменные окружения
|
||
|
||
Создайте файлы `.env.local` (frontend) и `.env` (backend) для локальной разработки.
|
||
|
||
## 📚 Документация
|
||
|
||
- **[Правила проекта](docs/PROJECT_RULES.md)** - Стандарты кодирования и workflow
|
||
- **[База знаний](docs/KNOWLEDGE_BASE.md)** - Архитектура и технические детали
|
||
- **[История изменений](docs/CHANGELOG.md)** - Changelog
|
||
|
||
## 🎯 Стандарты разработки
|
||
|
||
- Модульная архитектура
|
||
- Строгая типизация TypeScript (без `any`)
|
||
- ESLint для проверки кода
|
||
- Git workflow: разработка в `dev`, слияние в `main`
|
||
|
||
Подробнее: [`docs/PROJECT_RULES.md`](docs/PROJECT_RULES.md)
|
||
|
||
## 🔧 Дополнительные инструменты
|
||
|
||
### Форматирование кода (Prettier)
|
||
|
||
```powershell
|
||
cd frontend
|
||
npm run format # Форматировать весь код
|
||
npm run format:check # Проверить форматирование
|
||
```
|
||
|
||
### Переменные окружения
|
||
|
||
Скопируйте `.env.example` файлы и заполните значения:
|
||
- `frontend/.env.example` → `frontend/.env.local`
|
||
- `backend/.env.example` → `backend/.env`
|
||
|
||
### Улучшения шаблона
|
||
|
||
Шаблон включает следующие улучшения:
|
||
- ✅ **Winston** - продвинутое логирование
|
||
- ✅ **Express Validator** - валидация запросов
|
||
- ✅ **Express Rate Limit** - защита от злоупотреблений
|
||
- ✅ **dotenv** - управление переменными окружения
|
||
- ✅ **Docker** - контейнеризация приложения
|
||
- ✅ **GitHub Actions** - CI/CD автоматизация
|
||
|
||
Подробные инструкции: [`docs/USAGE_GUIDE.md`](docs/USAGE_GUIDE.md)
|
||
Быстрый старт: [`docs/QUICK_START.md`](docs/QUICK_START.md)
|
||
|
||
## 📝 Лицензия
|
||
|
||
ISC
|
||
|
||
## 👤 Автор
|
||
|
||
Создано на основе стандартов разработки DosAi
|
||
|
||
## 📚 Дополнительная информация
|
||
|
||
См. [`IMPROVEMENTS.md`](IMPROVEMENTS.md) для списка улучшений и рекомендаций.
|
||
|