Перейти к содержимому
supastack
Обзор документации
ДесктопTauri

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/desktop/updates.md (or send Accept: text/markdown).

Автообновления и каналы релизов

Подписанные фиды обновлений, канал stable/beta и поставляемый релизный процесс.

Задать вопрос об этом руководстве
Открыть в

Сгенерируйте пару ключей апдейтера один раз

Апдейтер проверяет подписи minisign на скачанных артефактах. Сгенерируйте пару ключей подписантом Tauri и храните закрытый ключ как TAURI_SIGNING_PRIVATE_KEY с паролем в TAURI_SIGNING_PRIVATE_KEY_PASSWORD, оба в вашем хранилище секретов — никогда в репозитории. Сборки, создающие артефакты апдейтера, излучают сайдкар .sig рядом с каждым установщиком; открытый ключ уходит клиентам, закрытый остаётся в CI.

corepack pnpm --filter @supastack/desktop exec tauri signer generate -w ~/.tauri/product.key

Настройте апдейтер во время сборки

tauri.conf.json поставляет блок-сентинел апдейтера с пустыми endpoints и pubkey — сохраните его, потому что плагин апдейтера не может инициализироваться без присутствующих ключей. Реальные значения глубоко сливаются во время сборки через оверлей JSON --config или переменную окружения TAURI_CONFIG; check:release-config печатает точный оверлей для вставки, когда установлены SUPASTACK_UPDATER_ENDPOINT и SUPASTACK_UPDATER_PUBKEY.

Устанавливайте оба или ни одного: оверлей только с endpoints оставляет pubkey пустым, поэтому проверки кажутся работающими, пока каждая установка падает на проверке подписи. URL эндпоинта несёт плейсхолдеры {{target}}, {{arch}} и {{current_version}} — слот версии обязателен — плюс необязательный сегмент пути {{channel}}, включающий каналы релизов.

# check:release-config prints this overlay for tauri build --config:
# {"plugins":{"updater":{"endpoints":["https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}"],"pubkey":"<base64 public key>"}}}
# SUPASTACK_UPDATER_ENDPOINT=
# SUPASTACK_UPDATER_PUBKEY=

Публикация фида latest.json

Каждый эндпоинт отвечает манифестом latest.json — version, notes, pub_date и картой platforms, покрывающей darwin-aarch64, darwin-x86_64, windows-x86_64, windows-aarch64, linux-x86_64 и linux-aarch64, — где каждая запись сопрягает URL установщика с его signature.

Собирайте его скриптом release:manifest: он сканирует каталог бандла на артефакты .app.tar.gz, -setup.exe (предпочтительнее .msi) и .AppImage — у каждого должен быть сосед .sig — и пишет или сливает манифест. Флаги покрывают --version, --base-url, --bundle-dir с --platform, --merge для накопления платформ между запусками, --notes, --pub-date и --out.

corepack pnpm --filter @supastack/desktop release:manifest -- \
  --version 1.2.0 \
  --base-url https://releases.example.com/stable \
  --bundle-dir src-tauri/target/release/bundle \
  --platform windows-x86_64 \
  --merge latest.json

Каналы stable и beta

Когда эндпоинт содержит плейсхолдер {{channel}}, меню приложения включает флажок «Beta Updates», переключающий фид между stable и beta. Выбор сохраняется в файле update-channel рядом с конфигурацией приложения; SUPASTACK_UPDATE_CHANNEL переопределяет его на запуск — нераспознанное игнорируется с предупреждением, — а stable является умолчанием. Без плейсхолдера переключатель остаётся отключённым, и проверяется только фид stable.

Когда проверяются обновления

Одна тихая фоновая проверка запускается при старте и показывает диалог, только когда обновление существует; пункт меню «Check for Updates…» сообщает каждый исход. Проверки сериализуются — второй параллельный запрос отбрасывается. Доступное обновление предлагает «Install and Restart», который скачивает, устанавливает и перезапускает приложение; ненастроенные сборки отвечают, что обновления не настроены, а сбои всплывают как диалоги, а не повторные попытки.

Поставляемый релизный процесс

.github/workflows/desktop-release.yml собирает матрицу — macOS на обеих архитектурах, Windows и Ubuntu — по тегам desktop-v* или ручному запуску с версией и каналом. Он штампует версию манифеста из тега (релиз, пропустивший это, предлагает себя как обновление вечно), сливает манифесты по платформам и создаёт черновой релиз GitHub, несущий latest.json плюс каждый установщик и подпись — помеченный prerelease для каналов beta.

Ему нужны SUPASTACK_APP_URL и SUPASTACK_UPDATER_ENDPOINT как переменные репозитория и SUPASTACK_UPDATER_PUBKEY плюс закрытый ключ подписи и его пароль как секреты; креденшелы подписи Apple — опциональное дополнение. Полный ранбук живёт в docs/desktop-updates.md в репозитории.

Проверка и устранение неполадок

Установите сборку, опубликуйте более новый манифест в тестовый фид и подтвердите, что диалог обновления приходит при следующей проверке и приложение перезапускается в новую версию. Затем переключитесь на beta и подтвердите, что ответ канального фида меняется.

Часто задаваемые вопросы

14 вопросов

Что такое supastack?

supastack — модульная основа для создания SaaS-продуктов с AI. Она объединяет общую инфраструктуру, чтобы вы могли сосредоточиться на продуктовых функциях.

Поддерживает ли он web и mobile?

Да. supastack включает приложения Next.js и Expo как отправные точки для web- и мобильных интерфейсов.

Какая аутентификация включена?

Better Auth покрывает e-mail/пароль, OTP и социальный вход. Личные воркспейсы провижинируются вместе с аккаунтом, чтобы продуктовые записи были ограничены с первого дня.

Как он поддерживает AI?

supastack включает настраиваемый мультипровайдерный AI, учёт использования, бюджеты и зашифрованную поддержку bring-your-own-key.

Как обрабатываются подписки?

Для продуктов на ките Stripe-биллинг, подписки и права доступа образуют основу платного доступа. Секреты провайдеров остаются только на сервере.

Где живёт мой продуктовый код?

Продуктовые функции остаются в отдельном коде, а продукт настраивает и интегрирует модули основы supastack.

Как устроены цены supastack?

Кит — разовая покупка с пожизненными обновлениями: Single Stack за $249 — на выбор репозиторий Next.js (веб), Expo (iOS и Android) или Tauri (macOS и Windows) —, Dual Stack за $398 с любыми двумя репозиториями или Full Bundle за $399 со всеми тремя репозиториями и полным монорепо, плюс $75 за каждое дополнительное место разработчика. Без подписки на кит. Оплата на этом сайте доставляет лицензионный ключ по e-mail, доступ к репозиторию — через приглашение GitHub.

Как воркспейсы ограничивают мои данные?

Записи пользователей ограничены по workspaceId. Идентичность, права доступа, AI-использование, события биллинга и записи аудита остаются внутри границы личного воркспейса.

Как работают фоновые задачи?

Trigger.dev — явный рантайм задач. Контракт JobRunner обещает только enqueue, status и cancel — семантика workflow остаётся специфичной для Trigger.dev и явной.

Чем почта отличается от рассылок?

Транзакционная почта покрывает продуктовые сценарии вроде уведомлений о завершении. Холодные рассылки и кампании — забота продукта, вне почтового модуля этого кита.

Как работают покупки в мобильном приложении?

Мобильное приложение поддерживает нативные покупки и восстановление через RevenueCat, а сервер проверяет доступ. Настройте аккаунты магазинов и завершите тестирование на устройствах перед публикацией. Веб-оплата остается отдельной.

Где хранятся ключи AI-провайдеров?

Bring-your-own-key креденшелы зашифрованы и остаются только на сервере. Ключи удаляются из логов; использование и бюджеты видны на уровне воркспейса.

Какие способы оплаты принимает оформление заказа?

Оформление заказа на Stripe принимает карты, а после включения кошельков в аккаунте Stripe может также предлагать Alipay и WeChat Pay — удобно для покупателей из Китая. Авторизации кошельков подтверждаются асинхронно, поэтому страница лицензии обновляется, как только платёж завершается.

Могу ли я получить возврат средств?

После получения доступа к репозиторию supastack остается вашим навсегда, поэтому возврат средств невозможен. Но будьте уверены: вы получаете полный исходный код с пожизненными обновлениями для создания и запуска неограниченного числа продуктов для себя или клиентов. Вы лишь не можете перепродавать код или распространять репозиторий как стартовый набор или шаблон.

RU
Тема