Genel Bakış
Uygulamanız yerelde derlenip test edildikten sonra, dağıtım için iki yolunuz vardır:- Bir tar arşivi dağıtın — uygulamanızı dahili veya özel kullanım için doğrudan belirli bir Twenty sunucusuna yükleyin.
- npm’ye yayımlama — uygulamanızı Twenty pazaryerinde listeleyin; böylece herhangi bir çalışma alanı keşfedip yükleyebilir.
Uygulamanızı derleme
Uygulamanızı derlemek ve dağıtıma hazır birmanifest.json oluşturmak için build komutunu çalıştırın:
.twenty/output/ konumuna yazar. El ile dağıtım veya deploy komutu için bir .tgz paketini de üretmek amacıyla --tarball ekleyin.
Sunucuya dağıtım (tarball)
Genel kullanıma açık olmasını istemediğiniz uygulamalar — sahipli araçlar, yalnızca kurumsal entegrasyonlar veya deneysel derlemeler — için bir tarball’ı doğrudan bir Twenty sunucusuna dağıtabilirsiniz.Ön Gereksinimler
Dağıtmadan önce, hedef sunucuyu işaret eden yapılandırılmış bir remote’a ihtiyacınız vardır. Remote’lar sunucu URL’sini ve kimlik doğrulama bilgilerini yerel olarak~/.twenty/config.json içinde saklar.
Bir remote ekleyin:
Dağıtım
Uygulamanızı tek adımda derleyip sunucuya yükleyin:Dağıtılmış bir uygulamayı paylaşma
Tarball uygulamaları genel pazar yerinde listelenmez; bu nedenle aynı sunucudaki diğer çalışma alanları gezinerek onları keşfedemez. Çalışma alanınız Kurumsal planda olduğunda, yayınlanmış bir uygulamayı şu şekilde paylaşabilirsiniz:- Ayarlar > Uygulamalar > Kayıtlar bölümüne gidin ve uygulamanızı açın
- Dağıtım sekmesinde, Paylaşım bağlantısını kopyala’ya tıklayın
- Bu bağlantıyı diğer çalışma alanlarındaki kullanıcılarla paylaşın — onları doğrudan uygulamanın yükleme sayfasına götürür
Sürüm yönetimi
Halihazırda dağıtılmış bir tarball uygulamasını güncellerken, sunucupackage.json içindeki version değerinin, şu anda dağıtılmış sürümden (semver sıralamasına göre) kesinlikle daha yüksek olmasını gerektirir. Aynı sürümü yeniden dağıtmak veya daha düşük bir sürümü göndermek, tarball depolanmadan önce reddedilir — CLI’de VERSION_ALREADY_EXISTS hatasını görürsünüz.
Bir güncelleme yayımlamak için:
package.jsoniçindekiversionalanını artırın (ör.1.2.3→1.2.4,1.3.0veya2.0.0)yarn twenty deploy(veyayarn twenty deploy --remote production) komutunu çalıştırın- Uygulamayı kurmuş olan çalışma alanları, ayarlarında mevcut güncellemeyi görecektir
Ön sürüm etiketleri beklendiği gibi çalışır:
1.0.0-rc.1 → 1.0.0-rc.2 sürümünü artırmak mümkündür ve 1.0.0 gibi nihai bir sürüm, 1.0.0-rc.5 sürümünden daha yüksek olarak doğru şekilde tanınır. package.json içindeki sürümün kendisi geçerli bir semver dizesi olmalıdır.Otomatik CI/CD (hazır şablonlu iş akışları)
create-twenty-app ile oluşturulan uygulamalar, kutudan çıktığı gibi .github/workflows/ altında iki GitHub Actions iş akışıyla gelir. Depoyu GitHub’a iter itmez çalışmaya hazırdır — CI için ek bir kurulum gerekmez ve CD yalnızca tek bir gizli anahtar gerektirir.
CI — ci.yml
Entegrasyon testlerini main dalına yapılan her itmede ve her çekme isteğinde otomatik olarak çalıştırır.
Ne yapar:
- Uygulamanızın kaynak kodunu alır.
twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test@mainbileşik eylemini kullanarak yalıtılmış bir Twenty test örneği başlatır (CI’dakiyarn twenty server start --testeşdeğeri).- Corepack’i etkinleştirir,
.nvmrcdosyanızdan Node.js’i kurar ve bağımlılıklarıyarn install --immutableile yükler. - Oluşturulan örnekten
TWENTY_API_URLveTWENTY_API_KEYdeğerlerini aktararakyarn testi çalıştırır; böylece testleriniz gerçek bir sunucuyla haberleşebilir.
TWENTY_VERSION(ortam, varsayılanılatest) — CI’da kullanılan Twenty sunucu sürümünüci.ymliçinde bunu düzenleyerek sabitleyin.- Eşzamanlılık
github.refbazında gruplanır ve yeni itmelerde devam eden çalışmaları iptal eder.
CD — cd.yml
main dalına yapılan her itmede uygulamanızı yapılandırılmış bir Twenty sunucusuna dağıtır ve isteğe bağlı olarak deploy etiketi uygulandığında bir çekme isteğinden de dağıtım yapar.
Ne yapar:
- Etiketli PR’ler için PR’in head commit’ini ya da itilen commit’i alır.
twentyhq/twenty/.github/actions/deploy-twenty-app@mainçalıştırır —yarn twenty deploykomutunun CI eşdeğeridir.twentyhq/twenty/.github/actions/install-twenty-app@maineylemini çalıştırır; böylece yeni dağıtılan sürüm hedef çalışma alanına kurulur.
| Ayar | Koşul | Amaç |
|---|---|---|
TWENTY_DEPLOY_URL | cd.yml içinde env (varsayılan: http://localhost:3000) | Dağıtımın yapılacağı Twenty sunucusu. İlk kullanımdan önce bunu gerçek sunucu URL’nizle değiştirin. |
TWENTY_DEPLOY_API_KEY | GitHub deposu Settings → Secrets and variables → Actions | Hedef sunucuda dağıtım iznine sahip API anahtarı. |
Varsayılan
TWENTY_DEPLOY_URL olan http://localhost:3000 bir yer tutucudur — GitHub barındırmalı bir çalıştırıcıdan hiçbir yere erişemez. CD’yi etkinleştirmeden önce bunu sunucunuzun genel URL’siyle güncelleyin (veya ağ erişimi olan öz barındırılan bir çalıştırıcı kullanın).deploy etiketini ekleyin. cd.yml içindeki if: koruması, ilgili PR için işi PR’in head commit’ini kullanarak çalıştırır; böylece birleştirmeden önce hedef sunucuda değişikliği doğrulayabilirsiniz.
Yeniden kullanılabilir eylemleri sabitleme
Her iki iş akışı da@main üzerindeki yeniden kullanılabilir eylemlere başvurur; bu nedenle twentyhq/twenty deposundaki eylem güncellemeleri otomatik olarak alınır. Deterministik derlemeler istiyorsanız, her uses: satırında @main ifadesini bir commit SHA’sı veya sürüm etiketiyle değiştirin.
npm’ye yayımlama
npm’ye yayımlamak, uygulamanızın Twenty pazaryerinde keşfedilebilir olmasını sağlar. Herhangi bir Twenty çalışma alanı, pazaryeri uygulamalarına doğrudan arayüzden göz atabilir, yükleyebilir ve güncelleyebilir.Gereksinimler
- Bir npm hesabı
package.jsoniçindekikeywordsdizinizdekitwenty-appanahtar sözcüğü (elle ekleyin — varsayılan olarakcreate-twenty-appşablonunda yer almaz)
Pazaryeri meta verileri
defineApplication() yapılandırması, uygulamanızın pazar yerinde nasıl görüneceğini kontrol eden isteğe bağlı alanları destekler. public/ klasöründeki görsellere başvurmak için logoUrl ve screenshots kullanın:
src/application-config.ts
author, category, aboutDescription, websiteUrl, termsUrl, vb.).
Yayımla
beta veya next):
Pazar yerinde keşif nasıl çalışır
Twenty sunucusu pazar yeri kataloğunu npm kayıt defterinden her saat eşitler. Beklemek yerine eşitlemeyi hemen tetikleyebilirsiniz:defineApplication() yapılandırmanızdan gelir — displayName, description, author, category, logoUrl, screenshots, aboutDescription, websiteUrl ve termsUrl gibi alanlar.
Uygulamanız
defineApplication() içinde bir aboutDescription tanımlamıyorsa, pazaryeri, hakkında sayfasının içeriği olarak paketinizin npm’deki README.md dosyasını otomatik olarak kullanır. Bu, hem npm hem de Twenty pazaryeri için tek bir README dosyası kullanabileceğiniz anlamına gelir. Pazaryerinde farklı bir açıklama istiyorsanız, aboutDescription değerini açıkça ayarlayın.CI üzerinden yayımlama
Her sürümde otomatik olarak yayımlamak için bu GitHub Actions iş akışını kullanın (OIDC kullanır):yarn install, yarn twenty build ve ardından .twenty/output dizininden npm publish.
npm provenance isteğe bağlıdır ancak önerilir.
--provenance ile yayımlamak, npm listenize bir güven rozeti ekler ve kullanıcıların paketin herkese açık bir CI ardışık düzenindeki belirli bir commit’ten oluşturulduğunu doğrulamasını sağlar. Kurulum talimatları için npm provenance belgelerine bakın.Uygulamaları yükleme
Bir uygulama yayımlandığında (npm) veya dağıtıldığında (tarball), çalışma alanları onu kullanıcı arayüzü (UI) üzerinden yükleyebilir. Twenty içinde Ayarlar > Uygulamalar sayfasına gidin; burada hem pazar yerindeki hem de tarball ile dağıtılmış uygulamalar görüntülenip yüklenebilir. Uygulamaları komut satırından da yükleyebilirsiniz:Sunucu, kurulum sırasında semver sürümlemesini zorunlu kılar ve dağıtımdaki kuralları yansıtır:
- Çalışma alanınızda zaten yüklü olanla aynı sürümün kurulumu,
APP_ALREADY_INSTALLEDhatasıyla reddedilir. - Halihazırda yüklü olandan daha düşük bir sürümü kurmak,
CANNOT_DOWNGRADE_APPLICATIONhatasıyla reddedilir.
yarn twenty install komutunu yeniden çalıştırın.