250 lines
11 KiB
Plaintext
250 lines
11 KiB
Plaintext
---
|
||
title: Yayımlama
|
||
description: Twenty uygulamanızı pazaryerine sunun ya da dahili olarak dağıtın.
|
||
---
|
||
|
||
<Warning>
|
||
Uygulamalar şu anda alfa testinde. Özellik işlevsel ancak hâlâ gelişmekte.
|
||
</Warning>
|
||
|
||
## Genel Bakış
|
||
|
||
Uygulamanız [yerelde derlenip test edildikten sonra](/l/tr/developers/extend/apps/building), dağıtım için iki yolunuz vardır:
|
||
|
||
* **npm’ye yayımlama** — uygulamanızı Twenty pazaryerinde listeleyin; böylece herhangi bir çalışma alanı keşfedip yükleyebilir.
|
||
* **Bir tar arşivi dağıtın** — uygulamanızı dahili veya özel kullanım için doğrudan belirli bir Twenty sunucusuna yükleyin.
|
||
|
||
Her iki yol da aynı **build** adımından başlar.
|
||
|
||
## Uygulamanızı derleme
|
||
|
||
`build` komutu TypeScript kaynaklarınızı derler, mantık işlevlerini ve ön uç bileşenlerini transpile eder ve uygulamanızın içeriğini açıklayan bir `manifest.json` üretir:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty build
|
||
```
|
||
|
||
Çıktı `.twenty/output/` dizinine yazılır. Bu dizin, dağıtım için gereken her şeyi içerir: derlenmiş kod, varlıklar, manifest ve `package.json` dosyanızın bir kopyası.
|
||
|
||
Ayrıca bir `.tgz` tarball oluşturmak için (deploy komutu tarafından dahili olarak kullanılır veya el ile dağıtım için):
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty build --tarball
|
||
```
|
||
|
||
## 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](https://www.npmjs.com) hesabı
|
||
* `twenty-app` anahtar kelimesi `package.json` dosyanızdaki `keywords` dizisinde **mutlaka** listelenmelidir
|
||
|
||
### Gerekli anahtar kelimeyi ekleme
|
||
|
||
Twenty pazar yeri, npm kayıt defterinde `twenty-app` anahtar kelimesine sahip paketleri arayarak uygulamaları keşfeder. Bunu `package.json` dosyanıza ekleyin:
|
||
|
||
```json filename="package.json"
|
||
{
|
||
"name": "twenty-app-postcard-sender",
|
||
"version": "1.0.0",
|
||
"keywords": ["twenty-app"],
|
||
...
|
||
}
|
||
```
|
||
|
||
<Note>
|
||
Pazar yeri, npm kayıt defterinde `keywords:twenty-app` araması yapar. Bu anahtar kelime olmadan, adında `twenty-app-` öneki bulunsa bile paketiniz pazar yerinde görünmez.
|
||
</Note>
|
||
|
||
### Adımlar
|
||
|
||
1. **Uygulamanızı derleyin:**
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty build
|
||
```
|
||
|
||
2. **npm’ye yayımlayın:**
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty publish
|
||
```
|
||
|
||
Bu, `.twenty/output/` dizininden `npm publish` komutunu çalıştırır.
|
||
|
||
Belirli bir dist-tag altında yayımlamak için (ör. `beta` veya `next`):
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty publish --tag beta
|
||
```
|
||
|
||
### Pazar yerinde keşif nasıl çalışır
|
||
|
||
Twenty sunucusu pazar yeri kataloğunu npm kayıt defterinden **her saat** eşitler:
|
||
|
||
1. `keywords:twenty-app` anahtar kelimesine sahip tüm npm paketlerini arar
|
||
2. Her paket için `manifest.json` dosyasını npm CDN’inden getirir
|
||
3. Uygulamanın meta verileri (ad, açıklama, yazar, logo, ekran görüntüleri, kategori) manifest dosyasından çıkarılır ve pazar yerinde görüntülenir
|
||
|
||
Yayımladıktan sonra, uygulamanızın pazar yerinde görünmesi bir saate kadar sürebilir. Bir sonraki saatlik çalışmayı beklemek yerine eşitlemeyi hemen tetiklemek için:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty catalog-sync
|
||
```
|
||
|
||
Belirli bir remote’u hedeflemek için:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty catalog-sync -r production
|
||
```
|
||
|
||
Pazar yerinde gösterilen meta veriler, uygulamanızın kaynak kodundaki `defineApplication()` çağrısından gelir — `displayName`, `description`, `author`, `category`, `logoUrl`, `screenshots`, `aboutDescription`, `websiteUrl` ve `termsUrl` gibi alanlar.
|
||
|
||
### CI üzerinden yayımlama
|
||
|
||
İskelet proje, her sürümde yayımlayan bir GitHub Actions iş akışını içerir:
|
||
|
||
```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 }}
|
||
```
|
||
|
||
Diğer CI sistemleri (GitLab CI, CircleCI, vb.) için de aynı üç komut geçerlidir: `yarn install`, `yarn twenty build` ve ardından `.twenty/output` dizininden `npm publish`.
|
||
|
||
<Tip>
|
||
**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](https://docs.npmjs.com/generating-provenance-statements) bakın.
|
||
</Tip>
|
||
|
||
## 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:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty remote add --url https://your-twenty-server.com --as production
|
||
```
|
||
|
||
Yerel bir geliştirme sunucusu için:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty remote add --local --as local
|
||
```
|
||
|
||
Etkileşimli olmayan ortamlar için bir API anahtarıyla da kimlik doğrulayabilirsiniz:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty remote add --url https://your-twenty-server.com --token <api-key> --as production
|
||
```
|
||
|
||
Remote’larınızı yönetin:
|
||
|
||
```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
|
||
```
|
||
|
||
### Dağıtım
|
||
|
||
Uygulamanızı tek adımda derleyip sunucuya yükleyin:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty deploy
|
||
```
|
||
|
||
Bu, uygulamayı `--tarball` ile derler ve ardından tarball’ı varsayılan remote’a GraphQL çok parçalı yükleme ile yükler.
|
||
|
||
Belirli bir remote’a dağıtmak için:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty deploy -r production
|
||
```
|
||
|
||
### 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. Dağıtılmış bir uygulamayı paylaşmak için:
|
||
|
||
1. **Ayarlar > Uygulamalar > Kayıtlar** bölümüne gidin ve uygulamanızı açın
|
||
2. **Dağıtım** sekmesinde, **Paylaşım bağlantısını kopyala**’ya tıklayın
|
||
3. 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
|
||
|
||
Paylaşım bağlantısı, sunucunun temel URL’sini (herhangi bir çalışma alanı alt alan adı olmadan) kullanır; böylece sunucudaki herhangi bir çalışma alanı için çalışır.
|
||
|
||
### Sürüm yönetimi
|
||
|
||
Bir güncelleme yayımlamak için:
|
||
|
||
1. `package.json` içindeki `version` alanını artırın
|
||
2. `yarn twenty deploy` (veya `yarn twenty deploy -r production`) komutunu çalıştırın
|
||
3. Uygulamayı kurmuş olan çalışma alanları, ayarlarında mevcut güncellemeyi görecektir
|
||
|
||
## Uygulamaları yükleme
|
||
|
||
Bir uygulama yayımlandığında (npm) veya dağıtıldığında (tarball), çalışma alanları onu kullanıcı arayüzü (UI) aracılığıyla yükler:
|
||
|
||
```bash filename="Terminal"
|
||
yarn twenty install
|
||
```
|
||
|
||
Veya Twenty kullanıcı arayüzündeki **Ayarlar > Uygulamalar** sayfasından; burada hem pazar yerindeki hem de tarball ile dağıtılmış uygulamalar görüntülenip yüklenebilir.
|
||
|
||
## Uygulama dağıtım kategorileri
|
||
|
||
Twenty, uygulamaları nasıl dağıtıldıklarına göre üç kategoriye ayırır:
|
||
|
||
| Kategori | Nasıl Çalışır | Pazaryerinde görünür mü? |
|
||
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|
||
| **Geliştirme** | `yarn twenty dev` ile çalışan yerel geliştirme modu uygulamaları. Derleme ve test için kullanılır. | Hayır |
|
||
| **Yayımlanmış (npm)** | `twenty-app` anahtar kelimesiyle npm’ye yayımlanan uygulamalar. Herhangi bir çalışma alanının yükleyebilmesi için pazaryerinde listelenir. | Evet |
|
||
| **Dahili (tarball)** | Bir tarball aracılığıyla belirli bir sunucuya dağıtılan uygulamalar. Yalnızca o sunucudaki çalışma alanları için bir paylaşım bağlantısı aracılığıyla kullanılabilir. | Hayır |
|
||
|
||
<Tip>
|
||
Uygulamanızı geliştirirken **Geliştirme** modunda başlayın. Hazır olduğunda, geniş dağıtım için **Yayımlanmış** (npm) ya da özel dağıtım için **Dahili** (tarball) seçeneğini tercih edin.
|
||
</Tip>
|
||
|
||
## CLI başvurusu
|
||
|
||
| Komut | Açıklama | Temel bayraklar |
|
||
| --------------------------- | --------------------------------------------------- | -------------------------------------------------- |
|
||
| `yarn twenty build` | Uygulamayı derleyin ve manifest oluşturun | `--tarball` — ayrıca bir `.tgz` paket oluşturur |
|
||
| `yarn twenty publish` | Derleyin ve npm’ye yayımlayın | `--tag <tag>` — npm dist-tag (örn. `beta`, `next`) |
|
||
| `yarn twenty deploy` | Derleyin ve tarball’ı bir sunucuya yükleyin | `-r, --remote <name>` — hedef remote |
|
||
| `yarn twenty catalog-sync` | Sunucuda pazar yeri katalog eşitlemesini tetikleyin | `-r, --remote <name>` — hedef remote |
|
||
| `yarn twenty install` | Dağıtılmış bir uygulamayı bir çalışma alanına kurun | `-r, --remote <name>` — hedef remote |
|
||
| `yarn twenty dev` | Yerel değişiklikleri izleyin ve eşitleyin | Varsayılan remote’u kullanır |
|
||
| `yarn twenty remote add` | Bir sunucu bağlantısı ekleyin | `--url`, `--token`, `--as`, `--local`, `--port` |
|
||
| `yarn twenty remote list` | Yapılandırılmış remote’ları listeleyin | — |
|
||
| `yarn twenty remote switch` | Varsayılan remote’u ayarlayın | — |
|
||
| `yarn twenty remote status` | Bağlantı durumunu gösterin | — |
|
||
| `yarn twenty remote remove` | Bir remote’u kaldırın | — |
|