Files
main/PI-BACKUP-README.md
2026-07-14 05:48:04 +05:00

205 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Бэкап среды Pi Coding Agent
Файлы рядом:
- `pi-env-backup.sh` — скрипт создания, проверки и восстановления бэкапа;
- `PI-BACKUP-README.md` — эта инструкция.
Скрипт переносит именно среду Pi, а не проекты.
## Что сохраняется
- `~/.pi/agent/settings.json` — глобальные настройки Pi;
- `~/.pi/agent/auth.json` — авторизация и API-ключи;
- `~/.pi/agent/mcp.json` и `~/.pi/agent/mcp-oauth/` — MCP;
- `~/.pi/agent/models.json`, `models.yml` — настройки моделей;
- `~/.pi/agent/extensions/`, `skills/`, `npm/`, `git/` — плагины и Pi packages;
- `~/.pi/agent/AGENTS.md`, `keybindings.json`, `trust.json`;
- `~/.pi/agent/sessions/` — история сессий (**по умолчанию не сохраняется**);
- `~/.pi/agent/pi-hermes-memory/` и `projects-memory/` — память;
- `~/.pi/context-mode/` — индексы и локальные данные context-mode (**по умолчанию не сохраняются**);
- `~/.pi/agent/ayu/checkpoints/` — checkpoints (**по умолчанию не сохраняются**);
- `~/.agents/` — дополнительные пользовательские skills;
- `~/.pi/local-docs/`, если каталог существует.
Архив также содержит манифест версий установленных программ и копию самого скрипта для восстановления.
> **Внимание:** архив содержит секреты из `auth.json`, MCP OAuth и других конфигов. Не выкладывай его в публичное хранилище.
---
## 1. Создать полный бэкап
Закрой все запущенные Pi:
```bash
pkill -f pi-coding-agent || true
```
Создай каталог для архивов и запусти:
```bash
mkdir -p ~/pi-backups
cd /home/smog/main
./pi-env-backup.sh backup ~/pi-backups
```
Или сразу на внешний диск:
```bash
./pi-env-backup.sh backup /media/smog/SSD
```
На выходе будут два файла:
```text
pi-backup-YYYYMMDD-HHMMSS.tar.zst
pi-backup-YYYYMMDD-HHMMSS.tar.zst.sha256
```
По умолчанию архив НЕ включает `ayu/checkpoints`, историю Pi-сессий и `context-mode`: это кэш/история, не нужные для работы плагинов. Поэтому архив обычно будет порядка **0.81 ГБ до сжатия** и ориентировочно **0.40.8 ГБ после zstd**. Точный размер скрипт покажет в конце.
---
## 2. Проверить архив
Посмотреть содержимое:
```bash
./pi-env-backup.sh list ~/pi-backups/pi-backup-*.tar.zst
```
Проверить контрольную сумму:
```bash
sha256sum -c ~/pi-backups/pi-backup-*.tar.zst.sha256
```
---
## 3. Дополнительные варианты бэкапа
По умолчанию уже создаётся облегчённый бэкап: плагины, настройки, auth, MCP, memory и skills сохраняются, а checkpoints/сессии/context-mode — нет.
Включить историю старых Pi-сессий:
```bash
PI_BACKUP_INCLUDE_SESSIONS=1 \
./pi-env-backup.sh backup ~/pi-backups
```
Включить context-mode индексы:
```bash
PI_BACKUP_INCLUDE_CONTEXT=1 \
./pi-env-backup.sh backup ~/pi-backups
```
Включить старые ayu checkpoints (обычно не нужно):
```bash
PI_BACKUP_INCLUDE_AYU=1 \
./pi-env-backup.sh backup ~/pi-backups
```
Включить всё сразу:
```bash
PI_BACKUP_INCLUDE_SESSIONS=1 \
PI_BACKUP_INCLUDE_CONTEXT=1 \
PI_BACKUP_INCLUDE_AYU=1 \
./pi-env-backup.sh backup ~/pi-backups
```
Настройки, auth, MCP, memory, плагины и skills сохраняются во всех вариантах.
---
## 4. Восстановить на ноутбуке в WSL
На ноутбуке установи базовые инструменты:
```bash
sudo apt update
sudo apt install -y zstd nodejs npm
```
Передай на ноутбук архив и `.sha256` рядом с ним. Проверь архив:
```bash
sha256sum -c pi-backup-YYYYMMDD-HHMMSS.tar.zst.sha256
```
Если бэкап был скачан из этого Git-репозитория, сначала забери LFS-файлы и собери архив из частей:
```bash
git lfs pull
chmod +x assemble-pi-backup.sh
./assemble-pi-backup.sh pi-backup-YYYYMMDD-HHMMSS.tar.zst
```
Скрипт соберёт `*.part-*` в исходный `.tar.zst` и сразу проверит контрольную сумму.
Извлеки встроенную копию restore-скрипта:
```bash
zstd -dc pi-backup-YYYYMMDD-HHMMSS.tar.zst \
| tar -xOf - meta/pi-env-backup.sh > pi-env-restore.sh
chmod +x pi-env-restore.sh
```
Запусти восстановление:
```bash
./pi-env-restore.sh restore pi-backup-YYYYMMDD-HHMMSS.tar.zst
```
Скрипт распакует Pi-среду в домашний каталог текущего пользователя WSL. Если `~/.pi/agent` уже существует, он сначала переименует его в каталог вида:
```text
~/.pi/agent.before-restore-YYYYMMDD-HHMMSS
```
Если Pi ещё не установлен, скрипт установит его так:
```bash
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
```
---
## 5. Проверить восстановление
```bash
pi --version
pi list
```
Запусти Pi в одном из своих проектов:
```bash
cd ~/main/имя-проекта
pi
```
Проверь:
```text
/mcp
/login # только если OAuth/API-ключ не восстановился
```
Если какие-то внешние программы нужны плагинам, установи их отдельно: `bun`, `pnpm`, `uv`, `gh`, `jj`, `docker` и т.п. Их бинарники не копируются архивом — архив переносит состояние Pi и список обнаруженных инструментов в `meta/MANIFEST.txt`.
---
## 6. Важные замечания
1. Перед созданием архива закрывай Pi, чтобы не копировать активные session/SQLite-файлы.
2. Не используй `PI_BACKUP_ALLOW_RUNNING=1`, если нет особой причины.
3. Архив — это переносимая копия пользовательской Pi-среды, но не копия всей ОС.
4. Проекты не входят в этот архив: они уже есть в WSL отдельно.
5. Project-local файлы вроде `project/.pi/`, `project/.agents/`, `AGENTS.md` и `CLAUDE.md` не входят в глобальный архив, если находятся внутри проектов. Их нужно хранить вместе с проектами или отдельно скопировать.
6. Некоторые OAuth-провайдеры могут потребовать повторный `/login` на новом ноутбуке.