From 8c961cd0822985ea23c8ca4ee084ba97b2740323 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 5 Jun 2026 08:41:07 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20SETUP.md=20=E2=80=94=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B0=20=D0=BD=D0=B0=20=D0=B4=D1=80=D1=83=D0=B3=D1=83?= =?UTF-8?q?=D1=8E=20=D0=BC=D0=B0=D1=88=D0=B8=D0=BD=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чеклист: предустановки, npm install, .env, что переносить вне git (БД/uploads/.env), миграции/seed, запуск, восстановление памяти, ast-index/vex. Данные (с ключами) переносятся отдельным пакетом, не в git. Co-Authored-By: Claude Opus 4.8 (1M context) --- SETUP.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 SETUP.md diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..bbb5ab3 --- /dev/null +++ b/SETUP.md @@ -0,0 +1,79 @@ +# Перенос проекта на другую машину + +Репозиторий содержит **код, конфиг Claude и снимок памяти**, но НЕ содержит +**данные и секреты** (база, uploads, `.env`, `node_modules`) — их переносят +отдельно, вне git (см. шаг 4 и переносной пакет). + +## 0. Предустановки +- **Node.js ≥ 22** (используется встроенный `node:sqlite`; разрабатывалось на Node 24). +- **Git**. +- *(опционально)* Системный **Chrome** — для генерации учебников через `puppeteer-core`. +- *(опционально)* **MySQL / OpenSSL** — если используются внешние скрипты. +- *(опционально)* Инструменты поиска по коду: **ast-index** и **vex**. + +## 1. Код +```bash +git clone +cd BQ-System +``` + +## 2. Зависимости +```bash +cd backend +npm install +``` +(если в корне есть свой `package.json` — `npm install` и там) + +## 3. Секреты — `.env` +```bash +cp backend/.env.example backend/.env # затем заполнить JWT_SECRET и т.п. +``` +Готовый `.env` есть в переносном пакете — можно взять его. +**Ключи ассистента (Kilo / Gemini) лежат в БД** (`app_settings`), не в `.env` — приедут вместе с базой. + +## 4. Данные (из переносного пакета, вне git) +Скопировать из пакета в проект: +- `learnspace.db` → `backend/data/learnspace.db` +- `uploads/` → `backend/uploads/` +- `.env` → `backend/.env` + +Без базы сервер поднимется на **пустой** БД (контент, пользователи и ключи ИИ отсутствуют). + +## 5. База с нуля (только если нет готовой learnspace.db) +```bash +cd backend +npm run migrate # применить миграции (создаёт схему) +npm run seed # базовые данные +# контент — частично через скрипты: +npm run import:content +npm run import:exam-tasks +npm run index:textbooks # RAG-индекс для ассистента +``` +Полностью контент и пользователей seed-скрипты не восстановят — для «как тут» переноси готовую `learnspace.db`. + +## 6. Запуск +```bash +cd backend +npm start # http://localhost:3000 +``` + +## 7. Память Claude +Скопировать `.claude/memory/*.md` в пользовательскую папку памяти Claude. +Инструкция и команды — в [.claude/memory/README.md](.claude/memory/README.md). + +## 8. Поиск по коду (опционально) +Установить `ast-index` и `vex`, затем построить индексы: +```bash +ast-index rebuild +vex index --semantic +``` + +## Что НЕ переносится репозиторием (резюме) +| Объект | Где взять | +|---|---| +| `backend/data/learnspace.db` | переносной пакет (контент + пользователи + ключи ИИ) | +| `backend/uploads/` | переносной пакет (загруженные файлы) | +| `backend/.env` | переносной пакет или из `.env.example` | +| `node_modules` | `npm install` | +| ast-index / vex индексы | пересобрать на машине | +| Память Claude (юзер-папка) | `.claude/memory/` → см. README |