Перейти к содержимому
supastack
Обзор документации
WebNext.js

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/signing.md (or send Accept: text/markdown).

Подпись кода

Подписывайте установщики, чтобы macOS и Windows перестали предупреждать ваших пользователей.

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

Прохождение для начинающих

Предварительные требования: завершить локальную настройку рабочего стола, включая Rust и инструменты сборки операционной системы. Остановите процесс разработки Tauri перед созданием установщика; оставьте веб-сервер работающим. Запустите каждую проверку ниже из корня репозитория и дождитесь ее завершения, прежде чем запускать следующую. Команды отфильтрованного пакета работают при оформлении заказов только для настольных компьютеров и на всех платформах.

Вкратце: рабочее пространство — это отдельные пользователи, данные и настройки одной команды. Сервер является доверенным сервером; не допускайте попадания ключей провайдера в код браузера и телефона. Миграция — это изменение версии базы данных, при котором создаются или обновляются таблицы. Модель ИИ — это механизм, который отвечает; Каталог моделей — это список доступных идентификаторов моделей и цен на сервере. Поставщик — это внешняя служба, такая как служба искусственного интеллекта, электронной почты или службы выставления счетов. Право — это грант, который позволяет рабочей области использовать функцию. Вебхук — это сообщение, которое одна служба отправляет на URL другой службы.

1. В местном филиале попросите своего агента по кодированию проверить apps/desktop/src-tauri/tauri.conf.json и установить для идентификатора продукта, имени приложения, значков и серверной части URL значения, которыми вы владеете. Используйте общедоступный бэкэнд HTTPS URL для выпускных сборок.

2. Из корня репозитория запустите проверку пакета Desktop, указанную ниже. Перед проверкой: Release-config установите SUPASTACK_APP_URL в этом терминале с помощью команды операционной системы в локальной настройке рабочего стола; общедоступный бэкэнд HTTPS должен быть запущен, а идентификатор приложения должен быть вашим собственным.

3. Успешная сборка не подписывает, нотариально заверяет и не публикует установщик; если Rust или системная библиотека отсутствуют, завершите локальную настройку рабочего стола.

Для пользовательского кода начните с предоставленного prompts/README.md и скопируйте ближайшее приглашение: prompts/new-app-screen.md для экрана приложения или prompts/new-landing-page.md для общедоступной страницы. Для работы с сервером, базой данных или провайдером дайте своему агенту кодирования задание из этого руководства и попросите его прочитать AGENTS.md, .ai/PROJECT_CONTEXT.md и соответствующие зеркала .ai/; проверьте точные исходные файлы, указанные здесь; список файлов и проверки перед редактированием; сохранять права собственности на рабочую область и секреты, доступные только серверу; и покажу вам разницу. Сообщите ему желаемое поведение, поля ввода и вывода, разрешенные роли, ожидаемые успехи и ошибки, а также тестовую учетную запись, поставщика или устройство. Используйте выборочные значения; никогда не вставляйте настоящий секрет.

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build

Настройка оболочки продукта

Просмотрите src-tauri/tauri.conf.json, метаданные, возможности и идентификаторы платформы Cargo. Замените значки приложений с помощью процесса общего ресурса и установите предполагаемый серверный компонент URL во время сборки/выполнения. Размещенное веб-приложение уже должно быть развернуто и доступно.

Запустите встроенный шлюз сборки

Эти команды пакета запускают проверку типов и тесты Rust, проверяют настройки выпуска и создают установщик Tauri. Конфигурация подписи и распространения зависит от целевой платформы и вашей учетной записи/сертификатов; не храните материалы для подписи в исходном коде.

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build

Проверьте установщик на целевой ОС.

Проверьте чистую установку, запуск, доступность серверной части, аутентификацию, меню/панель, регистрацию горячих клавиш, второй экземпляр, глубокие ссылки, повторную попытку в автономном режиме и удаление. Проверьте каждую поддерживаемую ОС отдельно. Локальная сборка не является подписанным или нотариально заверенным коммерческим распространением; Конфигурация подписи, канал обновления и автоматизация выпуска не включены.

Настройка и конфигурация

1. Неподписанные установщики нормально ставятся на вашу машину, но вызывают предупреждения Gatekeeper и SmartScreen у всех остальных — подписывайте до поставки.

2. На macOS вступите в Apple Developer Program ради сертификата Developer ID, затем добавьте конфигурацию подписи и нотаризации в секцию bundle в src-tauri/tauri.conf.json и передайте Tauri задокументированные env подписи (APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD, APPLE_SIGNING_IDENTITY плюс креденшелы нотаризации APPLE_API_KEY / APPLE_API_ISSUER) из вашего CI-хранилища секретов.

3. На Windows настройте подпись Windows в bundle — отпечаток сертификата или кастомную команду signtool — с сертификатом, тоже доставленным через хранилище секретов вашего раннера.

# tauri.conf.json ships unsigned today:
#   "bundle": { "active": true, "targets": "all", "icon": [...] }
# Add signing under bundle > macOS / bundle > windows
# and keep every certificate and password in your secret store,
# never in the repo.
# Auto-updater & release channels (stable / beta via {{channel}}):
# SUPASTACK_UPDATER_ENDPOINT=https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}
# SUPASTACK_UPDATER_PUBKEY=…
# SUPASTACK_UPDATE_CHANNEL=stable

Рабочий процесс внедрения

Выделяйте сертификаты через собственное хранилище секретов и внедряйте их как переменные окружения на этапе сборки — сертификат, закоммиченный в репозиторий, это сертификат на отзыв.

Вшейте продакшен-SUPASTACK_APP_URL в ту же релизную сборку, чтобы установленные оболочки указывали на развёрнутое приложение.

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

Проверяйте, устанавливая полученный артефакт на чужой машине: ни предупреждения Gatekeeper или SmartScreen, приложение запускается, вход сохраняется. Зелёный tauri build без теста подписанной установки не является доказательством релиза.

Дальше: «Чек-лист развёртывания» на вкладке Web покрывает серверные релизные гейты.

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

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?

Кит — разовая покупка с пожизненными обновлениями: один фреймворк за $249 (временная стартовая цена — скидка $100 от стандартной цены $349) или все фреймворки (Next.js, iOS, Android) за $499 (временная стартовая цена — скидка $100 от стандартной цены $599), плюс $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
Тема