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:
44
architecture/decisions/006-vps-docker-deploy.md
Normal file
44
architecture/decisions/006-vps-docker-deploy.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# ADR-006: VPS + Docker Compose для деплоя
|
||||
|
||||
## Статус
|
||||
|
||||
Принято
|
||||
|
||||
## Контекст
|
||||
|
||||
Нужна стратегия деплоя для MVP. Критерии: простота, предсказуемая стоимость, контроль над сервером.
|
||||
|
||||
## Варианты
|
||||
|
||||
1. **VPS + Docker Compose** — один сервер, все сервисы в контейнерах, предсказуемая цена.
|
||||
2. **Cloud managed (AWS ECS, Yandex Cloud)** — масштабирование, managed DB, но сложнее и дороже для MVP.
|
||||
3. **PaaS (Railway, Render)** — самый простой деплой, но ограничения и непредсказуемые costs при росте.
|
||||
|
||||
## Решение
|
||||
|
||||
VPS + Docker Compose для MVP.
|
||||
|
||||
### Состав контейнеров
|
||||
|
||||
```
|
||||
docker-compose.yml
|
||||
├── backend (Fastify API)
|
||||
├── frontend (nginx + React static build)
|
||||
├── postgres (PostgreSQL)
|
||||
├── redis (Redis)
|
||||
└── nginx (reverse proxy, SSL termination)
|
||||
```
|
||||
|
||||
### Почему VPS
|
||||
|
||||
- Полный контроль над сервером (LLM-логи, бэкапы, мониторинг)
|
||||
- Фиксированная стоимость ~500-1500 руб/мес
|
||||
- Docker Compose — один файл для всего окружения
|
||||
- При росте — миграция на cloud без изменения контейнеров
|
||||
|
||||
## Последствия
|
||||
|
||||
- Нужно самостоятельно настраивать SSL (Let's Encrypt / certbot)
|
||||
- Нет автоматического масштабирования (достаточно для MVP)
|
||||
- Бэкапы БД — скрипт с cron
|
||||
- Мониторинг — Sentry + базовые health checks
|
||||
Reference in New Issue
Block a user