# gyro CLI kurulumu ve ilk komutlar: Gyro hizmetlerinizi terminalden yönetin

https://www.gyrohosting.com/bilgi-bankasi/makale/gyro-cli-kurulum

- **Bu rehberde ne öğreneceksiniz**: `gyro` komut satırı aracını kurmayı, API anahtarınızla bağlamayı, sunucularınızı listelemeyi, yeni bir bulut sunucu açmayı, SSH ile bağlanmayı, snapshot almayı ve aracı betiklerde güvenle kullanmayı.
- **Süre**: 10 dakika
- **Kimin için**: Terminal kullanan geliştiriciler, sistem yöneticileri ve CI/CD hatları kuranlar.
- **Gerekenler**: Linux, macOS ya da Windows; bir Gyro API anahtarı ([Gyro API'ye ilk adım](https://www.gyrohosting.com/bilgi-bankasi/makale/gyro-api-ilk-adim) rehberinde nasıl oluşturulacağı anlatılıyor).

## 1. gyro CLI nedir?

`gyro`, Gyro Public API'yi terminalden kullanan resmi araçtır. Bulut sunucular, SSH anahtarları, faturalar ve bakiye, alan adı ve DNS, Kurumsal Mail, Nesne Depolama, Uptime İzleme, destek talepleri ve diğer tüm hizmetleriniz tek araçla yönetilir. API'ye yeni bir özellik eklendiğinde CLI de güncellenir.

- Para harcayan ve geri dönüşsüz işlemlerde önce fiyatı ya da etkisini gösterip onay ister.
- Siparişlere tekrar korumasını (idempotency) kendiliğinden ekler; bağlantı koparsa ve komutu yeniden çalıştırırsanız ikinci sipariş verilmez.
- Çıktıyı tablo, JSON, YAML ya da düz metin olarak verir.

## 2. Kurulum

### Linux ve macOS (önerilen)

```
curl -fsSL https://www.gyrohosting.com/cli/install.sh | sh
```

Betik işletim sisteminizi ve işlemci mimarinizi (amd64/arm64) algılar, son sürümü indirir, SHA-256 özetini ve (gpg kuruluysa) imzasını doğrular, ardından `gyro`'yu kurar. Belirli bir sürüm ya da kurulum klasörü için:

```
curl -fsSL https://www.gyrohosting.com/cli/install.sh | GYRO_VERSION=v1.3.2 GYRO_INSTALL_DIR=$HOME/.local/bin sh
```

Kurulum klasörü `PATH`'inizde değilse betik sonunda nasıl ekleyeceğinizi yazar.

### Paket olarak (Debian/Ubuntu, RHEL/AlmaLinux/Rocky, Alpine)

[Sürüm sayfasından](https://github.com/Gyro-Hosting/gyro-cli/releases/latest) mimarinize uygun `.deb`, `.rpm` ya da `.apk` dosyasını indirip kurun:

```
sudo apt install ./gyro_1.3.2_linux_amd64.deb      # Debian / Ubuntu
sudo dnf install ./gyro_1.3.2_linux_amd64.rpm      # AlmaLinux / Rocky / Fedora
```

### Windows

Aynı sürüm sayfasından `gyro_<sürüm>_windows_amd64.zip` (ARM işlemcili cihazlarda `windows_arm64`) dosyasını indirin, içindeki `gyro.exe`'yi bir klasöre çıkarın ve o klasörü `PATH`'e ekleyin.

### Docker

```
docker run --rm -e GYRO_TOKEN ghcr.io/gyro-hosting/gyro server list
```

### Kurulumu doğrulayın

```
gyro version
```

`gyro 1.3.2 … API 2.3.0` gibi bir satır görmelisiniz. Yeni sürüm olup olmadığını `gyro version --check` söyler.

## 3. API anahtarını bağlama

```
gyro configure
```

Komut API anahtarınızı ister, anahtarı doğrular ve bir **profile** kaydeder. Profiller `~/.config/gyro/config.toml` dosyasında yalnız sizin okuyabileceğiniz izinle (0600) durur. Anahtarı dosya yerine işletim sisteminin anahtar zincirinde tutmak için `gyro configure --keyring` kullanın.

Bağlantıyı kontrol edin:

```
gyro whoami      # anahtarın adı ve izinleri
gyro context     # etkin profil, API adresi ve anahtar durumu
```

**Birden fazla hesap ya da ortam:** her biri için ayrı profil oluşturun ve `--profile` ile seçin:

```
gyro configure --profile ajans-musterisi
gyro --profile ajans-musterisi server list
gyro context use ajans-musterisi     # varsayılan profili değiştirir
```

**CI ortamında** (etkileşimsiz):

```
echo "$GYRO_TOKEN" | gyro configure --token-stdin --profile ci
```

Ya da hiç profil oluşturmadan `GYRO_TOKEN` ortam değişkenini tanımlamanız yeterlidir.

> **Dikkat**
> 
> Anahtarı komut satırına açık yazmayın (`gyro configure` zaten gizli sorar); CI'da sistemin gizli değişken özelliğini kullanın. CI anahtarına yalnız gereken izinleri verin ve IP ile kısıtlayın.

## 4. İlk komutlar

```
gyro server list                         # bulut sunucularınız (PLAN ve REGION sütunlarıyla)
gyro service list                        # tüm ürün hatlarındaki hizmetleriniz
gyro location list                       # sipariş verilebilen bölgeler (eu-de-1 …) ve şehirleri
gyro plan list --location eu-de-1        # bir bölgedeki paketler ve fiyatlar (şehir adı da olur)
gyro image list                          # kurulabilir işletim sistemleri
gyro balance                             # hesap bakiyesi
gyro invoice list                        # faturalar
```

Her komutun ayrıntılı yardımı vardır: `gyro server create --help`.

## 5. Bulut sunucu açma

Önce yalnız fiyat teklifi alın; hiçbir şey sipariş edilmez:

```
gyro server create web-1 \
  --plan standart-2-4 --location eu-de-1 \
  --image ubuntu-24.04 --ssh-key ~/.ssh/id_ed25519.pub \
  --dry-run
```

Fiyat uygunsa `--dry-run` olmadan çalıştırın. Komut fiyatı gösterip onayınızı ister; `--wait` eklerseniz sunucu hazır olana kadar bekler:

```
gyro server create web-1 \
  --plan standart-2-4 --location eu-de-1 \
  --image ubuntu-24.04 --ssh-key ~/.ssh/id_ed25519.pub --wait
```

| Seçenek | Açıklama |
| --- | --- |
| `--plan` | Paket adının kısa hali (`standart-2-4`, `pro-2-8` …; hesap diliniz İngilizceyse `standard-2-4`) ya da ürün numarası; doğru adı `gyro plan list` gösterir, tek paket için `gyro plan list --plan standart-2-4` |
| `--location` | Gyro bölgesi ya da şehir adı (İngilizce yazımıyla): `eu-de-1` (Falkenstein), `eu-de-2` (Nürnberg), `eu-fi-1` (Helsinki), `us-east-1` (Ashburn), `us-west-1` (Hillsboro), `ap-sg-1` (Singapur); liste `gyro location list` ile görünür |
| `--image` | İşletim sistemi, ör. `ubuntu-24.04`, `debian-12` |
| `--ssh-key` | `.pub` dosyası, kayıtlı anahtar adı ya da numarası; yeni dosya ise yüklenir |
| `--cycle` | `monthly` (varsayılan), `quarterly`, `semiannually`, `annually` |
| `--user-data` | cloud-init betiği: doğrudan metin ya da `@cloud-init.yaml` |
| `--app` | Tek tıkla uygulama kurulumu |

> **Dikkat**
> 
> CLI ile verilen siparişler **hesap bakiyenizden** ödenir; kayıtlı karttan çekim yapılmaz. Bakiye yetmezse komut hata verir ve sipariş oluşmaz.

## 6. Sık işler

```
gyro server ssh web-1                         # sunucunun IP'sini bulup SSH ile bağlanır
gyro server ssh web-1 -- uptime               # uzaktan tek komut çalıştırır
gyro server power reboot web-1                # düzgün yeniden başlat (on, off, shutdown, reset da var)
gyro server snapshot create <sunucu-no>       # snapshot al
gyro server snapshot list <sunucu-no>         # snapshot'lar ve kota
gyro server backup list <sunucu-no>           # otomatik yedekler
gyro server rebuild web-1 --image debian-12   # DİSKİ SİLER, onay ister
gyro server delete web-1 --dry-run            # neyin silineceğini gösterir
gyro server delete web-1                      # sunucuyu iptal eder (onay ister); veri bekleme süresi sonunda silinir
```

Desteklenmeyen bir iş için API'yi doğrudan çağırabilirsiniz (GitHub CLI'daki `gh api` gibi):

```
gyro api request GET /cloud/servers
gyro api operations          # tüm API işlemleri ve karşılık gelen CLI komutları
```

## 7. Betiklerde kullanım

```
# JSON çıktı + sorgu: yalnız IPv4 adresleri
gyro server list -o json --query "[].ipv4"

# Yalnız bir bölgedeki sunucuların IPv4 adresleri
gyro server list -o text --query "[?region=='eu-de-1'].ipv4"

# Yalnız kimlikler (döngülere uygun)
for id in $(gyro server list -q); do gyro server snapshot create "$id" --yes; done

# Onay sormadan (CI için), çıktı JSON
gyro server create ci-runner --plan standart-2-4 --location eu-de-1 \
  --image ubuntu-24.04 --ssh-key ci-key --yes -o json
```

| Bayrak | İşe yarar |
| --- | --- |
| `-o json | yaml |
| `--query` | JMESPath sorgusu ile çıktıyı süzme |
| `-q` | Yalnız kimlikleri yazar |
| `-y`, `--yes` | Onay sormaz (betikler için; dikkatli kullanın) |
| `--debug` | HTTP isteklerini gösterir; anahtar ve gizli değerler maskelenir |
| `--lang tr | en` |

Kabuk tamamlama için: `source <(gyro completion bash)` (zsh, fish ve PowerShell de desteklenir). Sunucu ve SSH anahtarı kimlikleri API'den tamamlanır.

## 8. Sık sorulan sorular

**CLI ücretli mi?**

Hayır. CLI ve API ücretsizdir; yalnız sipariş ettiğiniz hizmetler ücretlidir.

**Kurulum betiğini çalıştırmadan önce nasıl incelerim?**

Haklısınız; önce indirip okuyun: `curl -fsSL https://www.gyrohosting.com/cli/install.sh -o install.sh && less install.sh && sh install.sh`. Betik indirdiği dosyanın özetini ve imzasını doğrular.

**"insufficient_scope" hatası ne demek?**

Anahtarınızda bu işlem için izin yok. **API Kimlik Bilgileri** sayfasında anahtarı düzenleyip gereken izni ekleyin.

**Komut onay soruyor, betikte nasıl geçerim?**

`--yes` ekleyin. Fiyatı önceden görmek için aynı komutu `--dry-run` ile çalıştırın.

**Türkiye VDS ve fiziksel sunucularımı da yönetebilir miyim?**

Evet: `gyro vds …`, `gyro dedicated …` ve tüm ürünler için `gyro service …` komutları var. Hangi işlemlerin desteklendiğini her komutun `--help` çıktısı gösterir.

**CLI'yı nasıl güncellerim?**

Kurulum betiğini yeniden çalıştırın ya da yeni `.deb`/`.rpm` paketini kurun. `gyro version --check` yeni sürüm olup olmadığını söyler.

> **Biliyor muydunuz?**
> 
> Altyapınızı dosyada tanımlayıp sürüm kontrolünde tutmak istiyorsanız Terraform daha uygundur: aynı API'yi kullanan resmi sağlayıcımız Terraform Registry'de yayında.

## Sıradaki adım

- **Altyapıyı kodla yönetin:** [Terraform ile Gyro Bulut sunucusu](https://www.gyrohosting.com/bilgi-bankasi/makale/terraform-ile-gyro-bulut) rehberi.
- Tüm komutların arkasındaki uçlar: [Gyro geliştirici belgeleri](https://www.gyrohosting.com/developers/tr/)
