Salt la conținutul principal

Cerințe

  • Node.js 24+Descărcați
  • Yarn 4 — vine împreună cu Node prin Corepack. Activați-l: corepack enable
  • DockerDescărcați. Necesar pentru a rula un server Twenty local. Omiteți dacă rulați deja Twenty în altă parte.
Crearea unei aplicații Twenty are trei faze. Generatorul le reunește într-o singură comandă pe calea optimă, dar fiecare fază este un concept separat — când ceva eșuează, dacă știți în ce fază sunteți, știți ce trebuie să corectați.
FazăCe facețiInstrumentRezultat
1. Creați scheletulGenerați codul sursă al aplicațieinpx create-twenty-appUn proiect TypeScript pe disc
2. Rulați un serverPorniți un server Twenty cu care să sincronizațiDocker + yarn twenty serverO instanță Twenty care rulează
3. SincronizațiSincronizați în timp real codul cu serverulyarn twenty devModificările apar în UI

Faza 1 — Creați scheletul proiectului

Creați o nouă aplicație din șablon:
npx create-twenty-app@latest my-twenty-app
Vi se va cere un nume și o descriere — apăsați Enter pentru valorile implicite. Aceasta generează un proiect TypeScript în my-twenty-app/ cu un fișier inițial application-config.ts, un rol implicit, un flux de lucru CI și un test de integrare. După această fază: aveți codul sursă al aplicației pe mașina dvs. Încă nu rulează — aceasta este Faza 2.

Faza 2 — Rulați un server Twenty local

Aplicația are nevoie de un server Twenty cu care să se sincronizeze. Serverul este o instanță Twenty completă — UI, API GraphQL, PostgreSQL — care rulează local în Docker. Codul local încarcă definițiile pe acel server, făcându-le să apară în UI. Generatorul de schelet vă propune să pornească unul pentru dvs.:
Doriți să configurați o instanță Twenty locală?
  • Yes (recomandat) — descarcă imaginea Docker twentycrm/twenty-app-dev și o pornește pe portul 2020. Asigurați-vă mai întâi că Docker rulează.
  • No — alegeți această opțiune dacă aveți deja un server Twenty la care doriți să vă conectați. Îl puteți conecta ulterior cu yarn twenty remote:add.
Porniți instanța locală?
După ce serverul pornește, se deschide un browser pentru autentificare. Folosiți contul demo preconfigurat:
  • E-mail: tim@apple.dev
  • Parolă: tim@apple.dev
Ecranul de autentificare Twenty
Faceți clic pe Authorize pe ecranul următor — aceasta oferă CLI-ului acces la spațiul dvs. de lucru.
Ecranul de autorizare Twenty CLI
Terminalul va confirma că totul este configurat.
Aplicația a fost creată cu succes
După această fază: aveți un server Twenty care rulează la http://localhost:2020, iar CLI-ul dvs. este autorizat să sincronizeze cu acesta.
Dacă Docker nu este instalat sau nu rulează, generatorul de schelet vă va indica comanda corectă de pornire pentru sistemul dvs. de operare. După ce Docker rulează, puteți continua cu yarn twenty docker:start — nu este nevoie să recreați scheletul.

Faza 3 — Sincronizați modificările

Aceasta este bucla internă în care veți petrece cea mai mare parte a timpului.
cd my-twenty-app
yarn twenty dev
Aceasta monitorizează src/, reconstruiește la fiecare modificare și sincronizează rezultatul pe server. Editați un fișier, salvați, iar în câteva secunde serverul reflectă modificarea. Veți vedea în terminal un panou de stare în timp real. Pentru o ieșire mai detaliată (jurnale de build, cereri de sincronizare, urme ale erorilor), adăugați --verbose.
Ieșirea terminalului în modul de dezvoltare
Deschideți http://localhost:2020/settings/applications#developer. Ar trebui să vedeți aplicația dvs. listată la Your Apps.
Lista Your Apps care afișează My twenty app
Faceți clic pe My twenty app pentru a vedea înregistrarea aplicației — o înregistrare la nivel de server care descrie aplicația dvs. (nume, identificator, credențiale OAuth, sursă). O singură înregistrare poate fi instalată în mai multe spații de lucru pe același server.
Detalii despre înregistrarea aplicației
Faceți clic pe View installed app pentru a vedea instalarea în spațiul de lucru. Fila About afișează versiunea și opțiunile de administrare.
Aplicație instalată
După această fază: aveți o buclă de dezvoltare în timp real. Editați orice fișier în src/ și acesta apare în UI.

Sincronizare unică pentru CI și scripturi

Adăugați --once pentru a rula un singur build + sync și a ieși — același flux, fără watcher:
yarn twenty dev --once
ComandăComportamentCând se folosește
yarn twenty devMonitorizează și resincronizează la fiecare modificare. Rulează până când îl opriți.Dezvoltare locală interactivă.
yarn twenty dev --onceUn singur build + sync, iese cu 0 la succes, 1 la eșec.CI, hook-uri pre-commit, agenți AI, fluxuri de lucru scriptate.
yarn twenty dev --once --dry-runConstruiește și afișează modificările de metadate fără a le aplica.Inspectarea modificărilor pe care le-ar face o sincronizare înainte de a le confirma.
Ambele moduri necesită o conexiune la distanță autentificată. Vezi Sincronizare și recuperare pentru mai multe detalii despre --dry-run.

Opțiuni pentru modul de dezvoltare

OpțiuneDescriere
--onceConstruiește și sincronizează o singură dată, apoi iese.
--dry-runCu --once, poți previzualiza modificările de metadate fără a le aplica. Nu scrie nimic.
--debounceMs \<ms>Setează întârzierea de debounce pentru modificarea fișierului în milisecunde (implicit: 2000).
--verbose / --debugAfișează jurnale detaliate de construire, cereri de sincronizare și urme ale erorilor.

Ce puteți construi

Aplicațiile sunt compuse din entități — fiecare definită într-un fișier TypeScript cu un singur export default:
EntitateCe face
Obiecte și câmpuriModele de date personalizate (carte poștală, factură etc.) cu câmpuri tipizate
Funcții logiceTypeScript pe server declanșat de rute HTTP, programări cron sau evenimente din baza de date
Componente front-endComponente React care se afișează în UI-ul Twenty (panou lateral, widgeturi, meniul de comenzi)
Abilități și agențiCapabilități AI — instrucțiuni reutilizabile și asistenți autonomi
Vizualizări și navigareVizualizări de listă preconfigurate și elemente de meniu în bara laterală
Layouturi de paginăPagini personalizate de detalii ale înregistrărilor cu file și widgeturi
Referință completă: Concepte.

Pașii următori

Configurare

Identitatea aplicației, rolul implicit, hook-urile de instalare, resursele publice.

Date

Obiecte, câmpuri și relații bidirecționale.

Logică

Funcții logice, abilități, agenți și conexiuni OAuth.

Aspect

Vizualizări, navigare, layouturi de pagină, componente front-end.

Operațiuni

CLI, testare, remote-uri, CI și publicarea aplicației.