Обзор
После того как ваше приложение собрано и протестировано локально, у вас есть два пути для его распространения:- Разверните tar-архив — загрузите своё приложение напрямую на конкретный сервер Twenty для внутреннего или частного использования.
- Опубликовать в npm — разместите ваше приложение в маркетплейсе Twenty, чтобы любое рабочее пространство могло его найти и установить.
Сборка вашего приложения
Выполните команду сборки, чтобы скомпилировать приложение и сгенерировать готовый к распространениюmanifest.json:
.twenty/output/. Добавьте --tarball, чтобы также создать пакет .tgz для ручного распространения или для команды deploy.
Развертывание на сервер (tarball)
Для приложений, которые вы не хотите делать общедоступными — собственные инструменты, интеграции только для предприятий или экспериментальные сборки — вы можете развернуть tarball напрямую на сервер Twenty.Требования
Перед развертыванием вам нужен настроенный remote, указывающий на целевой сервер. Remotes локально хранят URL сервера и учётные данные аутентификации в~/.twenty/config.json.
Добавьте remote:
Развертывание
Соберите и загрузите ваше приложение на сервер в одном шаге:Общий доступ к развернутому приложению
Приложения в формате tarball не отображаются в публичном маркетплейсе, поэтому другие рабочие пространства на том же сервере не найдут их при просмотре. Как только ваше рабочее пространство перейдёт на тарифный план Enterprise, вы сможете поделиться развёрнутым приложением следующим образом:- Перейдите в Настройки > Приложения > Регистрации и откройте ваше приложение
- На вкладке Распространение нажмите Копировать ссылку для общего доступа
- Поделитесь этой ссылкой с пользователями в других рабочих пространствах — она ведёт их прямо на страницу установки приложения
Управление версиями
When updating an already deployed tarball app, the server requires theversion in package.json to be strictly higher (per semver ordering) than the currently deployed version. Повторное развёртывание той же версии или публикация более низкой версии отклоняются до сохранения tarball — в CLI вы увидите ошибку VERSION_ALREADY_EXISTS.
Чтобы выпустить обновление:
- Увеличьте значение поля
versionв вашемpackage.json(например:1.2.3→1.2.4,1.3.0или2.0.0). - Выполните
yarn twenty deploy(илиyarn twenty deploy --remote production) - Рабочие пространства, в которых установлено приложение, увидят доступное обновление в своих настройках
Пререлизные теги работают как ожидается: повышение версии
1.0.0-rc.1 → 1.0.0-rc.2 допускается, а финальный релиз вроде 1.0.0 корректно распознаётся как более высокий, чем 1.0.0-rc.5. Версия в package.json должна сама по себе быть корректной строкой semver.Публикация в npm
Публикация в npm делает ваше приложение видимым в маркетплейсе Twenty. Любое рабочее пространство Twenty может просматривать, устанавливать и обновлять приложения из маркетплейса непосредственно из интерфейса.Требования
- Учётная запись npm
- Ключевое слово
twenty-appв массивеkeywordsвашегоpackage.json(уже добавлено при создании проекта с помощьюcreate-twenty-app)
Метаданные маркетплейса
КонфигурацияdefineApplication() поддерживает необязательные поля, которые определяют, как ваше приложение отображается в маркетплейсе. Используйте logoUrl и screenshots, чтобы ссылаться на изображения из папки public/:
src/application-config.ts
author, category, aboutDescription, websiteUrl, termsUrl и т. д.).
Публикация
beta или next):
Как работает обнаружение приложений в маркетплейсе
Сервер Twenty синхронизирует каталог маркетплейса из реестра npm каждый час. Вы можете запустить синхронизацию немедленно, вместо ожидания:defineApplication() — из таких полей, как displayName, description, author, category, logoUrl, screenshots, aboutDescription, websiteUrl и termsUrl.
Если ваше приложение не определяет
aboutDescription в defineApplication(), маркетплейс автоматически использует README.md вашего пакета из npm в качестве содержимого страницы «О приложении». Это означает, что вы можете поддерживать единый README как для npm, так и для маркетплейса Twenty. Если вы хотите другое описание в маркетплейсе, явно задайте aboutDescription.Публикация через CI
Используйте этот workflow GitHub Actions, чтобы публиковать автоматически при каждом релизе (использует OIDC):yarn install, yarn twenty build, затем npm publish из .twenty/output.
npm provenance — опционально, но рекомендуется. Публикация с флагом
--provenance добавляет к вашему пакету в npm значок доверия, позволяя пользователям проверить, что пакет был собран из конкретного коммита в общедоступном конвейере CI. См. инструкции по настройке в документации по npm provenance.Установка приложений
После публикации приложения (npm) или его развертывания (tarball) рабочие пространства могут установить его через интерфейс. Перейдите на страницу Настройки > Приложения в Twenty, где можно просматривать и устанавливать как приложения из маркетплейса, так и развернутые через tarball. Вы также можете устанавливать приложения из командной строки:Сервер при установке применяет версионирование semver, аналогичное правилам при развёртывании:
- Установка той же версии, которая уже установлена в вашем рабочем пространстве, отклоняется с ошибкой
APP_ALREADY_INSTALLED. - Установка версии ниже текущей отклоняется с ошибкой
CANNOT_DOWNGRADE_APPLICATION.
yarn twenty install.