Přehled
Jakmile je vaše aplikace sestavena a otestována lokálně, máte dvě cesty, jak ji distribuovat:- Nasaďte tarball — nahrajte svou aplikaci přímo na konkrétní server Twenty pro interní nebo soukromé použití.
- Publish to npm — uveďte svou aplikaci v Marketplace Twenty, aby ji mohl kterýkoli pracovní prostor objevit a nainstalovat.
Sestavení vaší aplikace
Spusťte příkaz build ke zkompilování své aplikace a k vygenerování souborumanifest.json připraveného k distribuci:
.twenty/output/. Přidejte --tarball, abyste také vytvořili balíček .tgz pro ruční distribuci nebo příkaz publish.
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:
Nasazení
Sestavte a nahrajte svou aplikaci na server v jednom kroku: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í. Jakmile je váš pracovní prostor na tarifu Enterprise, můžete sdílet nasazenou aplikaci takto:- Přejděte do Nastavení > Aplikace > Registrace a otevřete svou aplikaci
- Na kartě Distribuce klikněte na Zkopírovat odkaz ke sdílení
- Sdílejte tento odkaz s uživateli v jiných pracovních prostorech — zavede je přímo na instalační stránku aplikace
Správa verzí
Při aktualizaci již nasazené tarballové aplikace server vyžaduje, aby hodnotaversion v package.json byla přísně vyšší (podle řazení semver) než aktuálně nasazená verze. Opětovné nasazení stejné verze nebo odeslání nižší verze je odmítnuto ještě před uložením tarballu — v CLI uvidíte chybu VERSION_ALREADY_EXISTS.
Chcete-li vydat aktualizaci:
- Zvyšte hodnotu pole
versionv souborupackage.json(např.1.2.3→1.2.4,1.3.0nebo2.0.0) - Spusťte
yarn twenty app:publish --private(neboyarn twenty app:publish --private --remote production) - Pracovní prostory, které mají aplikaci nainstalovanou, uvidí dostupnou aktualizaci ve svém nastavení
Předběžné tagy fungují podle očekávání: zvýšení z
1.0.0-rc.1 → 1.0.0-rc.2 je povoleno a finální vydání jako 1.0.0 je správně rozpoznáno jako vyšší než 1.0.0-rc.5. Verze v package.json musí být platným řetězcem semver.Kompatibilita verze serveru
Pokud vaše aplikace používá funkci zavedenou v konkrétní verzi serveru Twenty (například poskytovatelé OAuth přidaní ve verzi 2.3.0), měli byste deklarovat minimální verzi serveru, kterou vaše aplikace vyžaduje, pomocí poleengines.twenty v package.json:
| Rozsah | Význam |
|---|---|
>=2.3.0 | Jakýkoli server od verze 2.3.0 výše |
>=2.3.0 \<3.0.0 | 2.3.0 nebo novější, ale pod další hlavní verzí |
^2.3.0 | Stejné jako >=2.3.0 \<3.0.0 |
- Pokud je
engines.twentynastaveno a verze cílového serveru nevyhovuje rozsahu, nasazení (nahrání tarballu) nebo instalace je odmítnuto chybouSERVER_VERSION_INCOMPATIBLEa zprávou, která uvádí jak požadovaný rozsah, tak skutečnou verzi serveru. - Pokud
engines.twentynení nastaveno, aplikace je přijata na jakékoli verzi serveru (zpětně kompatibilní se stávajícími aplikacemi). - Pokud server nemá nakonfigurované
APP_VERSION, kontrola se přeskočí.
Server je rozhodující autoritou — ověřuje
engines.twenty jak při nahrání tarballu, tak při instalaci do pracovního prostoru. Pokud nasazujete tarball mimo standardní proces nebo instalujete z marketplace, server přesto vynucuje kompatibilitu.Automatizované CI/CD (předpřipravené workflowy)
Aplikace vygenerované pomocícreate-twenty-app jsou hned připravené se dvěma workflowy GitHub Actions ve složce .github/workflows/. Jsou připravené ke spuštění hned, jakmile repozitář pushnete na GitHub — pro CI není potřeba žádné další nastavení a CD vyžaduje pouze jeden secret.
CI — ci.yml
Automaticky spouští integrační testy při každém pushi do main a u pull requestů.
K čemu slouží:
- Provede checkout zdrojového kódu vaší aplikace.
- Spustí izolovanou testovací instanci Twenty pomocí složené akce
twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@main(ekvivalent v CI kyarn twenty docker:start --test). - Povolí Corepack, nastaví Node.js podle vašeho
.nvmrca nainstaluje závislosti pomocíyarn install --immutable. - Spustí
yarn testa předáTWENTY_API_URLaTWENTY_API_KEYze spuštěné instance, aby vaše testy mohly komunikovat se skutečným serverem.
TWENTY_VERSION(env, výchozí hodnotalatest) — uzamkněte v CI používanou verzi serveru Twenty úpravou této hodnoty vci.yml.- Souběžné běhy jsou seskupeny podle
github.refa při nových pushích ruší právě probíhající běhy.
CD — cd.yml
Nasazuje vaši aplikaci na nakonfigurovaný server Twenty při každém pushi do main a volitelně také z pull requestu, pokud je přidán štítek deploy.
K čemu slouží:
- Provede checkout headu PR (u označených PR) nebo pushnutého commitu.
- Spustí
twentyhq/twenty/.github/actions/deploy-twenty-app@main— ekvivalent v CI kyarn twenty app:publish --private. - Spustí
twentyhq/twenty/.github/actions/install-twenty-app@main, aby se nově nasazená verze nainstalovala do cílového pracovního prostoru.
| Nastavení | Kde | Účel |
|---|---|---|
TWENTY_DEPLOY_URL | env v cd.yml (výchozí http://localhost:3000) | Server Twenty, na který se nasazuje. Před prvním použitím to změňte na skutečnou URL vašeho serveru. |
TWENTY_DEPLOY_API_KEY | GitHub repozitář Settings → Secrets and variables → Actions | API klíč s oprávněním k nasazení na cílovém serveru. |
Výchozí
TWENTY_DEPLOY_URL http://localhost:3000 je pouze zástupná hodnota — z runneru hostovaného GitHubem tato adresa nebude dosažitelná. Před povolením CD ji aktualizujte na veřejnou URL vašeho serveru (nebo použijte self-hosted runner s přístupem do sítě).deploy. Podmínka if: v cd.yml spustí úlohu pro dané PR s použitím head commitu PR, což vám umožní ověřit změnu na cílovém serveru před sloučením.
Připnutí verzí znovupoužitelných akcí
Obě workflowy odkazují na znovupoužitelné akce na@main, takže aktualizace akcí v repozitáři twentyhq/twenty se přeberou automaticky. Pokud chcete deterministická sestavení, nahraďte @main v každém řádku uses: za commit SHA nebo tag vydání.
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
- Klíčové slovo
twenty-appve vašem polikeywordsv souborupackage.json(přidejte ho ručně — ve výchozím nastavení není zahrnuto v šabloněcreate-twenty-app)
Metadata tržiště
KonfiguracedefineApplication() podporuje volitelná pole, která určují, jak se vaše aplikace zobrazuje v tržišti. Použijte logoUrl a screenshots k odkazování na obrázky ze složky public/:
src/application-config.ts
author, category, aboutDescription, websiteUrl, termsUrl atd.).
Doporučené rozměry snímků obrazovky
Tržiště zobrazujescreenshots v pevném kontejneru s poměrem stran 8:5 (například 1600×1000 px).
Snímky obrazovky libovolného poměru stran se zobrazují celé a nikdy se neořezávají, ale cokoli výrazně vyššího nebo užšího než
8:5 bude mít po stranách prázdné pruhy.Publikování
beta nebo next):
Jak funguje objevování v tržišti
Server Twenty synchronizuje svůj katalog tržiště z registru npm každou hodinu. Synchronizaci můžete spustit okamžitě místo čekání:defineApplication() — z polí jako displayName, description, author, category, logoUrl, screenshots, aboutDescription, websiteUrl a termsUrl.
Pokud vaše aplikace nedefinuje
aboutDescription v defineApplication(), tržiště automaticky použije soubor README.md vašeho balíčku z npm jako obsah stránky O aplikaci. To znamená, že můžete spravovat jediný soubor README jak pro npm, tak pro tržiště Twenty. Pokud chcete v tržišti jiný popis, explicitně nastavte aboutDescription.Publikování pomocí CI
Použijte tento pracovní postup GitHub Actions k automatickému publikování při každém vydání (používá OIDC):yarn install, yarn twenty dev: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.Instalace aplikací
Jakmile je aplikace publikována (npm) nebo nasazena (tarball), mohou ji pracovní prostory nainstalovat prostřednictvím uživatelského rozhraní. Přejděte na stránku Nastavení > Aplikace v Twenty, kde lze procházet a instalovat jak aplikace z tržiště, tak aplikace nasazené jako tarball. Aplikace můžete nainstalovat také z příkazového řádku:Server při instalaci vynucuje verzování semver a zrcadlí pravidla pro nasazení:
- Instalace stejné verze, která je již nainstalována ve vašem pracovním prostoru, je odmítnuta s chybou
APP_ALREADY_INSTALLED. - Instalace nižší verze, než je aktuálně nainstalovaná, je odmítnuta s chybou
CANNOT_DOWNGRADE_APPLICATION.
yarn twenty app:install.