# Zefily CLI

> zefily komutunu Linux, macOS ya da Windows'a kurun, PATH'e ekleyin, bir API token'ıyla bağlayın ve terminalinizden deploy edin.

`zefily` bağımlılığı olmayan tek bir programdır. Sunucularınızı, sitelerinizi ve işleri listeler, siteleri deploy eder ve geri alır, yapay zekâ ajanlarının Zefily ile çalışmasını sağlayan [MCP sunucusunu](/tr/docs/mcp) çalıştırır. Bir API token'ıyla [REST API](/tr/docs/api-ve-cli) üzerinden konuşur.

## 1. İndirin

Bilgisayarınıza uygun dosyayı seçin. [İndirme sayfası](https://dl.zefily.com/cli/index.html) aynı dosyaları sağlama toplamlarıyla birlikte listeler.

| Sistem | Dosya |
| --- | --- |
| Linux, Intel/AMD (çoğu PC ve sunucu) | [zefily-linux-amd64](https://dl.zefily.com/cli/zefily-linux-amd64) |
| Linux, ARM (Raspberry Pi 4/5, ARM sunucular) | [zefily-linux-arm64](https://dl.zefily.com/cli/zefily-linux-arm64) |
| macOS, Apple silicon (M1 ve sonrası) | [zefily-darwin-arm64](https://dl.zefily.com/cli/zefily-darwin-arm64) |
| macOS, Intel | [zefily-darwin-amd64](https://dl.zefily.com/cli/zefily-darwin-amd64) |
| Windows 10 ve 11 | [zefily-windows-amd64.exe](https://dl.zefily.com/cli/zefily-windows-amd64.exe) |

Hangisi olduğundan emin değil misiniz? macOS'ta Apple menüsü → **Bu Mac Hakkında** *Çip Apple M…* (Apple silicon) ya da *İşlemci Intel…* yazar. Linux'ta `uname -m`, `x86_64` (amd64) ya da `aarch64` (arm64) yazar.

## 2. PATH'e ekleyin

PATH, terminalinizin komutları aradığı klasörlerin listesidir. `zefily` bunlardan birinde olunca her klasörde `zefily` yazabilirsiniz; yapay zekâ uygulamaları da onu başlatabilir.

### Linux ve macOS

Aşağıdaki komutlar dosyayı indirir, yayımlanan sağlama toplamıyla karşılaştırır, çalıştırılabilir yapar ve yönetici yetkisi gerektirmeyen, kendi programlarınız için olan `~/.local/bin` klasörüne taşır. `zefily-linux-amd64` yerine tablodaki dosyanızı yazın:

```bash
cd /tmp
curl -fsSLO https://dl.zefily.com/cli/zefily-linux-amd64
curl -fsSL https://dl.zefily.com/cli/SHA256SUMS | grep ' zefily-linux-amd64$' | sha256sum -c -
chmod +x zefily-linux-amd64
mkdir -p ~/.local/bin
mv zefily-linux-amd64 ~/.local/bin/zefily
```

macOS'ta `sha256sum -c -` yerine `shasum -a 256 -c -` kullanın. Kontrol `OK` yazmalıdır.

Birçok Linux sisteminde `~/.local/bin` zaten PATH'tedir. **Yeni** bir terminal penceresinde `zefily version` ile kontrol edin. Yanıt *command not found* ise klasörü kabuğunuzun başlangıç dosyasına bir kez ekleyin ve yeni bir terminal açın:

```bash
# bash (çoğu Linux sistemi)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

# zsh (macOS ve zsh kullanıyorsanız Linux)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
```

Bilgisayardaki her kullanıcının erişebileceği bir klasör mü istiyorsunuz? Bunun yerine `sudo mv zefily-linux-amd64 /usr/local/bin/zefily` kullanın; `/usr/local/bin` her yerde PATH'tedir.

macOS'ta **tarayıcıyla** indirilen dosya karantinaya alınır ve macOS onu açmayı reddeder ("geliştirici doğrulanamadığından açılamıyor"). Yukarıdaki gibi `curl` ile indirilen dosyalar etkilenmez. Tarayıcı kullandıysanız karantinayı bir kez kaldırın: `xattr -d com.apple.quarantine ~/.local/bin/zefily`.

### Windows

**PowerShell**'de (yönetici yetkisi gerekmez) aşağıdaki komutlar `%LOCALAPPDATA%\Programs\zefily` klasörünü oluşturur, programı oraya `zefily.exe` olarak indirir ve klasörü kullanıcı PATH'inize ekler:

```powershell
$dir = "$env:LOCALAPPDATA\Programs\zefily"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Invoke-WebRequest https://dl.zefily.com/cli/zefily-windows-amd64.exe -OutFile "$dir\zefily.exe"
(Get-FileHash "$dir\zefily.exe" -Algorithm SHA256).Hash.ToLower()
$path = [Environment]::GetEnvironmentVariable('Path', 'User')
if ($path -notlike "*$dir*") { [Environment]::SetEnvironmentVariable('Path', "$path;$dir", 'User') }
```

Dördüncü satır dosyanın sağlama toplamını yazar: [SHA256SUMS](https://dl.zefily.com/cli/SHA256SUMS) içindeki `zefily-windows-amd64.exe` satırıyla karşılaştırın. Sonra PowerShell'i kapatın, yeni bir pencere açın ve `zefily version` çalıştırın.

PowerShell olmadan: dosyayı indirin, adını `zefily.exe` yapın ve `C:\Users\<siz>\AppData\Local\Programs\zefily` gibi bir klasöre koyun. **Ayarlar → Sistem → Hakkında → Gelişmiş sistem ayarları → Ortam Değişkenleri**'ni açın, *Kullanıcı değişkenleri* altında **Path**'i seçin, **Düzenle → Yeni** deyin, klasörü yapıştırın ve **Tamam** ile onaylayın. Windows SmartScreen indirme için uyarırsa sağlama toplamını kontrol ettikten sonra **Ek bilgi → Yine de çalıştır**'ı seçin.

## 3. Bir API token'ı verin

**Ayarlar → API token'ları** altında bir token oluşturun (bkz. [API token'ları](/tr/docs/api-ve-cli)). Terminalden deploy için `servers:read`, `sites:read`, `sites:deploy` ve `jobs:read` kapsamlarını seçin. CLI token'ı `ZEFILY_TOKEN` ortam değişkeninden okur.

Yalnızca açık terminal penceresi için:

```bash
export ZEFILY_TOKEN=zf_…          # Linux ve macOS
```

```powershell
$env:ZEFILY_TOKEN = "zf_…"        # Windows PowerShell
```

Her yeni pencerede geçerli olması için `export` satırını `~/.bashrc` ya da `~/.zshrc` dosyasına ekleyin; Windows'ta `[Environment]::SetEnvironmentVariable('ZEFILY_TOKEN', 'zf_…', 'User')` çalıştırın. Bu dosyaları ya da kullanıcı ortamınızı okuyabilen herkes token'ı kullanabilir: token'a yalnızca gereken kapsamları ve bir geçerlilik süresi verin, kullanmayı bıraktığınızda panelden iptal edin.

Her şeyin çalıştığını kontrol edin:

```bash
zefily servers
```

## Komutlar

| Komut | Ne yapar |
| --- | --- |
| `zefily servers` | Sunucularınızı durumlarıyla listeler |
| `zefily sites [sunucu]` | Siteleri listeler: tüm sunucuların ya da birinin (ad ya da id) |
| `zefily deploy <site> [--wait]` | Bir siteyi deploy eder (alan adı ya da id) |
| `zefily rollback <site> [--release YYYYMMDDhhmmss] [--wait]` | Siteyi önceki sürümüne ya da verilen sürüme geri alır |
| `zefily job <id> [--wait]` | Bir işi günlüğüyle gösterir |
| `zefily jobs <sunucu> [--type site.deploy]` | Bir sunucunun son işlerini listeler |
| `zefily mcp` | Yapay zekâ ajanları için MCP sunucusunu çalıştırır (bkz. [Yapay zekâ ajanları (MCP)](/tr/docs/mcp)) |
| `zefily version` | Sürümü yazar |

`--wait` iş bitene kadar onu izler ve iş başarılı olmazsa 1 durum koduyla çıkar; böylece bir betik ya da CI hattı deploy başarısız olunca durur. CI hatları için [CI'dan dağıtım](/tr/docs/api-ve-cli#cidan-dağıtım) bölümüne bakın.

`ZEFILY_API` API adresini değiştirir (varsayılan `https://app.zefily.com/api/v1`); Zefily'nin kendi paneliyle buna gerek yoktur.

## Güncelleme

Dosyayı yeniden indirip eskisinin yerine koyun; kurarken yaptığınız gibi. `zefily version` hangi derlemeye sahip olduğunuzu, [indirme sayfası](https://dl.zefily.com/cli/index.html) en yenisini gösterir.

---
Kaynak: https://zefily.com/tr/docs/cli
