Обновление
Перевод существующей установки на новую версию происходит на месте — без повторной
установки. Ваши секреты (.env.local), конфигурация (agents.config.json), данные (~/.erebros,
хранилище (vault) Obsidian), логины CLI (claude / codex / hermes / …) и локальные
движки (~/wm-engine, ~/openseo) остаются ровно там, где были. Подменяется только
исходный код приложения.
Встроенный апдейтер
Заголовок раздела «Встроенный апдейтер»Когда доступна новая версия, появляется баннер обновления. Он показывает версию и что изменилось. Версия — единственный критерий: баннер предлагает обновление только тогда, когда удалённая версия действительно новее, так что даунгрейд он не предложит никогда.
Нажмите Update. Erebros забирает объявленный коммит, ставит зависимости через
npm ci --ignore-scripts, собирает и перезапускается. Прогресс показан в оверлее; по завершении
страница перезагружается уже на новой версии. Если сборка падает, происходит откат
к предыдущей рабочей сборке.
Плановые проверки выполняются дважды в день — по умолчанию в 09:00 и 21:00 местного времени, оба часа настраиваются в Settings → Updates. Проверка только показывает баннер. Автоматические обновления по умолчанию выключены; если их включить, обновление применяется не чаще раза в сутки по UTC и только когда удалённая версия новее.
Для приватного репозитория апдейтеру нужен токен с правом чтения в .env.local:
он читает сначала GITHUB_EREBROS_UPDATE, затем GITHUB_TOKEN, затем GH_TOKEN. Токен
передаётся git через GIT_CONFIG_*, никогда в командной строке, поэтому он
не может утечь в логи.
Ручной запуск node scripts/self-update.mjs требует предварительного Check now (или
--expect-sha= / --allow-unverified) — апдейтер применяет ровно тот коммит, который
объявил.
Установки из zip
Заголовок раздела «Установки из zip»Установка без git-репозитория не может сделать pull; она обновляется распаковкой нового zip, и баннер об этом сообщает. Процедура, из папки вашей установки:
# 1) Stop the running app — pick the line for YOUR OS.systemctl --user stop erebros # Linux (systemd)# launchctl unload -w ~/Library/LaunchAgents/com.erebros.app.plist # macOS (launchd)# Stop-ScheduledTask -TaskName Erebros # Windows (PowerShell)# … no autostart? just stop your `npm run dev` / `npm start` process.
# 2) Back up your secrets.cd ~/erebros && cp .env.local ~/erebros-env-$(date +%Y%m%d).bak 2>/dev/null || true
# 3) Swap in the new source. --delete removes files REMOVED in the new version# (renamed apps); the --exclude list protects your local-only files.unzip -oq ~/erebros-<VERSION>.zip -d /tmp/erebros-newrsync -a --delete \ --exclude='.env.local' --exclude='.env.*' --exclude='agents.config.json' \ --exclude='node_modules' --exclude='.next' --exclude='.git' \ --exclude='.claude' --exclude='generated' --exclude='*.tsbuildinfo' \ /tmp/erebros-new/erebros-<VERSION>/ ~/erebros/rm -rf /tmp/erebros-new
# 4) Refresh deps and restart.cd ~/erebros && npm installsystemctl --user restart erebros # Linux# launchctl load -w ~/Library/LaunchAgents/com.erebros.app.plist # macOS# Start-ScheduledTask -TaskName Erebros # WindowsНет rsync? unzip -o ~/erebros-<VERSION>.zip -d /tmp/mv && cp -a /tmp/mv/erebros-<VERSION>/. ~/erebros/
обновляет и добавляет файлы, но оставляет удалённые (обычно это безвредно). На Windows
выполняйте shell-команды в Git Bash или WSL.
После перезапуска откройте http://localhost:3300; если что-то выглядит не так, читайте логи —
journalctl --user -u erebros -f (Linux), ~/.erebros/erebros.err.log (macOS) или
историю Scheduled Task (Windows).
Переход с ≤ 6.15.x — релиз безопасности (прочитать один раз)
Заголовок раздела «Переход с ≤ 6.15.x — релиз безопасности (прочитать один раз)»Пользуетесь Erebros только на этой машине (
127.0.0.1/localhost)? Вам ничего делать не нужно. Ни PIN, ни нового экрана, ни настроек, которые надо менять.
Обновление выполняется само, и на самой машине ничего не ломается. post-update
делает разовую миграцию: .env.local и копии учётных данных становятся 0600,
боты 3D-Forge получают секрет хука, а отчёт называет, где лежит PIN для удалённого доступа.
Что вы можете заметить:
| У вас было… | После обновления |
|---|---|
| Erebros только на этой машине | Ничего не меняется. Теперь существует PIN для удалённых хостов (~/.erebros/access-pin, а также в Settings → Security) — на тот день, когда он понадобится. |
| Erebros открыт через Tailscale / LAN без PIN | Этот хост в первый раз спросит PIN: введите тот, что в Settings → Security → Показать (или cat ~/.erebros/access-pin). Хост запоминается; сессия живёт 30 дней. |
Задан EREBROS_ACCESS_PIN=…, в браузере уже разблокировано |
Ваша cookie разблокировки принимается один раз и переиздаётся; хост запоминается. Ваш PIN по-прежнему действует везде (и на loopback) — переключите режим в Settings → Security, если хотите loopback открытым. |
Задан EREBROS_ACCESS_PIN=…, cookie истекла / новое устройство |
Экран разблокировки на том хосте; ваш PIN работает; хост запоминается. |
| PIN короче 8 символов | По-прежнему работает; лог один раз предупреждает. Смените его в Settings → Security. |
| Консоль OpenCode с автоподтверждением | Теперь она спрашивает разрешения. EREBROS_CHAT_PERMISSION_MODE=bypass возвращает старое поведение по умолчанию. Автономные приложения (OpenMontage, цели Hermes, Loop, Пайплайн) не изменились. |
| Дни тяжёлой генерации | Потолок 25 USD в день по всем платным движкам; поднимите его в Settings → Security или через EREBROS_DAILY_SPEND_USD. |
| Проекты VC-Forge вне домашних папок | Существующие проекты продолжают работать; новые создаются в хранилище / ~/Projects / ~/Documents / ~/Desktop / ~/Obsidian (или EREBROS_VCFORGE_DIR). |
R-Forge / N-Forge получали URL localhost или из LAN |
Теперь отказ; EREBROS_ALLOW_PRIVATE_FETCH=1, если это было намеренно. |
| Telegram-боты 3D-Forge | Переподготавливаются автоматически. Если бот отвечает «hook refused», выполните node scripts/gforge/setup-swarm-3d.mjs --all. |
npm run dev -- -H 0.0.0.0 |
Не надо. Используйте Tailscale / туннель + Settings → Security → Разрешённые хосты. |
Полный справочник: Безопасность и удалённый доступ.
Заметки к старым версиям
Заголовок раздела «Заметки к старым версиям»Перепрыгиваете через несколько версий сразу? Выполните общую процедуру один раз до целевой
версии, затем прочитайте промежуточные заметки в UPDATE.md в репозитории. Те, что всё ещё
кусаются:
- 6.12.5–6.12.7 → новее — старый апдейтер спотыкался на
.next/cacheпри переименовании. Разорвите цикл один раз:cd ~/erebros && rm -rf .next/cache && node scripts/self-update.mjs, либо вручнуюgit pull && npm install && npm run build. - ≤ 6.5 → новее — Course Gen и Erebros-Slides стали P-Forge;
/coursegenи/slidesперенаправляют./vibecodingперенаправляет на VC-Forge,/mineru— на D-Forge → MinerU,/seo— на SEO-Forge. - ≤ 6.13 → новее — страницы консолей отдельных моделей стали одним Чатом; Music, Thumbnails, OpenMontage и Video Editor — это вкладки M-Forge.
Ваши файлы сохраняются
Заголовок раздела «Ваши файлы сохраняются»Обновление откатывает отслеживаемые файлы к релизу, но ваши собственные не трогает:
agents.config.json (трёхстороннее слияние, если релиз тоже его менял), .env.local,
всё в ~/.erebros, хранилище и логины CLI.