docs: add full project documentation
- Architecture: overview, 7 ADR, tech stack - Principles: code-style, git-workflow, security - API contracts: auth, profile, tests, admin endpoints - Database schema: tables, relationships, indexes - LLM strategy: prompts, fallback, validation, Qwen 2.5 14B - Onboarding: setup, Docker, .env template - Progress: roadmap, changelog - Agents: context, backend instructions Made-with: Cursor
This commit is contained in:
126
onboarding/setup.md
Normal file
126
onboarding/setup.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Настройка окружения разработчика
|
||||
|
||||
## Требования
|
||||
|
||||
| Инструмент | Версия | Примечание |
|
||||
|-----------|--------|------------|
|
||||
| Node.js | >= 20 LTS | Через nvm (`nvm install 20`) |
|
||||
| npm | >= 10 | Приходит с Node.js |
|
||||
| Git | >= 2.40 | |
|
||||
| Docker | latest | + Docker Compose |
|
||||
| VS Code | latest | Рекомендован, настройки в репо |
|
||||
|
||||
## .nvmrc
|
||||
|
||||
В корне каждого code-репо лежит `.nvmrc`:
|
||||
|
||||
```
|
||||
20
|
||||
```
|
||||
|
||||
При входе в директорию: `nvm use`
|
||||
|
||||
## Docker Compose (локальное окружение)
|
||||
|
||||
Для разработки нужны PostgreSQL и Redis. Docker Compose файл лежит в `samreshu-backend`:
|
||||
|
||||
```yaml
|
||||
# docker-compose.dev.yml
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
POSTGRES_USER: samreshu
|
||||
POSTGRES_PASSWORD: samreshu_dev
|
||||
POSTGRES_DB: samreshu
|
||||
ports:
|
||||
- "5432:5432"
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
ports:
|
||||
- "6379:6379"
|
||||
|
||||
volumes:
|
||||
pgdata:
|
||||
```
|
||||
|
||||
Запуск:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
```
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
Backend `.env` (шаблон):
|
||||
|
||||
```env
|
||||
# Server
|
||||
PORT=3000
|
||||
HOST=0.0.0.0
|
||||
NODE_ENV=development
|
||||
|
||||
# Database
|
||||
DATABASE_URL=postgresql://samreshu:samreshu_dev@localhost:5432/samreshu
|
||||
|
||||
# Redis
|
||||
REDIS_URL=redis://localhost:6379
|
||||
|
||||
# Auth
|
||||
JWT_SECRET=dev-secret-change-in-production
|
||||
JWT_ACCESS_TTL=15m
|
||||
JWT_REFRESH_TTL=7d
|
||||
|
||||
# LLM
|
||||
LLM_BASE_URL=http://localhost:11434/v1
|
||||
LLM_MODEL=qwen2.5:14b
|
||||
LLM_API_KEY=
|
||||
LLM_TIMEOUT_MS=15000
|
||||
LLM_MAX_RETRIES=1
|
||||
LLM_TEMPERATURE=0.7
|
||||
LLM_MAX_TOKENS=2048
|
||||
|
||||
# Email (dev — mailpit / mailtrap)
|
||||
SMTP_HOST=localhost
|
||||
SMTP_PORT=1025
|
||||
SMTP_USER=
|
||||
SMTP_PASS=
|
||||
EMAIL_FROM=noreply@samreshu.dev
|
||||
|
||||
# Sentry (опционально для dev)
|
||||
SENTRY_DSN=
|
||||
```
|
||||
|
||||
`.env` файл **не коммитится**. В репо лежит `.env.example` с теми же ключами и примерами значений.
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
```bash
|
||||
# 1. Клонировать репозитории
|
||||
git clone <backend-repo-url> samreshu-backend
|
||||
git clone <frontend-repo-url> samreshu-frontend
|
||||
|
||||
# 2. Backend
|
||||
cd samreshu-backend
|
||||
nvm use
|
||||
npm install
|
||||
cp .env.example .env # заполнить значения
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
npm run db:migrate # применить миграции
|
||||
npm run dev # запустить сервер
|
||||
|
||||
# 3. Frontend (в отдельном терминале)
|
||||
cd samreshu-frontend
|
||||
nvm use
|
||||
npm install
|
||||
npm run dev # запустить Vite dev server
|
||||
```
|
||||
|
||||
## VS Code
|
||||
|
||||
При открытии репо VS Code предложит установить рекомендуемые расширения (из `.vscode/extensions.json`). Настройки форматирования и линтинга подхватятся автоматически из `.vscode/settings.json`.
|
||||
|
||||
См. [code-style.md](../principles/code-style.md) для полного списка расширений и настроек.
|
||||
Reference in New Issue
Block a user