# Compton Platform Если вы открыли этот файл — поздравляем: перед вами monorepo с React, FastAPI и амбициями выйти в production. Амбиции живут в [docs/release.md](docs/release.md), код — в `apps/`, секреты — **не** в git. Платформа Compton Organic Tech: лендинг, auth, профиль, CMS, админка в стиле WESP/zootech. ТЗ: [docs/TZ.md](docs/TZ.md). ## Быстрый старт ```bash git clone https://git.groupkomton.ru/Matvey/site.git && cd site python apps/api/scripts/bootstrap_install.py # один раз, до первого up (секреты БД) bash scripts/materialize-wesp-static.sh # WESP UI → public/static (авто при pnpm dev) docker compose --profile docker-web up -d --build curl http://localhost:8000/api/v1/health # Windows: curl.exe ``` > **После `git clone` обязательно:** `bootstrap_install.py` **до** `docker compose up` — иначе Postgres не примет пароль из `install.env`. > WESP UI лежит в git (`apps/web/public/wesp/`); `public/static/` генерируется скриптом (не в git). | URL | Что там | |-----|---------| | http://localhost:5173 | Лендинг `/` + SPA (`/login`, `/admin`, …) | | http://localhost:8000/api/v1/health | API жив? | | http://localhost:8000/api/v1/docs | OpenAPI (только dev) | **Логин для пробы:** `admin@compton.example` / `Admin1234` → `/admin`. > Bootstrap **до** первого `docker compose up`. Иначе Postgres скажет «password authentication failed» — см. [docs/deploy.md § восстановление](docs/deploy.md#восстановление-секретов). **Не делайте:** Docker `web` и `pnpm --filter web dev` одновременно — оба хотят порт **5173**. ## Демо-аккаунты (dev) Подробнее: [docs/deploy.md § стандартные логины](docs/deploy.md#стандартные-логины-dev). | Email | Пароль | Env | Роль | Superuser | |-------|--------|-----|------|-----------| | admin@compton.example | Admin1234 | `ADMIN_INITIAL_PASSWORD` | admin | да — Security, Diagnostics, secrets | | ops@compton.example | OpsAdmin1234 | `DEMO_OPS_PASSWORD` | admin | нет — Users, Content, Activity | | user@compton.example | User1234 | `DEMO_USER_PASSWORD` | user | — | CMS после seed: `/pages/about`, `/pages/privacy`, `/pages/terms`. В production/staging demo-users **выключены** (`SEED_DEMO_USERS=false`). ## Тесты ```bash pnpm --filter web test:ci # frontend, cov ≥ 85% cd apps/api && python -m pytest --cov=app --cov-fail-under=90 pnpm --filter web e2e # Playwright, API :8001 ``` ## Документация Вся нормальная дока — в **`docs/`**, на русском, без водянистого README на 500 строк: | Файл | О чём | |------|-------| | [docs/README.md](docs/README.md) | Оглавление | | [docs/project.md](docs/project.md) | Структура, архитектура, API, маршруты | | [docs/security.md](docs/security.md) | Auth, JWT revoke, секреты, чеклист prod | | [docs/deploy.md](docs/deploy.md) | Dev/staging/prod, бэкапы, troubleshooting | | [docs/release.md](docs/release.md) | QA gates, k6, ZAP, go-live | | [docs/TZ.md](docs/TZ.md) | Техническое задание | ## Работа с Git **Репозиторий:** https://git.groupkomton.ru/Matvey/site.git **Ветка:** `main` (одна ветка, без сюрпризов) ```bash git pull origin main # перед работой — всегда git status && git diff # перед коммитом — тоже всегда git add . git commit -m "Сделал то-то на русском" git push origin main ``` **Коммиты — только на русском.** Плохо: `fix`, `WIP`, `asdf`. **Не коммитить:** `.env`, `install.env`, `node_modules/`, логи, кэши. **Не делать** `git push --force` на `main` без согласования. | Команда | Зачем | |---------|-------| | `git log --oneline -10` | что было | | `git checkout -- файл` | откатить файл | | `git stash` / `git stash pop` | спрятать / вернуть правки | ## План по ТЗ (§16) | Фаза | Задачи | Статус | |------|--------|--------| | **0 — Подготовка** | Monorepo, Docker Compose, UI kit, CI/coverage gates, Playwright smoke | Выполнено | | **1 — MVP** | Landing, Auth+SMTP, Profile, Content, Admin, staging + полный регресс | В процессе | | **2 — v1.0** | Celery/notifications, Catalog+Orders, Analytics, k6 + monitoring | Когда начнём? | | **3 — Scale** | Read replica PG, Celery workers, CDN, horizontal API | Когда начнём? | ### Фаза 1 — детализация | # | Задача | Модули | Статус | |---|--------|--------|--------| | 1.1 | Landing (перенос заглушки) | landing | Выполнено | | 1.2 | Auth + SMTP | auth | Выполнено | | 1.2b | Security baseline | core, auth | В процессе | | 1.3 | Profile CRUD + avatar | profile | Выполнено | | 1.4 | Content pages | content | Выполнено | | 1.5 | Admin panel | admin | Выполнено | | 1.6 | Staging deploy + полный регресс (§15.7) | — | В процессе | Критерии приёмки MVP — §17.1 ТЗ (k6 50 CCU, Lighthouse ≥85, E2E 10/10, coverage gates). --- *Дальше — [docs/](docs/README.md). Там схемы, таблицы и вещи, которые не помещаются в README без страданий.*