Přejít na hlavní obsah

Předpoklady

  • Node.js 24+Stáhnout
  • Yarn 4 — je součástí Node.js prostřednictvím Corepacku. Povolte jej: corepack enable
  • DockerStáhnout. Nutné pro spuštění lokálního serveru Twenty. Přeskočte, pokud už máte Twenty spuštěné jinde.
Vytváření aplikace Twenty má tři fáze. Generátor kostry je spojuje do jediného příkazu pro ideální scénář, ale každá fáze je samostatný koncept — když se něco nepovede, znalost aktuální fáze napoví, co opravit.
FázeCo děláteNástrojVýsledek
1. Vytvořit kostruVygenerovat zdrojový kód aplikacenpx create-twenty-appProjekt v TypeScriptu na disku
2. Spustit serverSpustit server Twenty, do kterého se bude synchronizovatDocker + yarn twenty serverBěžící instance Twenty
3. SynchronizovatŽivě synchronizovat kód na serveryarn twenty devVaše změny se objeví v uživatelském rozhraní

Fáze 1 — Vytvořte kostru projektu

Vytvořte novou aplikaci ze šablony:
npx create-twenty-app@latest my-twenty-app
Budete vyzváni k zadání názvu a popisu — výchozí hodnoty potvrdíte klávesou Enter. Tím se v my-twenty-app/ vytvoří projekt v TypeScriptu se startovacím application-config.ts, výchozí rolí, CI workflow a integračním testem. Po této fázi: máte na svém počítači zdrojový kód aplikace. Zatím neběží — to je předmětem Fáze 2.

Fáze 2 — Spusťte lokální server Twenty

Vaše aplikace potřebuje server Twenty, do kterého se bude synchronizovat. Server je plnohodnotná instance Twenty — UI, GraphQL API, PostgreSQL — běžící lokálně v Dockeru. Váš lokální kód nahrává své definice na tento server, díky čemuž se objeví v UI. Generátor kostry nabídne, že vám jej spustí:
Chcete nastavit lokální instanci Twenty?
  • Ano (doporučeno) — stáhne Docker image twentycrm/twenty-app-dev a spustí jej na portu 2020. Nejprve se ujistěte, že Docker běží.
  • Ne — zvolte, pokud už máte server Twenty, ke kterému se chcete připojit. Můžete jej propojit později pomocí yarn twenty remote:add.
Spustit lokální instanci?
Jakmile server běží, otevře se prohlížeč pro přihlášení. Použijte předpřipravený demo účet:
  • E-mail: tim@apple.dev
  • Heslo: tim@apple.dev
Přihlašovací obrazovka Twenty
Na další obrazovce klikněte na Authorize — tím udělíte nástroji CLI přístup k vašemu pracovnímu prostoru.
Autorizační obrazovka Twenty CLI
Váš terminál potvrdí, že je vše nastaveno.
Aplikace byla úspěšně vygenerována
Po této fázi: máte spuštěný server Twenty na http://localhost:2020 a vaše CLI má oprávnění se k němu synchronizovat.
Pokud Docker není nainstalovaný nebo neběží, generátor kostry vám sdělí správný příkaz pro spuštění ve vašem operačním systému. Jakmile Docker poběží, můžete pokračovat pomocí yarn twenty docker:start — není potřeba znovu vytvářet kostru.

Fáze 3 — Synchronizujte své změny

Toto je vnitřní smyčka, ve které strávíte většinu času.
cd my-twenty-app
yarn twenty dev
Tento proces sleduje src/, při každé změně znovu sestaví a synchronizuje výsledek na server. Upravte soubor, uložte a během několika vteřin se změna projeví na serveru. V terminálu uvidíte panel se stavem v reálném čase. Pro podrobnější výstup (protokoly sestavení, požadavky na synchronizaci, stopy chyb) přidejte --verbose.
Výstup terminálu ve vývojovém režimu
Otevřete http://localhost:2020/settings/applications#developer. Vaše aplikace by měla být uvedena v části Your Apps.
Seznam Your Apps se zobrazenou aplikací My twenty app
Klikněte na My twenty app a zobrazí se jeho registrace aplikace — záznam na úrovni serveru, který popisuje vaši aplikaci (název, identifikátor, přihlašovací údaje OAuth, zdroj). Jedna registrace může být nainstalována ve více pracovních prostorech na stejném serveru.
Podrobnosti registrace aplikace
Klikněte na View installed app, abyste zobrazili instalaci v pracovním prostoru. Karta About zobrazuje verzi a možnosti správy.
Nainstalovaná aplikace
Po této fázi: máte průběžný vývojový cyklus. Upravte libovolný soubor v src/ a projeví se to v UI.

Jednorázová synchronizace pro CI a skripty

Předejte --once pro provedení jednoho sestavení + synchronizace a ukončení — stejný postup, bez sledování změn:
yarn twenty dev --once
PříkazChováníKdy použít
yarn twenty devSleduje změny a při každé změně znovu synchronizuje. Běží, dokud jej nezastavíte.Interaktivní lokální vývoj.
yarn twenty dev --onceJedno sestavení + synchronizace, ukončí se s kódem 0 při úspěchu, 1 při chybě.CI, pre-commit hooky, AI agenti, skriptované pracovní postupy.
yarn twenty dev --once --dry-runSestaví a vypíše změny metadat bez jejich použití.Kontrola toho, co by synchronizace změnila, ještě před jejím potvrzením.
Oba režimy vyžadují autentizovaný vzdálený server. Více informací o --dry-run najdete v části Synchronizace a obnovení.

Možnosti vývojového režimu

PřepínačPopis
--onceJednou sestavit a synchronizovat, poté ukončit.
--dry-runPomocí --once zobrazíte náhled změn metadat, aniž byste je použili. Nic nezapisuje.
--debounceMs \<ms>Nastaví prodlevu pro potlačení zákmitů při změnách souborů v milisekundách (výchozí: 2000).
--verbose / --debugZobrazí podrobné protokoly sestavení, požadavky synchronizace a trasování chyb.

Co můžete vytvořit

Aplikace se skládají z entit — každá je definována jako soubor TypeScriptu s jediným export default:
EntitaK čemu slouží
Objekty a poleVlastní datové modely (pohlednice, faktura apod.) s typovanými poli
Logické funkceServerový TypeScript spouštěný HTTP trasami, plánovačem cron nebo událostmi databáze
Frontendové komponentyKomponenty Reactu, které se vykreslují v uživatelském rozhraní Twenty (postranní panel, widgety, příkazová nabídka)
Dovednosti a agentiSchopnosti AI — opakovaně použitelné pokyny a autonomní asistenti
Pohledy a navigacePředkonfigurované seznamové pohledy a položky postranní nabídky
Rozvržení stránekVlastní stránky detailu záznamu s kartami a widgety
Úplná reference: Koncepty.

Další kroky

Konfigurace

Identita aplikace, výchozí role, instalační hooky, veřejná aktiva.

Data

Objekty, pole a obousměrné relace.

Logika

Logické funkce, dovednosti, agenti a připojení přes OAuth.

Rozvržení

Zobrazení, navigace, rozvržení stránek, frontendové komponenty.

Operace

CLI, testování, vzdálené repozitáře, CI a publikování vaší aplikace.