# Обновление и резервные копии

> Как обновлять открытое ядро Eggent, делать резервные копии папки data, проверять здоровье сервера, смотреть логи и переносить Eggent на другую машину.

Source: https://eggent.ai/r/docs/self-host-maintenance/

## Проверка, что всё работает {#health}

```bash
curl -fsS http://127.0.0.1:3000/api/health
```

Ответ содержит статус и версию Eggent. Эту же проверку можно поставить в мониторинг.

Команды `docker compose` ниже выполняются в папке установки (`~/.eggent`, если ставил установщиком). Логи контейнера:

```bash
docker compose logs -f --tail=200
```

## Обновление {#upgrade}

Перед обновлением сделай [резервную копию](https://eggent.ai/r/docs/self-host-maintenance.md#backup).

**Установлено установщиком** — просто запусти его снова, он обновит код и пересоберёт контейнер:

```bash
curl -fsSL https://get.eggent.ai | bash
```

**Готовый образ** — поменяй `EGGENT_VERSION` в `.env` на новую версию и выполни:

```bash
docker compose -f docker-compose.ghcr.yml pull
docker compose -f docker-compose.ghcr.yml up -d
```

**Из исходников**:

```bash
git pull
docker compose up -d --build
```

Что изменилось в каждой версии — в [релизах на GitHub](https://github.com/eggent-ai/eggent/releases).

## Резервные копии {#backup}

Всё состояние Eggent — это папка `data/`. Чтобы сделать копию, достаточно заархивировать её:

```bash
docker compose stop
tar czf eggent-data-$(date +%F).tgz data
docker compose start
```

Остановка нужна, чтобы файлы не менялись во время копирования. Храни копии вне сервера: в `data/` лежат ключи и токены, так что относись к архиву как к секрету.

## Перенос на другую машину {#migrate}

1. Установи Eggent на новой машине тем же способом.
2. Останови его и замени папку `data/` копией со старой машины.
3. Запусти снова. Чаты, проекты, настройки, ключи, расписания и Telegram-бот переедут вместе с папкой.

Если меняется публичный адрес, поправь `APP_BASE_URL` и заново нажми **Активировать бота** в **Настройки → Мессенджеры**, чтобы Telegram узнал новый адрес вебхука.

## Перезапуск и расписания {#restart}

При запуске Eggent заново включает все сохранённые [расписания](https://eggent.ai/r/docs/schedules.md). Запуски, пропущенные, пока сервер был выключен, не повторяются: задача выполнится в следующий раз по расписанию. Разовые задачи, время которых прошло, удаляются.

## Модель распознавания речи {#whisper}

Модель `whisper.cpp` скачивается при первом распознавании в `data/models/whisper/`. Чтобы сменить её на более точную, задай `EGGENT_STT_MODEL=small` (или `medium`) и пересоздай контейнер; новая модель скачается сама. Без доступа в интернет положи файл `ggml-<модель>.bin` в эту папку вручную.
