Komut satırı ve Terraform

HepCloud API'si hcloud API standardıyla uyumludur. Bunun pratik anlamı şu: bu ekosistem için yazılmış araçları baştan öğrenmenize gerek yok — yalnız uç adresini HepCloud'a çevirirsiniz.

Bu sayfadaki her şey için önce panelden bir API token'ı oluşturun: API token'ları.

hcloud komut satırı aracı

hcloud, tek dosyalık bir komut satırı aracıdır; Windows, macOS ve Linux için resmî dağıtımı GitHub sürümleri sayfasında bulunur.

Aracın hangi API'ye bağlanacağı --endpoint seçeneğiyle belirlenir:

hcloud --endpoint https://api.hepcloud.net/v1 --token <token> server list

Her komutta yazmamak için iki ortam değişkeni tanımlayın.

Windows (PowerShell):

$env:HCLOUD_ENDPOINT = "https://api.hepcloud.net/v1"
$env:HCLOUD_TOKEN = "<token>"

macOS / Linux:

export HCLOUD_ENDPOINT=https://api.hepcloud.net/v1
export HCLOUD_TOKEN=<token>

Ortam değişkeni o pencerede geçerlidir

PowerShell'de $env: ile tanımlanan değer yalnız açık olan pencerede yaşar; yeni pencere açtığınızda yeniden tanımlamanız gerekir. Kalıcı yapmak isterseniz Windows'un ortam değişkenleri ayarlarını kullanın.

Ayarladıktan sonra komutlar sade çalışır:

hcloud server list
hcloud server describe web-01
hcloud ssh-key list
hcloud firewall list

Sunucu oluşturmak:

hcloud server create --name web-01 --type TRX-2G --image ubuntu-24.04 --ssh-key laptop

Token'ı komut geçmişinde bırakmayın

Token'ı doğrudan komuta yazarsanız kabuk geçmişinize düşer. Ortam değişkeni kullanın ve token'ı depoya, betiğe ya da ekran görüntüsüne koymayın.

Terraform

hcloud Terraform sağlayıcısı da uç adresini kabul eder:

terraform {
  required_providers {
    hcloud = {
      source = "hetznercloud/hcloud"
    }
  }
}

provider "hcloud" {
  token    = var.hepcloud_token
  endpoint = "https://api.hepcloud.net/v1"
}

variable "hepcloud_token" {
  type      = string
  sensitive = true
}

Token'ı dosyaya yazmayın; TF_VAR_hepcloud_token ortam değişkeniyle verin.

Basit bir yığın — SSH anahtarı, güvenlik duvarı ve sunucu:

resource "hcloud_ssh_key" "laptop" {
  name       = "laptop"
  public_key = file("~/.ssh/id_ed25519.pub")
}

resource "hcloud_firewall" "web" {
  name = "web"

  rule {
    direction  = "in"
    protocol   = "tcp"
    port       = "22"
    source_ips = ["0.0.0.0/0"]
  }

  rule {
    direction  = "in"
    protocol   = "tcp"
    port       = "443"
    source_ips = ["0.0.0.0/0"]
  }
}

resource "hcloud_server" "web" {
  name         = "web-01"
  server_type  = "TRX-2G"
  image        = "ubuntu-24.04"
  ssh_keys     = [hcloud_ssh_key.laptop.id]
  firewall_ids = [hcloud_firewall.web.id]
}

output "ip" {
  value = hcloud_server.web.ipv4_address
}

terraform init ve terraform apply ile kurulum tamamlanır.

Sunucu tipi ve imaj adları

server_type ve image alanlarına panelde gördüğünüz adları yazın (TRX-2G, ubuntu-24.04). Geçerli listeyi hcloud server-type list ve hcloud image list komutlarıyla da alabilirsiniz.

Desteklenen kaynaklar

Araçlarda göreceğiniz her kaynak HepCloud'da karşılığı olan kaynaklarla sınırlıdır:

KaynakDurum
SunucularOluşturma, güç işlemleri, tip değiştirme, yeniden kurma, silme
SSH anahtarlarıTam destek
Güvenlik duvarlarıKural düzenleme, sunucuya uygulama ve kaldırma
Birincil IP'ler ve rDNSTam destek
Sunucu tipleri, imajlar, konumlarSalt okuma
İşlemler (actions)Salt okuma — uzun süren işlerin durumu

Listede olmayan bir kaynağı çağıran araç not_found alır.

Hesap işlemleri API'ye kapalıdır

Bakiye, fatura bilgileri, oturumlar, iki adımlı doğrulama ve token yönetimi yalnız panelden yapılır. Bu bir eksiklik değil, bilinçli bir sınır: sızan bir token'ın hesabınızı ele geçirmesini, kendine yeni token üretmesini ya da 2FA'nızı kapatmasını engeller.

Kendi betiğinizi yazmak

Özel bir şeye ihtiyacınız varsa API'yi doğrudan çağırabilirsiniz:

curl -H "Authorization: Bearer $HCLOUD_TOKEN" \
  https://api.hepcloud.net/v1/servers

Uçların tamamı ve istek/yanıt gövdeleri: API referansı.