docs: SETUP.md — перенос проекта на другую машину

Чеклист: предустановки, npm install, .env, что переносить вне git
(БД/uploads/.env), миграции/seed, запуск, восстановление памяти,
ast-index/vex. Данные (с ключами) переносятся отдельным пакетом, не в git.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-05 08:41:07 +03:00
parent 8a7091ddec
commit 8c961cd082
+79
View File
@@ -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 <repo-url>
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 |