--- title: Publikování description: Distribuujte svou aplikaci Twenty do Marketplace nebo ji nasaďte interně. --- Aplikace jsou aktuálně v alfa testování. Tato funkce je funkční, ale stále se vyvíjí. ## Přehled Jakmile je vaše aplikace [sestavena a otestována lokálně](/l/cs/developers/extend/apps/building), máte dvě cesty, jak ji distribuovat: * **Publish to npm** — uveďte svou aplikaci v Marketplace Twenty, aby ji mohl kterýkoli pracovní prostor objevit a nainstalovat. * **Nasaďte tarball** — nahrajte svou aplikaci přímo na konkrétní server Twenty pro interní nebo soukromé použití. Obě cesty začínají stejným krokem **build**. ## Sestavení vaší aplikace Příkaz `build` zkompiluje vaše zdrojové soubory TypeScriptu, transpiluje logické funkce a frontendové komponenty a vygeneruje soubor `manifest.json`, který popisuje obsah vaší aplikace: ```bash filename="Terminal" yarn twenty build ``` Výstup se zapisuje do `.twenty/output/`. Tento adresář obsahuje vše potřebné pro distribuci: zkompilovaný kód, statické soubory, manifest a kopii souboru `package.json`. Chcete-li také vytvořit tarball `.tgz` (používaný interně příkazem deploy nebo pro ruční distribuci): ```bash filename="Terminal" yarn twenty build --tarball ``` ## Publikování na npm Publikování na npm zajistí, že bude vaše aplikace dohledatelná v Marketplace Twenty. Jakýkoli pracovní prostor Twenty může procházet, instalovat a aktualizovat aplikace z Marketplace přímo z UI. ### Požadavky * Účet na [npm](https://www.npmjs.com) * Klíčové slovo `twenty-app` **musí** být uvedeno v poli `keywords` vašeho `package.json` ### Přidání požadovaného klíčového slova Tržiště Twenty objevuje aplikace hledáním balíčků v registru npm s klíčovým slovem `twenty-app`. Přidejte jej do svého `package.json`: ```json filename="package.json" { "name": "twenty-app-postcard-sender", "version": "1.0.0", "keywords": ["twenty-app"], ... } ``` Tržiště vyhledává v registru npm výraz `keywords:twenty-app`. Bez tohoto klíčového slova se váš balíček v tržišti neobjeví, i když má jmennou předponu `twenty-app-`. ### Postup 1. **Sestavení vaší aplikace:** ```bash filename="Terminal" yarn twenty build ``` 2. **Publikování na npm:** ```bash filename="Terminal" yarn twenty publish ``` Tímto se spustí `npm publish` z adresáře `.twenty/output/`. Chcete-li publikovat pod konkrétním dist-tagem (např. `beta` nebo `next`): ```bash filename="Terminal" yarn twenty publish --tag beta ``` ### Jak funguje objevování v tržišti Server Twenty synchronizuje svůj katalog tržiště z registru npm **každou hodinu**: 1. Vyhledá všechny balíčky na npm s klíčovým slovem `keywords:twenty-app` 2. Pro každý balíček stáhne `manifest.json` z CDN npm 3. Metadata aplikace (název, popis, autor, logo, snímky obrazovky, kategorie) se získají z manifestu a zobrazí se v tržišti Po publikování se vaše aplikace může v tržišti objevit až za jednu hodinu. Chcete-li spustit synchronizaci okamžitě místo čekání na další hodinové spuštění: ```bash filename="Terminal" yarn twenty catalog-sync ``` Chcete-li zacílit na konkrétní vzdálený cíl: ```bash filename="Terminal" yarn twenty catalog-sync -r production ``` Metadata zobrazená v tržišti pocházejí z volání `defineApplication()` ve zdrojovém kódu vaší aplikace — z polí jako `displayName`, `description`, `author`, `category`, `logoUrl`, `screenshots`, `aboutDescription`, `websiteUrl` a `termsUrl`. ### Publikování pomocí CI Vygenerovaný projekt obsahuje pracovní postup GitHub Actions, který publikuje při každém vydání: ```yaml filename=".github/workflows/publish.yml" name: Publish on: release: types: [published] permissions: contents: read id-token: write jobs: publish: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "24" registry-url: https://registry.npmjs.org - run: yarn install --immutable - run: npx twenty build - run: npm publish --provenance --access public working-directory: .twenty/output env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ``` Pro jiné systémy CI (GitLab CI, CircleCI atd.) platí stejné tři příkazy: `yarn install`, `yarn twenty build` a poté `npm publish` z `.twenty/output`. **npm provenance** je volitelné, ale doporučené. Publikování s `--provenance` přidá k vašemu záznamu na npm odznak důvěryhodnosti a umožní uživatelům ověřit, že balíček byl sestaven z konkrétního commitu ve veřejné CI pipeline. Pokyny k nastavení najdete v [dokumentaci k npm provenance](https://docs.npmjs.com/generating-provenance-statements). ## Nasazení na server (tarball) U aplikací, které nechcete zpřístupnit veřejně — proprietární nástroje, integrace pouze pro enterprise nebo experimentální buildy — můžete nasadit tarball přímo na server Twenty. ### Předpoklady Před nasazením potřebujete nakonfigurovaný vzdálený cíl směřující na cílový server. Vzdálené cíle ukládají adresu URL serveru a přihlašovací údaje lokálně v `~/.twenty/config.json`. Přidat vzdálený cíl: ```bash filename="Terminal" yarn twenty remote add --url https://your-twenty-server.com --as production ``` Pro lokální vývojový server: ```bash filename="Terminal" yarn twenty remote add --local --as local ``` Pro neinteraktivní prostředí se můžete ověřit také pomocí klíče API: ```bash filename="Terminal" yarn twenty remote add --url https://your-twenty-server.com --token --as production ``` Spravujte své vzdálené servery: ```bash filename="Terminal" yarn twenty remote list # List all configured remotes yarn twenty remote switch prod # Set the default remote yarn twenty remote status # Show active remote and auth status yarn twenty remote remove old # Remove a remote ``` ### Nasazení Sestavte a nahrajte svou aplikaci na server v jednom kroku: ```bash filename="Terminal" yarn twenty deploy ``` Tímto se aplikace sestaví s `--tarball` a poté se tarball nahraje na výchozí vzdálený server prostřednictvím vícedílného (multipart) nahrávání GraphQL. Chcete-li nasadit na konkrétní vzdálený server: ```bash filename="Terminal" yarn twenty deploy -r production ``` ### Sdílení nasazené aplikace Aplikace ve formě tarball nejsou uvedeny ve veřejném tržišti, takže je ostatní pracovní prostory na tomtéž serveru procházením neobjeví. Chcete-li sdílet nasazenou aplikaci: 1. Přejděte do **Nastavení > Aplikace > Registrace** a otevřete svou aplikaci 2. Na kartě **Distribuce** klikněte na **Zkopírovat odkaz ke sdílení** 3. Sdílejte tento odkaz s uživateli v jiných pracovních prostorech — zavede je přímo na instalační stránku aplikace Odkaz ke sdílení používá základní adresu URL serveru (bez jakékoli subdomény pracovního prostoru), takže funguje pro libovolný pracovní prostor na serveru. ### Správa verzí Chcete-li vydat aktualizaci: 1. Zvyšte hodnotu pole `version` v souboru `package.json` 2. Spusťte `yarn twenty deploy` (nebo `yarn twenty deploy -r production`) 3. Pracovní prostory, které mají aplikaci nainstalovanou, uvidí dostupnou aktualizaci ve svém nastavení ## Instalace aplikací Jakmile je aplikace publikována (npm) nebo nasazena (tarball), pracovní prostory ji instalují prostřednictvím uživatelského rozhraní: ```bash filename="Terminal" yarn twenty install ``` Nebo ze stránky **Nastavení > Aplikace** v rozhraní Twenty, kde lze procházet a instalovat jak aplikace z tržiště, tak aplikace nasazené jako tarball. ## Kategorie distribuce aplikací Twenty organizuje aplikace do tří kategorií podle způsobu distribuce: | Kategorie | Jak to funguje | Viditelné v Marketplace? | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | | **Vývoj** | Aplikace v místním vývojářském režimu spuštěné přes `yarn twenty dev`. Slouží k sestavování a testování. | Ne | | **Publikováno (npm)** | Aplikace publikované na npm s klíčovým slovem `twenty-app`. Uvedeny v Marketplace, aby je mohl kterýkoli pracovní prostor nainstalovat. | Ano | | **Interní (tarball)** | Aplikace nasazené pomocí tarballu na konkrétní server. Dostupné pouze pro pracovní prostory na tomto serveru prostřednictvím odkazu ke sdílení. | Ne | Začněte v režimu **Development** při sestavování své aplikace. Až bude připravena, zvolte **Published** (npm) pro širokou distribuci nebo **Internal** (tarball) pro soukromé nasazení. ## Reference CLI | Příkaz | Popis | Klíčové přepínače | | --------------------------- | ----------------------------------------------------- | --------------------------------------------------- | | `yarn twenty build` | Sestaví aplikaci a vygeneruje manifest | `--tarball` — také vytvoří balíček `.tgz` | | `yarn twenty publish` | Sestaví a publikuje na npm | `--tag ` — npm dist-tag (např. `beta`, `next`) | | `yarn twenty deploy` | Sestaví a nahraje tarball na server | `-r, --remote ` — cílový vzdálený server | | `yarn twenty catalog-sync` | Spustí synchronizaci katalogu tržiště na serveru | `-r, --remote ` — cílový vzdálený server | | `yarn twenty install` | Nainstaluje nasazenou aplikaci do pracovního prostoru | `-r, --remote ` — cílový vzdálený server | | `yarn twenty dev` | Sleduje a synchronizuje lokální změny | Používá výchozí vzdálený server | | `yarn twenty remote add` | Přidá připojení k serveru | `--url`, `--token`, `--as`, `--local`, `--port` | | `yarn twenty remote list` | Vypíše nakonfigurované vzdálené servery | — | | `yarn twenty remote switch` | Nastaví výchozí vzdálený server | — | | `yarn twenty remote status` | Zobrazí stav připojení | — | | `yarn twenty remote remove` | Odebere vzdálený server | — |