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:
@@ -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 |
|
||||||
Reference in New Issue
Block a user