Cuma gecesi uygulaması problemi
Tanıdığımız bir yönetici, bir cuma akşamını AI asistanıyla geçirdi ve gece yarısı olduğunda elinde gerçekten işe yarayan bir iç araç vardı: ekibinin çalışma şekline birebir oturan bir görev takibi — çünkü kendi işini her tedarikçiden iyi biliyor. Uygulama kusursuz çalışıyordu. Kendi bilgisayarında.
Pazartesinin seçenekleri ise hep kötüydü. IT\'den sunucu isteyip haftalarca ticket bekleyecekti. Ya da şirket verisini yabancı bir hobi platformuna taşıyacaktı. Ya da çıplak bir VPS kiralayıp bir gecede TLS\'in, yedeğin, yamaların ve güvenlik duvarının sorumlusu olacaktı. Kod iyiydi. Eksik olan, bir yoldu.
Alışılmış deploy yolları neden uymuyor
Yaygın yolların her biri, bu geliştiricide olmayan bir şeyi varsayar. Git tabanlı deploy bir repo ve branch alışkanlığı varsayar. İmaj tabanlı deploy bir container registry ve onu besleyecek Docker bilgisi varsayar. İkisi de yazılımı gönderen kişinin, en azından yarı zamanlı, bir deployment mühendisi olduğunu varsayar.
AI ile üreten kişinin elindeki şey ise daha basit: içinde çalışan kod olan bir klasör. O hâlde yol tam oradan başlamalı — klasörden. Reponuz varsa Git ile Deploy rehberine bakın; iki yol da aynı platformda buluşur.
Klasör yeterli
Küçük bir CLI kurun, proje dizininde tek komut çalıştırın; gerisini cdnctl çözer: dil ve framework, port, Dockerfile var mı (yoksa üretebilir), hatta projede hangi AI kod asistanlarının kurulu olduğu — çünkü uygulamayı yazan agent, çoğu zaman onu yayınlamaya devam edecek olandır.
$ cdnctl init
Proje : gorev-takip (node/express, port 3000)
Agent : claude-code (claude on PATH), cursor
Paket : ✓ Large (max 5 app)
Karne : 2 HATA, 2 uyarı — ayrıntı: cdnctl check
Yazıldı : cdnctl.yaml, AGENTS.md
→ Önce `cdnctl check` hatalarını düzeltin (deploy sonrası site açılmaz).
Kod makinenizden çıkmadan bir karne
AI üretimi uygulamalar canlıda hep aynı birkaç sebepten düşer ve bu sebeplerin hepsi daha deploy edilmeden kaynak kodda görünür. cdnctl check tamamen makinenizde çalışır — hiçbir kod yüklenmez — ve bilinen bir hatayla yayına çıkmayı reddeder. Aşağıdaki dört bulgu varsayım değil: kendi test uygulamamızın gerçekten yazıldığı kusurlar bunlar ve ilk çalıştırmada yakalandılar.
$ cdnctl check
[ERROR] bind-localhost (server.js:61)
Uygulama 127.0.0.1'e bağlanıyor — container içinde dışarıdan erişilemez.
→ 0.0.0.0'a bağlanın (host parametresini kaldırmak yeterli).
[ERROR] secret-in-code (server.js:10)
Kodda gömülü bir sır (API key/token/parola) görünüyor.
→ --secret KEY=VALUE ile taşıyın; kodda process.env ile okuyun.
[WARNING] sqlite-single-pod
SQLite, yeniden başlatmada / çoklu replikada veri kaybettirir.
→ Kalıcı disk bağlayın ya da yönetilen veritabanına geçin.
[WARNING] no-healthcheck
/health yolu yok — platform uygulamanın canlı olduğunu anlayamaz.
Canlı URL\'e tek komut
Düzeltmelerden sonra deploy tek komuttur. Perde arkasında kaynağınız arşivlenir, TLS ile yüklenir, izole bir sandbox içinde container imajına dönüştürülür, hesabınıza ait özel registry alanına itilir ve gerçek bir HTTPS subdomain arkasında ayağa kaldırılır — ama bunların hiçbiri sizin ilginizi istemez. İlk çalıştırma bir dakika kadar sürer; sonraki her sürüm aynı tek komuttur.
$ cdnctl deploy
→ kaynak arşivleniyor (gorev-takip)
→ yükleniyor (0.1 MB)
→ build başlatılıyor (Kaniko, izole sandbox)
build: running
build: success (41 sn)
→ uygulama oluşturuluyor
→ subdomain atanıyor
→ ilk deploy başlatılıyor
→ uygulamanın ayağa kalkması bekleniyor
✓ CANLI: https://ca…….cdn.com.tr
Güvenlik ve kalıcılık angarya değil, varsayılan
VPS yolunu korkutucu yapan parçalar burada platformun işidir. TLS sizin için üretilir ve yenilenir. Build\'ler sandbox içinde koşar; imajlar yalnızca sizin hesabınıza ait bir registry alanında durur. Healthcheck sayesinde uygulamanız yanıt vermeyi bıraktığı anda platform onu yeniden başlatır. Karne bir dosya-veritabanı gördüğünde ise sizi kalıcı disklere ve yönetilen MySQL/PostgreSQL\'e yönlendirir — bir pod yeniden başlatması asla verinizi yemez.
Bütün bu akışı AI agent\'ınız da yürütebilir
cdnctl init, AGENTS.md dosyasına (varsa CLAUDE.md\'ye de) bir deploy bölümü yazar; uygulamayı yazan agent bir sonraki oturumda komutları zaten bilir. Agent\'lar için --json çıktı, cdnctl mcp ile bir MCP sunucusu ve — en önemlisi — kendilerine ait deploy-only token vardır: yükleyebilir, build edebilir, yayınlayabilir; DNS\'e, faturalamaya ve hesabınızın geri kalanına ASLA uzanamaz. Panel şifreniz sizde kalır. Ayrıntılar cdnctl yardım sayfalarında. Güvenlik modelinin tamamı — token sınırları, MCP yapılandırması ve test edilmiş limitler — için agent'ınıza güvenle deploy yetkisi verin.
Sizin yolunuz hangisi?
Üç yol, tek platform. Kodunuzu bir repoda tutuyor ve push-ile-deploy istiyorsanız Git ile Deploy. Zaten imaj build edip compose dosyası çalıştırıyorsanız Docker hosting. Elinizdeki şey çalışan bir klasörse — cuma gecesi durumu — bu yol sizin için döşendi: cdnctl\'i kurun, init deyin, deploy deyin, URL\'i ekibinize gönderin.
Sık sorulan sorular
GitHub ya da başka bir git servisi şart mı?
Hayır. Kaynak, proje klasöründen doğrudan arşiv olarak gider; git akışa hiç girmez. İleride repoya geçerseniz git yolu hazır — uygulama aynı kalır.
Docker bilmem gerekiyor mu?
Hayır. Projede Dockerfile yoksa cdnctl init tespit ettiği dile göre makul bir tane üretebilir. Build zaten sizin makinenizde değil, platformda koşar.
Kodum tam olarak nereye gidiyor?
Arşiv TLS ile hesabınıza yüklenir, izole bir sandbox içinde bir kez build edilir ve çıkan imaj yalnızca sizin hesabınızın kullandığı özel registry alanında saklanır. Hiçbir şey paylaşılmaz, hiçbir şey namespace'inizin dışında çalışmaz.
Maliyeti ne?
Container platformu içeren herhangi bir paket — standart paketlerin hepsi içerir. Hesabınızda eksikse cdnctl söyler ve satın alma sayfasını verir; ödeme tarayıcıda biter, cdnctl kaldığı yerden devam eder.
Güncellemeyi nasıl gönderirim?
cdnctl deploy'u yeniden çalıştırın. Yeni imaj build edilir ve devreye alınır; yenisi ayağa kalkana kadar eski sürüm hizmet vermeye devam eder.