# Перенос проекта на другую машину Репозиторий содержит **код, конфиг 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 |