Перейти к основному содержимому

Упаковка

NeoTavern распространяется как нативные пакеты для каждой платформы, каждый из которых несёт sidecar на Node.js, SQLite, нативные аддоны и продакшн-веб-ресурсы.

Форматы дистрибуции

Десктопная сборка производит:

  • Установщик Windows — установщики NSIS и MSI с режимом установки для пользователя. Установщик регистрирует приложение и помещает пользовательские данные в каталог app-local-data платформы.
  • Портативная сборка Windows — ZIP с исполняемым файлом, sidecar, маркером portable.flag и resources/, плюс файл контрольной суммы .sha256. При наличии флага данные живут в локальной папке data/ рядом с приложением, а не в app-local-data.
  • Пакет macOS — пакет .app, упакованный в DMG на macOS-раннере.
  • Linux — AppImage и архив.

Каждый формат собирается и смоук-тестируется на собственном нативном раннере платформы, потому что дистрибутив включает нативные аддоны. Кроссплатформенное копирование подготовленных артефактов не поддерживается.

Что внутри

Каждый пакет содержит всё необходимое приложению в рантайме:

  • Оболочку Tauri 2.
  • Самодостаточный исполняемый файл sidecar на Node.js 24.
  • SQLite через better-sqlite3.
  • Sharp для обработки изображений.
  • Продакшн-веб-ресурсы.

Поскольку Node.js, SQLite и ресурсы находятся внутри пакета, пользователю ничего не нужно устанавливать заранее — ни Node.js, ни npm, ни настройки базы данных.

Первый запуск

Первый запуск — главное обещание продукта: откройте приложение — и оно работает.

  1. Оболочка запускает sidecar.
  2. Backend создаёт каталог данных, инициализирует базу данных SQLite, выполняет ожидающие миграции (с резервной копией перед ожидающими изменениями схемы), наполняет встроенные темы и стартового персонажа.
  3. Webview открывается на готовом приложении.

Нет терминала, нет мастера установки, кроме платформенного, нет npm install и нет ручной настройки. Если пользователь выбрал фон чата или установил плагины, ничего из этого не живёт в исполняемом файле — пользовательские данные отделены от пакета, поэтому обновления заменяют ядро, не затрагивая файлы пользователя.

Обновления

Релизные сборки подписывают свои артефакты и интегрируют апдейтер Tauri. Апдейтер проверяет манифест и подпись minisign перед установкой артефакта платформы, затем перезапускает оболочку. Откат означает публикацию предыдущего проверенного кода как нового подписанного релиза — неподписанные даунгрейды не допускаются. Плагины и темы обновляются независимо через менеджеры плагинов и тем; пользовательские файлы никогда не попадают в исполняемый артефакт обновления.

Сборка

Из репозитория команды упаковки:

pnpm desktop:prepare
pnpm desktop:build
pnpm desktop:portable
pnpm desktop:release

desktop:prepare собирает сервер и web, копирует специфичные для цели нативные аддоны и создаёт sidecar с суффиксом целевого триплета Tauri. desktop:portable дополнительно собирает установщики NSIS/MSI и портативный ZIP с контрольной суммой, затем запускает безголовый смоук-тест оболочки. desktop:release создаёт подписанные артефакты обновлений и требует секретов релиза. Сборка установщиков требует Rust stable MSVC, Windows C++ Build Tools и WebView2 на сборочной машине — конечным пользователям ничего из этого не нужно.