Claude Code Deployment: Production Rehberi
Dockup ile Claude Code deployment: agent skill'ini yükleyin, güvenli kimlik doğrulaması yapın, Git üzerinden deploy edin, başarıyı doğrulayın ve production ortamını güvenle yönetin.
Claude Code deployment, ancak agent “istek kabul edildi” ile “production sağlıklı” durumlarını birbirinden ayırabildiğinde güvenilir hâle gelir. Dockup, makine tarafından çağrılmak üzere tasarlanmış bir CLI aracılığıyla bu deployment katmanını sağlar: yapılandırılmış JSON, gerçek process exit code'ları ve bir deployment terminal duruma ulaşana kadar bağlantıyı sürdüren --wait modu.
Bu rehberde bir repository'nin local çalışmadan doğrulanmış bir production release'ine nasıl taşınacağı anlatılır. Ayrıca Claude Code'a verilmesi gereken izinleri, döndürmesi gereken kanıtları ve yıkıcı bir işlem için insan onayının gerekli olduğu noktayı tanımlar.
Production öncesinde Claude Code deployment için neler gerekir?
Bir coding agent, servis adını tahmin ederek veya dashboard üzerinde tıklayarak işe başlamamalıdır. Agent'a dar kapsamlı bir çalışma sözleşmesi verin: tam hedefi keşfetmek, amaçlanan tek bir değişikliği yapmak, sonucu beklemek ve makine tarafından okunabilir kanıt sunmak.
Temel ön koşullar oldukça basittir:
| Gereksinim | Neden önemli? | Doğrulama |
|---|---|---|
| Node.js 18 veya üzeri | Dockup CLI paketinin gereksinimidir | node --version |
| Dockup hesabı | Workspace'lerin, servislerin ve veritabanlarının sahibidir | app.dockup.ai adresinde oturum açın |
| Git repository | Servis build'inin kaynağıdır | Remote URL'yi ve branch'i doğrulayın |
| API token | Etkileşimsiz kimlik doğrulaması sağlar | dockup whoami --json |
| Health endpoint'i veya listening port | Blue-green cutover işleminin koşuludur | dockup health ... --json |
Agent işlem yapmadan önce production sınırlarını belirleyin. Claude Code bir servis oluşturabilir, secret olmayan configuration değerlerini ayarlayabilir, bir deploy başlatabilir, log'ları inceleyebilir ve rollback önerebilir. Ancak açık bir insan onayı olmadan servis silmemeli, veritabanı kaldırmamalı veya configuration temizlememelidir.
Dockup bu sınırı güçlendirir. Yıkıcı komutlar --yes olmadan çalışmayı reddeder ve eksik onayı doğaçlama yapmak için bir davet olarak değerlendirmek yerine yapılandırılmış bir needs_confirm hatası döndürür. Daha kapsamlı bir politika için AI agent'ları için production guardrail'leri inceleyin.
Claude Code skill'i nasıl yüklenir ve güvenli kimlik doğrulaması nasıl yapılır?
CLI'ı yükleyin, paketle birlikte gelen skill'i yükleyin ve skill'in kurulu binary ile eşleştiğini doğrulayın:
npm install -g dockup-cli
dockup skill install
dockup skill status --json
Yükleyici, canonical skill'i ~/.agents/skills/dockup/ konumuna yazar ve Claude Code'un skill directory'sine bağlar. Skill, CLI ile aynı npm paketinde sunulduğu için dockup update her ikisini de yeniler. Claude Code, local binary'sinin desteklemediği flag'leri açıklayabilecek kopyalanmış bir command reference'a güvenmek zorunda kalmaz.
Otonom session'lar için environment token kullanın:
export DOCKUP_TOKEN="<TOKEN>"
dockup whoami --json
Başarılı bir response hesabı tanımlar ve tokenSource değerini env olarak bildirir. Token'ı prompt'a yapıştırmayın, repository'ye commit etmeyin veya bir CI log'unda echo etmeyin. Dockup'ta saklanan secret değerleri configuration yeniden okunduğunda maskelenir.
Tam Dockup CLI reference, kullanılabilecek yetkili command surface'tir. 135 komut bulunduğundan Claude Code, hatırlanan flag'lere güvenmek yerine güncel reference'a ve paketle birlikte gelen skill'e başvurmalıdır.
Skill CLI paketinin içinde bulunduğu için dockup update, executable'ı ve talimatlarını birlikte yeniler. Bu version alignment, command list'ini uzun ömürlü bir prompt'a kopyalamaktan daha güvenlidir.
Dockup CLI, Git üzerinden nasıl servis oluşturur?
Önce agent'tan workspace'i tanımlamasını isteyin ve display name'lerden slug oluşturmaktan kaçının. Mevcut hedefler şu komutla listelenir:
dockup services --json
Daha önce hiç deploy edilmemiş bir repository için tek transaction ile servisi oluşturabilir, deploy edebilir, tamamlanmasını bekleyebilir ve mevcut directory'yi bağlayabilirsiniz:
dockup create my-api \
--repo https://github.com/acme/my-api \
--project production \
--deploy \
--wait \
--link \
--json
Repository'de Dockerfile bulunduğunda Dockup bunu kullanır. Dockerfile yoksa Dockup, otomatik build detection için Nixpacks'e başvurur. Bu seçimin ayrıntıları, açık build talimatlarının bakım maliyetine değdiği durumlar da dâhil olmak üzere Nixpacks ve Dockerfile karşılaştırması yazısında açıklanır.
Yarım kalmış bir session sonrasında oluşturma işlemini yeniden denemeden önce dockup services --json komutunu tekrar çalıştırın ve tam hedefi inceleyin. Servis zaten varsa yeni bir create request göndermek yerine mevcut durumundan devam edin.
Bağlantı kurulduktan sonra bu repository'deki komutlar hedefi .dockup üzerinden çözümleyebilir; ancak production runbook'ları yine de tam project/service değerini kaydetmelidir. Discovery, belirsiz bir önceki işlem ile yeni bir production mutation arasındaki güvenli sınırdır.
Environment variable'lar, veritabanları ve health check'ler nasıl hazırlanmalıdır?
Sıradan configuration değerlerini secret'lardan ayrı tutun. Claude Code, public bir runtime değerini ve maskelenmiş bir secret'ı ayarlayabilir; daha sonra saklanan secret değerlerini yazdırmadan okuyabilir:
dockup env set NODE_ENV=production \
-s production/my-api \
--json
dockup env set API_KEY="$API_KEY" \
--secret \
-s production/my-api \
--json
Environment değişiklikleri bir sonraki deployment'da uygulanır. Bu davranış bilinçlidir: çalışan bir container, değiştirilene kadar mevcut process environment'ını korur. Eksiksiz çalışma modeli environment variable'lar ve secret'lar yazısında ele alınır.
Uygulamanın managed bir PostgreSQL veritabanına ihtiyacı varsa veritabanını seçilen workspace'te oluşturun ve ayrıntılarını belgelenen database komutlarıyla okuyun:
dockup db create --name main-db --type postgresql --json
dockup db list --json
Private networking, daha sonra aynı project içindeki servis ve veritabanlarına sabit <slug>.internal hostname'leri sağlayabilir. Agent'ın bir database URL'si uydurmasına izin vermeyin; Dockup tarafından döndürülen connection bilgilerini kullanın ve bunları secret olarak saklayın.
İlk önemli production release'inden önce bir readiness gate yapılandırın:
dockup health production/my-api \
--path /healthz \
--interval 5 \
--retries 5 \
--json
Dockup, zero-downtime blue-green deployment gerçekleştirir ve traffic'i yeni version'a yalnızca health gate başarılı olduktan sonra yönlendirir. Mimari, zero-downtime deployment'lar yazısında incelenir.
Claude Code nasıl deploy eder ve başarılı olduğunu nasıl kanıtlar?
--wait kullanın; agent'ın “deployment queued” ifadesini “application running” olarak yorumlamasına izin vermeyin:
dockup deploy production/my-api --wait --json
Varsayılan wait timeout değeri 900 saniyedir. Başarılı olduğunda komut 0 exit code'u ile çıkar ve terminal status'u, duration'ı, deployment ID'sini ve URL'yi döndürür. Build başarısız olursa code:"deploy_failed" ile non-zero exit code döndürür. İşlem timeout süresinde hâlâ devam ediyorsa code:"deploy_timeout" ile non-zero exit code döndürür.
Claude Code için yararlı bir talimat şudur: “Process exit code'unu birincil sonuç olarak değerlendir; ardından JSON alanlarını özetle.” Bu yaklaşım, platform zaten bir failure döndürmüşken iyimser ifadeler kullanılmasını engeller.
Başarının ardından birbirinden bağımsız üç sinyal toplayın:
dockup status production/my-api --json
dockup uptime production/my-api --hours 24 --json
dockup security production/my-api --json
status, servisi ve en son deployment durumunu doğrular. uptime, average response time ve p95 dâhil olmak üzere dakika dakika monitoring istatistikleri döndürür. security, en son image CVE'sini ve configuration scan sonucunu gösterir. Bu kontroller, application-level security uygulamalarını tamamlar; application test'lerinin yerini almaz.
Production başarısız olduğunda Claude Code ne yapmalıdır?
Build failure ile runtime failure'ı birbirinden ayırın. Başarısız bir build için en güncel build log'u gerekir:
dockup logs production/my-api --build --json
Build edilmiş ancak startup sonrasında crash olan bir container için runtime output'unu alın:
dockup logs production/my-api --json
Machine-readable batch'leri koruyarak bir build'i izlemek için NDJSON follow mode kullanın:
dockup logs production/my-api --build -f --json
Deployment terminal duruma ulaştığında komut durur ve deployment başarısız olduysa non-zero exit code ile çıkar. Claude Code, polling loop uydurmadan ilerlemeyi stream edebilir.
Mevcut release sağlıksızsa ve bilinen önceki bir deployment'ın yeniden çalıştırılması gerekiyorsa geçmişi listeleyin ve tam ID'sini kullanın:
dockup deployments production/my-api -n 20 --json
dockup rollback <deploymentId> production/my-api --json
Agent, hangi deployment ID'sini ve neden seçtiğini bildirmelidir. Rollback, failure'ın nedenini anlamanın yerine geçmez; operasyonel bir karardır. Incident'ın yeniden oluşturulabilmesi için build log'unu, runtime log'unu, exit code'u ve audit kaydını koruyun.
Tamamlanmış bir Claude Code deployment raporu; hedefi, commit veya branch'i, deployment ID'sini, terminal status'u, URL'yi, geçen süreyi, health sonucunu ve varsa takip edilmesi gereken riski içermelidir. Bu kanıt, otonom bir işlemi incelenebilir bir production değişikliğine dönüştürür.
Production completion contract tanımlayın
Başlamadan önce beklenen completion contract'ı task'a ekleyin. Yararlı bir talep şu şekilde olabilir: Bağlı repository'yi production/my-api hedefine deploy et; terminal sonucu bekle; hiçbir şeyi silme, temizleme veya transfer etme; failure durumunda error code'u ve build log'undaki son 60 ilgili satırı döndür; success durumunda status, URL, deployment ID, duration ve health kanıtını döndür.
Bu ifade Claude Code'a sınırları belirlenmiş bir hedef ve bir raporlama şeması sağlar. Ayrıca release başarısız olduğunda agent'ın “yardımcı olmak” amacıyla ilgisiz infrastructure'ı değiştirmesini önler. Agent ayrı bir fix önerebilir; ancak production işlemi tek bir request'e bağlanmaya devam eder.
Tekrarlanan release'ler için repository'de veya change-management system'de küçük bir release kaydı tutun. Hedefi, source branch'i, beklenen health path'i, normal timeout'u ve onaylanmış recovery action'ı kaydedin. Bir Claude Code deployment, sonraki session bu bilgileri chat history'den yeniden oluşturmak zorunda kalmadığında daha güvenlidir.
İlk write işleminden önce account boundary'yi doğrulayın
Workspace'ler ownership ve billing boundary'leridir. Claude Code'dan herhangi bir mutation yapmadan önce whoami çıktısını göstermesini, servisleri listelemesini ve seçilen workspace'i belirtmesini isteyin. Pro planı aylık 20 ABD dolarıdır ve 20 ABD doları kullanım kredisi içerir; tüm ücretli planlar sınırsız workspace, database ve deployment kullanımına izin verirken CPU, RAM ve disk kullanımı plan bakiyesine göre dakika başına ölçülür.
Bu pricing model safety kuralını değiştirmez: bir agent scaling yapmadan veya ek resource oluşturmadan önce usage'ı ve hedef kapsamını incelemelidir. Production raporu subscription planını gerçek metered consumption'dan ayrı göstermelidir.
İş akışını production'a taşıyın
Skill'i Claude Code'un çalışacağı ortamın aynısına yükleyin, authentication'ı doğrulayın ve health endpoint'i önceden bilinen, düşük riskli bir servisle başlayın.
npm install -g dockup-cli
dockup skill install
İlk komut CLI'ı yükler. İkinci komut, Claude Code ve Codex için eşleşen Dockup skill'ini yükler. app.dockup.ai adresinden ücretsiz başlayın.
SSS
Claude Code, Dockup ile doğrudan production'a deploy edebilir mi?
Evet. Dockup skill'ini yükleyin, kapsamı sınırlandırılmış bir DOCKUP_TOKEN sağlayın, tam project/service hedefini çözümleyin ve deploy komutunu --wait ile --json kullanarak çalıştırın.
Claude Code neden --wait kullanmalı?
--wait olmadan başarılı bir response yalnızca deployment'ın sıraya alındığı anlamına gelir. --wait ile Dockup yalnızca başarıdan sonra 0 ile çıkar; aksi durumda yapılandırılmış deploy_failed veya deploy_timeout hataları döndürür.
Claude Code saklanan secret değerlerini görebilir mi?
Dockup, output içindeki secret değerlerini maskeler. Agent bir secret'ı ayarlayabilir veya değiştirebilir; ancak environment configuration okunurken saklanan secret değeri döndürülmez.
Repository'de Dockerfile yoksa ne olur?
Dockup, uygulamayı otomatik olarak algılayıp build etmek için Nixpacks kullanır. Repository'de Dockerfile bulunduğunda öncelik repository Dockerfile'ındadır.
Claude Code hatalı bir release'ten nasıl kurtulabilir?
Build ve runtime log'larını incelemeli, deployment geçmişini listelemeli ve tam deployment ID'sini kullanarak bilinen önceki bir deployment'ı dockup rollback ile yeniden çalıştırmalıdır.
