Claude Code’u sunucuda çalıştırmak için onu sunucuya kurarsın, bir kez giriş yaparsın ve bağlantın kopsa da yaşamaya devam eden bir terminal oturumunda başlatırsın; çoğu zaman bu, SSH üzerinden tmux demek. İşin özü bu kadar. Geri kalanı sunucunun nerede duracağı, ajanın tarayıcı olmadan nasıl giriş yapacağı ve oradan neye erişebileceğiyle ilgili.
Bu yazıda ajanları neden VPS’e taşıdığımızı, yaygın kurulumları, tarayıcısız makinede girişi ve temel güvenliği anlatıyorum. Sonra AgentVera’nın Runner, SSH ajanları ve Docker ile uzaktaki ajanları nasıl çalıştırdığını gösteriyorum.
Kodlama ajanını neden sunucuda çalıştırırsın
Dizüstü bilgisayar uzun ajan işleri için iyi bir yer değil. Uyku moduna geçer, Wi-Fi gider, akşam kapağı kapatırsın. Sunucuda bunların hiçbiri olmaz.
Ajanları kendi makinenden çıkarmanın yaygın sebepleri:
- Uzun işler. Bir saat süren bir migration, büyük bir refactor ya da test paketi, bilgisayar uyudu diye yarıda kalmamalı.
- Kod zaten orada. Bazı projeler yalnızca Linux’ta derlenir, GPU ister ya da yalnızca o ağda bulunan bir veritabanına bağlanır.
- Yalıtım. Silinip yeniden kurulabilen bir sanal makinedeki ajan, senin kişisel dosyalarına, SSH anahtarlarına ve tarayıcı oturumlarına dokunamaz.
- Her yerden erişim. İşi masanda başlatır, başka bir bilgisayardan ya da telefondan bakarsın.
- Aynı anda birkaç ajan. Daha çok çekirdeği ve belleği olan bir sunucu, dizüstünden fazla ajanı paralel çalıştırır.
Bedeli kurulum ve sorumluluk. Kontrol ettiğin sunucuyu korumak da sana düşer.
Seçeneklere hızlı bakış
| Kurulum | Bağlantı kopunca | Yalıtım | Emek | Kime uygun |
|---|---|---|---|---|
| VPS’te SSH + tmux | Devam eder | Ayrı makine | Az | Çoğu kişi, bir iki proje |
| Dev container (yerel ya da uzak) | Kapsayıcı açıkken sürer | Kapsayıcı | Orta | Tekrarlanabilir ortam, ekipler |
| Görev başına bulut VM | Devam eder | Tam VM | Orta-yüksek | Atılabilir ortamlar, riskli işler |
| Kendi makinende kapsayıcıdaki ajan | Ajanla birlikte durur | Kapsayıcı | Az | Sunucusuz yalıtım |
SSH ve tmux
En basit kurulum bu ve her CLI ajanıyla çalışır. Sunucuda:
npm install -g @anthropic-ai/claude-code
tmux new -s ajan
cd ~/projeler/uygulamam
claude
Ctrl-b d ile oturumdan ayrıl ve SSH’ı kapat. Ajan çalışmaya devam eder. Sonra yeniden ssh ile bağlanıp tmux attach -t ajan dersin. screen ya da zellij kullanıyorsan mantık aynı: oturum SSH bağlantısına değil sunucuya ait.
Kaybettiğin şeyler: dosya ağacı yok, diff görünümü yok ve birkaç ajan arasında gezmek tmux pencereleriyle uğraşmak demek.
Dev container
Dev container ortamı bir dosyada tarif eder (devcontainer.json ve bir Dockerfile), böylece her makinede aynı araçlar olur. Yerelde ya da uzak bir Docker sunucusunda çalıştırabilirsin. Ajan kapsayıcının içinde çalışır ve yalnızca içeri bağladığın klasörleri görür.
Dikkat edilecek nokta, ajanın girişinin de kapsayıcının içinde olması gerektiği. Yeniden oluşturulan bir kapsayıcı, kalıcı yapmadığın her şeyi kaybeder.
Bulut VM
Her iş için yeni bir sanal makine en temiz yalıtımı verir: ajan bir şeyi bozarsa makineyi silersin. Kurulumu daha zahmetlidir ve kodu içeri alıp sonucu dışarı çıkarmanın bir yolu gerekir; genelde bu, ajanın push ettiği bir git dalıdır.
Tarayıcısız makinede giriş
Kodlama ajanları normalde tarayıcıdan giriş yapar. Sunucuda tarayıcı yok, o yüzden şu yollardan birine ihtiyacın var.
Claude Code
- Kendi bilgisayarındaki tarayıcı. Sunucuda
claudekomutunu çalıştır. Bir giriş bağlantısı gösterir, onu kendi makinende açarsın. Tarayıcı sunucudaki yerel dönüş adresine ulaşamazsa Claude Code bir kod gösterir; onu terminaldeki “Paste code here if prompted” satırına yapıştırırsın. - Uzun ömürlü token.
claude setup-token, Pro, Max, Team ya da Enterprise aboneliği için bir yıl geçerli bir OAuth token üretir. Senin için bir yere kaydedilmez; sunucudaCLAUDE_CODE_OAUTH_TOKENolarak tanımlarsın. Bu token yalnızca model isteklerini kapsar. - API anahtarı. API üzerinden kullandıkça ödüyorsan
ANTHROPIC_API_KEYtanımla.
Linux’ta Claude Code giriş bilgilerini 0600 izinli ~/.claude/.credentials.json dosyasında tutar. macOS’ta Anahtar Zinciri’ne yazar; SSH’ta Anahtar Zinciri kilitliyse yine bu dosyaya düşer.
Codex
- Cihaz kodu.
codex login --device-authbaşka bir cihazdaki tarayıcıya gireceğin bir kod verir. Beta aşamasında ve önce ChatGPT güvenlik ayarlarından (ya da çalışma alanı yöneticin tarafından) açılması gerekir. - API anahtarı.
printenv OPENAI_API_KEY | codex login --with-api-key. - Yedek yollar. Giriş yaptığın bir makineden
~/.codex/auth.jsondosyasını kopyala ya dassh -L 1455:localhost:1455ile giriş portunu yönlendirip normal şekilde giriş yap.
Hangi yolu seçersen seç, sunucudaki giriş dosyası bir parola kadar hassastır. Onu okuyabilen herkes aboneliğini kullanabilir.
Sunucuda güvenlik
Sunucudaki ajan, hangi kullanıcıyla çalışıyorsa onun yetkileriyle komut çalıştırır. Buna göre plan yap.
- Ayrı bir kullanıcı kullan. Ajanları root olarak çalıştırma. Kendi ev klasörü olan ayrı bir kullanıcı, kötü bir komutun ulaşabileceği yeri daraltır.
- Üretim sırlarını sunucuya koyma. Ajanın üretim veritabanı parolasına ihtiyacı yoksa o parola o sunucudaki bir
.envdosyasında durmamalı. - Gelen portları kapat. Yalnızca anahtarla SSH, parolayla giriş yok, unuttuğun açık bir geliştirme sunucusu yok.
- Dallarda çalış. Ajan main’e değil bir dala push etsin. Git worktree ile birkaç ajan aynı depoda birbirini ezmeden çalışır.
- Uzun ömürlü tokenları takip et. Paylaşılan bir sunucudaki bir yıllık token, bir yıllık bir risk demek. Makine paylaşılıyorsa ya da kapatılıyorsa yenile.
- Girişin süresinin dolabileceğini unutma. Gözetimsiz çalışmalarda, gece bırakmadan önce oturumun hâlâ açık olduğunu kontrol et.
AgentVera ajanları sunucuda nasıl çalıştırır
AgentVera, kodlama ajanı CLI’larını kendi girişlerinle gerçek terminallerde yan yana çalıştıran bir masaüstü uygulaması. Ajanları kendi makinenden çıkarmak için üç yol sunar.
Runner: kendi sunucun, her yerden
Runner, kendi Linux veya macOS sunucuna ya da bir Mac’e kurduğun küçük bir servis. Claude Code, Codex, Gemini CLI, opencode ve düz terminal oturumlarını gerçek terminallerde çalıştırır. Bağlantıyı kessen de oturumlar sürer; tarayıcıdan ya da masaüstü uygulamasından yeniden bağlanırsın.
Kısaca kurulum:
- app.agentvera.dev/runners sayfasını aç ve “Yeni runner ekle”ye tıkla. 10 dakika geçerli, 8 karakterlik bir eşleştirme kodu çıkar.
- Sunucuda kurulum komutunu bu kodla çalıştır:
curl -fsSL https://app.agentvera.dev/runner/install.sh | sh -s -- --pair KOD
- CLI’ı sunucuya kur ve giriş yap; örneğin
npm install -g @anthropic-ai/claude-code, ardındanclaude login.
Runner, Node.js 20 veya üstünü ve curl ya da wget’i ister. Linux’ta bir systemd kullanıcı servisi kurar; oturumu kapattığında da çalışsın diye bir kez sudo loginctl enable-linger $USER çalıştırırsın. Ajanları belirli klasörlerde tutmak için agentvera-runner roots ~/projeler yeter. roots tanımlamazsan ajanlar ev klasöründe çalışır.
Güvenlik tarafında Runner yalnızca app.agentvera.dev’e 443 portundan dışarı bağlantı kurar, yani sunucuda port açmazsın. Trafik TLS üzerinden aktarılır; AgentVera sunucusu onu yorumlamaz, kaydetmez, saklamaz. Kodun kendi sunucunda kalır ve yalnızca kuruluşunun aktif üyeleri bağlanabilir. Runner sayfası sunucunun CPU, bellek ve disk durumunu da gösterir.
Runner, Pro ve Team planlarında var.
SSH üzerinden ajan: ek servis yok
Sunucun zaten AgentVera’nın SSH listesinde kayıtlıysa Runner’a gerek yok. Yeni ajan penceresinde Çalışma yeri olarak Bu bilgisayar yerine o sunucuyu seç ve Sunucudaki klasörü belirle. Ajan sunucuda, sunucunun kendi CLI girişiyle çalışır. Pencerede de yazdığı gibi CLI’ın sunucuda kurulu ve giriş yapılmış olması gerekir; değilse ilk açılışta ajanın terminalinden giriş yapabilirsin. Yereldeki hesapların, MCP ve tarayıcı ayarların sunucuda kullanılmaz.
Sunucuda tmux varsa AgentVera ajanı bir tmux oturumunda başlatır. Bu oturum SSH bağlantısından uzun yaşar ve hangi bilgisayardan olursa olsun bir sonraki bağlantı ona yeniden bağlanır. Uygulamadan çıkmak onu durdurmaz; ajanı durdurmak ya da kapatmak durdurur.
SSH özelliğinin kendisi ücretsiz: kayıtlı sunucular, giriş bilgileri için şifreli kasa, SFTP ve ProxyJump. Ayrıntılar SSH ve SFTP sayfasında.
Docker kapsayıcısında ajan: sunucusuz yalıtım
Bazen sunucuya değil bir duvara ihtiyacın vardır. Yerelde çalışan bir Claude Code ya da Codex ajanı için ajan penceresinde Docker kapsayıcısında çalıştır seçeneğini aç. Ajan yalnızca proje klasörünü görür; bilgisayarındaki diğer dosyalar, programlar ve SSH anahtarları ona kapalı kalır. İstersen CPU ve bellek sınırı da koyarsın.
AgentVera ilk kullanımda kendi imajını (Node 22, git, ripgrep, Claude Code ve Codex) oluşturur. İçinde claude ya da codex komutu olduğu sürece kendi imajını da kullanabilirsin. Ajan durunca kapsayıcı silinir. Docker Desktop, Colima ya da OrbStack gerekir. Bu özellik ücretsiz; bkz. Docker kapsayıcısında ajan.
Hangisini seçmeli
| İstediğin | Kullan |
|---|---|
| Sunucunda saatlerce çalışan, tarayıcıdan açtığın ajanlar | Runner (Pro ve Team) |
| Zaten SSH ile bağlandığın bir sunucuda ajan | Çalışma yeri → kayıtlı SSH sunucusu |
| Kendi makinende yalıtım | Docker kapsayıcısında çalıştır |
| Çalışan bir ajana telefondan hızlıca bakmak | Mobil uygulama ya da Telegram |
Sık yapılan hatalar
- Ajanı doğrudan SSH oturumunda başlatıp bağlantı kopunca kaybetmek.
- Ajanı “şimdilik” diye root olarak çalıştırmak.
- Üretim anahtarlarıyla dolu bir
.envdosyasını olduğu gibi sunucuya kopyalamak. - Paylaşılan bir makinede uzun ömürlü bir token bırakıp unutmak.
- Birkaç ajanı ayrı dallar ya da worktree’ler yerine aynı klasörde çalıştırmak.
Kontrol listesi
- CLI sunucuda kurulu ve giriş yapılmış.
- Ajan tmux, Runner ya da bağlantı kopunca yaşayan başka bir oturumda çalışıyor.
- Root olmayan bir kullanıcıyla, proje klasörleriyle sınırlı çalışıyor.
- İş gerektirmiyorsa sunucuda üretim sırrı yok.
- Anahtarlı SSH dışında gelen portlar kapalı.
- Her ajan kendi dalında ya da worktree’sinde çalışıyor.
Sonuç
Claude Code’u sunucuda çalıştırmak üç şeye dayanıyor: bağlantından uzun yaşayan bir oturum, tarayıcı olmadan çalışan bir giriş ve yalnızca ajanın ihtiyacını barındıran bir sunucu. SSH ve tmux seni beş dakikada oraya götürür. Ajanları her yerden başlatmak, dosyalarını ve diff’lerini görmek ve aynı anda birkaçını çalıştırmak istiyorsan AgentVera’nın Runner’ı ve SSH ajanları aynı işi daha az uğraşla yapar.
Daha fazlası:
- Git worktree ile paralel geliştirme
- Yapay zekâ ile kripto botu
- Birden fazla Claude Code ajanı
- Docker
- Kodlama ajanı nedir?
AgentVera’yı denemek için ana sayfaya göz at.