Copilot CLI ile GitHub Pages’e Custom Domain: DNS Derdi Bitti
DNS. Yıllardır kod yazan herkesin bir yerlerde takıldığı üç harf bunlar. A kaydı mı, CNAME mi, TTL ne olacak, propagasyon ne zaman biter… Ben 20 küsur senedir bu işin içindeyim ama hâlâ bir domain’i yeni bir servise bağlarken içimden “acaba bir yerde bir şey unuttum mu” diye geçiriyorum. Yalan yok.
Geçen hafta bir GitHub blog yazısına denk geldim — Bruno Borges anlatıyordu — Copilot CLI üzerinden Namecheap skill’i kullanıp DNS’e elle dokunmadan GitHub Pages’e custom domain bağlamayı gösteriyordu. İlk okuyunca biraz kuşkulandım. “Yine demo yapmışlar, gerçek hayatta tökezler” dedim kendi kendime. Ama denedim. Ve sonuç… fena değil. Hatta baya iş görüyor.
Bu yazıda hem işin nasıl aktığını anlatacağım hem de sahada Türkiye’deki geliştiriciler ve kurumsal ekipler için bunun ne anlama geldiğine kendi açımdan bakacağım. Çünkü demo başka, production başka; bunu atlayınca insan sonra boşuna uğraşıyor.
Olayın Özü: 14 Dakikada Live Domain
Anlatılan senaryoya şöyle bir bakınca, işin özünde çok da büyütülecek bir şey yok gibi dürüyor. Boş bir repo alıyorsun, Copilot CLI’a “buraya bir landing page koy ve GitHub Pages’i aç” diyorsun, sonra da Namecheap’ten 2 dolara bir .click domain kapıyorsun; hani şu ilk bakışta pek ciddiye alınmayan uzantı var ya, işte o.
Sonra iş biraz el değiştiriyor. Namecheap API’sını açıyorsun, IP whitelist’e kendi IP’ni ekliyorsun, API key’i alıyorsun, Copilot CLI’a Namecheap skill’ını kuruyorsun. Ardından doğal dille “bu domain’i şu Pages sitesine bağla” diyorsun; garip geliyor ama evet, akış bu kadar sade kalabiliyor.
Hepsi bu. Elle tek bir A kaydı yazmıyorsun, tek bir CNAME satırıyla uğraşmıyorsun, DNS ekranında yarım saat kaybolmuyorsun; toplam süre 14 dakika civarı, toplam maliyet de 2 dolar dolayında kalıyor.
“Custom domain bir projeye ‘gerçeklik’ hissi veriyor. Ama DNS, bu yolculuğun son metresi olmasına rağmen genelde en can sıkıcı kısmı.” — İşte bu cümle Bruno’nun yazısının özeti. Açık konuşayım, ben de tam buraya imza atarım.
Adım Adım Ne Oluyor?
1. Repo ve Site
Klasik başlangıç bu. Yeni bir public repo açıyorsun, sonra da normalde şu zinciri izliyorsun: index.html yaz, commit et, push et, ardından Settings → Pages’e gir, source branch seç, kaydet. Copilot CLI ile bunu tek cümlede anlatıyorsun ve araç işi kendi kendine toparlıyor (kendi tecrübem). Peki bunu neden söylüyorum? Ajan da önce hangi dosyayı açacağını, sonra hangi Pages ayarını kurcalayacağını kendi kafasında planlıyor.
İtiraf edeyim, bu taraf aslında büsbütün yeni değil. Copilot CLI zaten repo işlemlerinde bir süredir böyle işlere giriyor. Asıl ilginç yer DNS tarafı; hani insanın “tamam da bunu gerçekten uçtan uca yapıyor mu?” diye kaşını kaldırdığı kısım orası.
2. Ucuz Domain: 2 Dolara Deneme
Yazıda Bruno .click TLD’sını seçmiş (ciddiyim). Neden? Çünkü yan proje için premium .com almak biraz fazla kaçıyor, açık konuşayım. Kağıt üstünde mantıklı dürüyor: 2 dolara domain alıyorsun, tutmazsa çok can yakmıyor. Ben de buna itiraz etmiyorum, özellikle deneme projelerinde baya iş görüyor. Ama burada küçük bir ayrım var; production için ben .click, .xyz ya da benzeri ucuz TLD’leri pek tercih etmem. Kurumsal müşteride SEO ve güven algısı hızlıca düşebiliyor. Deneme ayrı, prodüksiyon ayrı; karıştırınca sonradan uğraştırıyor.
3. Namecheap API’sını Açmak
İşin bel kemiği burası. Namecheap hesabında Profile → Tools altındaki Business & Dev Tools bölümüne gidiyorsun, sonra API Access’i açıyorsun. Üç şey yapman gerekiyor:
- API’yi ON konumuna getir
- API çağrılarını yapacak makinenin public IP’sını Whitelisted IPs‘e ekle
- API Key’i kopyala ve güvenli bir yere kaydet
Bu son madde var ya, API key’in güvenli saklanması, işte orada şaka yok. Kulağa basit geliyor ama sızıntı olursa bütün düzen bozuluyor; aşağıda ona tekrar döneceğim, çünkü atlanacak konu değil.
4. Copilot CLI’a Namecheap Skill’ını Kurmak
Küçük bir detay: Tek satırlık iş gibi görünüyor:
gh skill install github/awesome-copilot namecheap
Skill dediğimiz şey aslında Copilot CLI’ın belirli bir servisle konuşmasını sağlayan MCP tarzı bir eklenti paketi. Namecheap skill’i community tarafından yazılmış; yanı resmî Microsoft/GitHub ürünü değil. Bu ayrıntı önemli, çünkü kurumsal tarafta “community” kelimesini görünce insan otomatik olarak iki kez bakıyor (bu konuda ikircikliyim). Yine de kodu görebilmek güzel bir şey; ne yaptığını az çok anlıyorsun, körlemesine ilerlemiyorsun.
5. Doğal Dille DNS Ayarı
En eğlenceli kısım burası diyebilirim (buna dikkat edin). Copilot CLI’a diyorsun ki: “ghpagesblog.click domain’ını şu repository’nın GitHub Pages sitesine bağla, HTTPS’i de aktif et.” Ajan arka planda şunları yapıyor:
- GitHub Pages için gerekli A ve AAAA kayıtlarını (185.199.108.153 vs.) öğreniyor (bu kritik)
- Namecheap API’sine bu kayıtları yazıyor
- Repo’ya
CNAMEdosyası ekliyor - Pages ayarlarında custom domain alanını dolduruyor
- Enforce HTTPS” seçeneğini işaretliyor (propagasyon bitince)
Bakın, Neyse uzatmayayım; senin normalde 8-10 farklı yerde tıklayarak, iki ayrı dokümantasyonu yan yana açıp kontrol ederek yaptığın işi doğal dille tarif ediyorsun. Süreç akıp gidiyor. Biraz tuhaf geliyor ilk başta, sonra “haa tamam” diyorsun; çünkü asıl yük komutlarda değil, niyeti doğru anlatmakta.
Peki Bu Gerçekten Devrim mi, Yoksa Sadece Sirin Bir Demo mu?
Açik konuşayım: ikisi de biraz var. Hani ilk bakışta “tamam, güzel” diyorsun ama biraz kurcalayınca işin tadı değişiyor; neden önemli olduğunu ve neden hâlâ temkinli olmak gerektiğini iki parça halinde düşünmek daha doğru oluyor.
Iyi Tarafı
DNS kayıtlarını elle yazmak, evet, insanın başını ağrıtan işlerden biri. Bir A kaydinda yanlış IP girersin, bir CNAME’in sonuna fazladan nokta koyarsin, TTL’i 3600 yerine 86400 yaparsin (sonra da niye yayilmadi diye bakinir durursun), bunların hepsini ben de yaşadım; Copilot CLI ile skill kombinasyonu bu tip sıkıcı ve hata cikarabilecek adımları otomatikleştiriyor, bayağı iş görüyor, hele junior geliştiriciler ya da DNS tarafına çok aşina olmayanlar için ciddi rahatlık sağlıyor.
Bir de su kısım var, sanki ufak ama değil: dokümantasyon aramaktan kurtuluyorsun. Normalde GitHub Pages’in resmî IP’lerini bulmak için Microsoft ve GitHub dokümanlarını açacaksın, Namecheap panelinde doğru sekmeyi arayacaksin, sonra iki tarafı senkron tutmaya calisacaksin; ajan bunları hafizasinda tutuyor, yanı sen uğraşmıyorsun ama burada da “tamam her şeyi o halleder” demek fazla iyimser olur.
Kötü — daha doğrusu “dikkat” — Tarafı
API key’i bir AI ajanına vermek hafife alınacak bir şey değil. Namecheap API key’i domain portföyünün tamamına erişim sağlıyor; yanı teoride sadece bir kayıt eklemek yerine tüm nameserver’ları değiştirebilir, hatta domain transferini tetikleyebilir (bu kısım insanın içini azıcık burkuyor), IP whitelist bir güvenlik katmanı evet. Tek başına yeterli olmuyor.
Kısa bir not düşeyim buraya.
Türkiye Perspektifinden: Kurumsal Ekipler İçin Anlamı Ne?
Ne yalan söyleyeyim, Şimdi biraz sahaya inelim. Türkiye’de geliştirici arkadaşların önemli bir kısmı ya freelance iş kovalamıyor ya da bir kurumun bilişim tarafında çalışıyor, dolayısıyla bu haberin etkisi iki tarafta da aynı değil; biri “oha, güzelmiş” derken öteki “hmm, bizde işler biraz daha karışık” diye bakıyor.
Bireysel / Startup Tarafı
Sen tek başına bir hobi projesi çıkarıyorsan, bu yaklaşım baya iş görüyor (bu konuda ikircikliyim). Namecheap. TR’den erişilebilen bir registrar, kredi kartıyla ödeme de genelde takılmadan geçiyor; 2-3 dolarlık domain’e Copilot CLI ile bağlanıp küçük bir şeyler kurmak açık konuşayım keyifli oluyor. Portfolyo sitesi, blog, minik SaaS landing page — bunların hepsi için fena değil.
Bir dakika — bununla bitmedi.
Küçük bir startup’ta CTO’ysanız ve ekipte DNS tarafına çok hâkim olmayan geliştiriciler varsa, bu otomasyon bilgi asimetrisini epey kapatıyor. Frontend developer kendi feature branch’ine kendi preview domain’ını bağlayabiliyor; yanı işin ucunda tek tek uğraşmak yerine akış biraz kendiliğinden ilerliyor.
Kurumsal Tarafı
Şunu söyleyeyim, Gel gelelim büyük kurumsal yapılara. Burada tablo değişiyor. Türkiye’deki orta ve büyük ölçekli şirketlerin çoğu domain’lerini ya Türk Telekom / Trabis üzerinden.com.tr için tutuyor ya da GoDaddy, Nokta.com gibi yerel registrar’larda yönetiyor; Namecheap kurumsal Türk şirketlerinde pek yaygın değil, o yüzden bu skill’in kutudan çıktığı hâliyle kurumsal senaryoya tam oturmadığını söylemek lazım. Azure Functions’ta MCP Apps: TypeScript ile Hızlı Başlangıç yazımızda bu konuya da değinmiştik. Daha fazla bilgi için Azure IaaS Maliyet Optimizasyonu: Sahadan FinOps Notları yazımıza bakabilirsiniz.
İkinci mesele şu: kurumsal ortamda DNS değişiklikleri genelde change management süreçlerine bağlı oluyor. Ajan bir CNAME değiştirdiğinde bunun kim tarafından ve hangi onayla yapıldığının izinin tutulması gerekiyor; şu anki skill mimarisinde audit trail tarafı yok gibi dürüyor — en azından production-grade seviyede değil, burada biraz eksik kalmış. Bu konuyla ilgili Kubernetes DRA GA: Cihaz Yönetiminde Yeni Dönem Başladı yazımıza da göz atmanızı tavsiye ederim.
Kurumsal ekipteyseniz, bunu bir “trend işareti” gibi okuyun: Registrar’lar er ya da geç AI ajanları için resmî arayüzler sunacak. Ama bugün prodüksiyona koşmak için biraz erken.
Küçük Ekipseniz vs. Büyük Kurumsal Yapıdaysanız
| Senaryo | Öneri |
|---|---|
| Solo geliştirici, yan proje | Kes at, dene. Namecheap + Copilot CLI kombinasyonu tam sana göre dürüyor. |
| 2-5 kişilik startup | Kullanabilirsin, ama API key’i 1Password/Bitwarden gibi bir vault’ta tut. IP whitelist de boş geçilmesin. |
| Kurumsal (banka, telekom, kamu) | Şimdilik uzak dur. Change management ve audit gereksinimleri karşılanmıyor; GitOps + Terraform DNS provider tarafı daha mantıklı geliyor. |
| Ajans / dijital ajans | Müşteri projeleri için pilot yap. Ama müşterinin registrar’ı.com.tr işe skill uyumsuz olabilir; orada sürpriz çıkabiliyor. |
Bir şey dikkatimi çekti: Evet.
Neyse uzatmayalım; bireyselde hızlıca işe yarayan bu model, kurumsalda aynı rahatlıkla yürümüyor çünkü izinler, kayıtlar ve onay zinciri devreye girince olayın rengi değişiyor.
Alternatif: Bütce Kısıtlıysa veya Namecheap Kullanmıyorsanız
İtiraf edeyim, Namecheap kullanmıyorsanız, hiç dert değil. Hani Türkiye’de birçok geliştirici domain tarafında Cloudflare’e kayıyor ya, aslında o yol da bayağı iş görüyor. Copilot CLI için Cloudflare skill’i de topluluk tarafından yazılmış durumda; Cloudflare hem daha ucuz kalabiliyor hem de API’si daha modern dürüyor (token bazlı, scope’lu), yanı kontrol biraz daha elinizde oluyor. Bence Türkiye’deki hobbyist’ler için burası daha mantıklı bir rota: Agent Framework Orchestration 1.0: Çoklu Ajan Koordinasyonu Yetişkin yazımızda bu konuya da değinmiştik. Microsoft Foundry Haziran 2026: Haziran’da Ne Değişti? yazımızda bu konuya da değinmiştik.
- Domain fiyatları wholesale seviyede kalabiliyor (kâr marji yok denecek kadar az) (bu kritik)
- API token’ları scope’lanabiliyor — “sadece DNS write” yetkisi verebiliyorsun
- DDoS koruması, CDN ve DNS aynı yerde toplanıyor
- Cloudflare Pages’e taşımak da kolay oluyor (GitHub Pages’e alternatif gibi düşün)
Bakın, Yanı bütçeniz sıkışıksa, Namecheap yerine Cloudflare’i deneyebilirsiniz. Aynı ajan mantığı çalışıyor, üstüne bir de token yönetimi daha temiz oluyor; lafı gevelemeden söyleyeyim, işin aslı bu kadar basit (bizzat test ettim)
İşte tam da bu noktada devreye giriyor.
Pratik Uygulama Rehberi: İlk Adımlarınız
Denemek isteyenler için, işin başı aslında sandığınız kadar karışık değil; ama sırayı biraz doğru tutmak gerekiyor, yoksa küçük bir hata gereksiz yere can sıkabiliyor.
- Copilot CLI kurulumu:
gh extension install github/gh-copilotile başlayın. GitHub Copilot aboneliği olması lazım, yoksa komut çalışsa bile kapıdan içeri giremiyorsunuz gibi oluyor. - Test repo’su: Önce production değil, neredeyse tamamen deneme amaçlı bir repo açın. Bir şey ters giderse zarar minimum olsun; hani insan ilk denemede sistemi dağıtmak istemiyor.
- Ucuz TLD deneyin: Gerçek domain’ınızı kullanmayın ilk seferinde. 2 dolara bir .click alın, üzerinde egzersiz yapın; açık konuşayım, bu işte pahalı alan adıyla başlamak biraz gereksiz risk. (bu kritik)
- API key’i vault’a koyun: Environment variable olarak shell history’ye düşürmeyin. Bir password manager kullanın; çünkü sonra dönüp bakınca “bunu niye böyle yaptım?” dedirtiyor.
- Ajanın önerdiği değişiklikleri onaylamadan önce oku: Copilot CLI genelde ne yapacağını soruyor. “Yes to all” moduna girmeyin; bazen ufak görünen bir öneri, arkada beklenmedik bir dosyaya dokunabiliyor.
- DNS propagasyonu için 5-10 dakika bekleyin:
digveyanslookupile kontrol edin. HTTPS certificate provisioning bazen 1 saati bulur, yanı hemen görünmedi diye panik yapmaya pek gerek yok.
Peki neden bunu özellikle söylüyorum? Çünkü bu tip araçlarda asıl mesele komutu çalıştırmak değil, yan etkileri yönetmek; mesela bir ekipte bunu ilk kurduğumuzda herkes “birkaç dakika sürer” sanmıştı. DNS tarafı uzayınca konu uzadı da uzadı.
Neyse, çok dağıttım, konumuza dönelim. Bu arada Copilot CLI ekosistemindeki bu tip ajan/skill mantığını daha derinlemesine anlamak isteyenlere Agent Harness ile Ajana Veri Vermek: Onay ve Hafıza Dahil yazımı öneririm. Onay mekanizmaları. Ajana güvenli veri besleme konusunda detaylara girdim; hani sadece “çalıştı mı” kısmı değil, “neye izin verdik” kısmı da önemli oluyor.
Bakın, burayı atlarsanız yazının kalanı anlamsız kalır.
Evet.
Güvenlik: API Key’in Sorumluluğu Sende
Kısacası, bir şey dikkatimi çekti: Bu konuda biraz ısrarcı olacağım, çünkü sahada en çok patlayan konu bu. AI ajanlarına credential verirken üç şeyi akılda tutun; yoksa sonra “neden çalışmadı?” diye bakıp kalıyorsunuz.
Bir: Key’i asla düz metin halinde .env dosyasına koyup repo’ya göndermeyin. Copilot CLI’ın secret storage’ını ya da OS-level keychain’i kullanın (macOS Keychain, Windows Credential Manager, Linux Secret Service); işin doğrusu bu, başka yolu var gibi görünse de çoğu zaman sonu sıkıntı oluyor.
İki: IP whitelist’i dar tutun. “Şu an evdeyim, evimin IP’sını ekleyeyim” derseniz, kafede çalışırken ajan hata verecek — ama açık konuşayım, bu kötü değil; tam tersine iyi bir alarm. Public Wi-Fi’dan API çağrısı yapmayın.
Üç: Key’i düzenli aralıklarla rotate edin. Namecheap panelinde 90 günde bir yenileyin; bazen insan üşeniyor, biliyorum, ama kurumsal ekipteyseniz bu artık tercih değil zorunluluk oluyor, bireyselseniz de sizi gereksiz dertten kurtaran düzgün bir alışkanlık.
GitHub tarafındaki secret yönetimiyle ilgileniyorsanız, GitHub Secret Scanning: Genişletilmiş Metadata. Çoklu Doğrulama yazım referans olabilir.
Benim Beklentim: Bu İş Nereye Gidiyor?
Açıkçası, Açık söyleyeyim, DNS otomasyonu AI ajanlarıyla yapılacak tek DevOps işi değil (inanın bana). Önümüzdeki 12-18 ay içinde bence şunları daha sık görmeye başlayacağız; hatta bazı yerlerde şimdiden kıpırdanma var,. Işin nereye gideceği tam net değil, yanı biraz da piyasa kendi yolunu çizecek gibi dürüyor.
Registrar’lar OAuth benzeri scoped token’lar sunmaya başlayacak. “Bu token sadece example.com’un DNS kayıtlarını değiştirebilir” gibi. Şu anki “hepsi ya da hiçbiri” yaklaşımı pek yürümüyor, açık konuşayım; ince izinler olmadan bu iş güven vermiyor, hele ki biri yanlışlıkla kök zone’a dokunursa ortalık karışıyor.
Cloud provider’lar (Azure, AWS, GCP) da benzer skill’leri kendi CLI’larına tümleşik edecek. Azure için Copilot zaten az komutlarını üretmeye başladı, ama tam ajan-native bir DNS yönetimi henüz yok. Zaman meselesi. Hatta burada ilginç olan şu: komut üretmek başka şey, o komutu güvenli akışa bağlamak başka şey; ikincisi gelmeden iş biraz yarım kalıyor gibi.
Durun, bir saniye.
Kurumsal tarafta işe ITSM sistemleriyle (ServiceNow, Jira Service Management) entegre olmayan ajan otomasyonları kabul görmeyecek. Change ticket’ı oluşturmadan production DNS değişikliği yapan bir ajan, kurumsal audit’te ilk elenen olur. Evet, bu kadar basit. Çünkü denetim ekibi romantizm sevmez; iz ister, onay ister, kayıt ister, bazen de can sıkıcı derecede çok detay ister.
Sıkça Sorulan Sorular
Copilot CLI ücretsiz mi?
Hayır, ücretsiz değil. GitHub Copilot aboneliği gerekiyor — bireysel kullanım için aylık ~10 USD, business için 19 USD. CLI aslında ayrı bir eklenti gibi görünüyor ama arkada Copilot lisansı olmadan çalışmıyor. Neyse ki öğrenciler. Açık kaynak maintainer’lar için ücretsiz Copilot seçenekleri var, bence bu oldukça adil bir yaklaşım.
Namecheap skill’i güvenli mi? Community tarafından yazıldı diyorsun.
Kodu github/awesome-copilot deposunda açıkça inceleyebilirsiniz. Ben şahsen baktım, temiz görünüyor. Ama açıkçası, community skill’i olduğu için resmî bir SLA’sı yok. Yanı bir şeyler ters giderse sizi kimse aramıyor. Hani ne farkı var diyorsunuz, değil mi? Prodüksiyonda kritik bir işte kullanacaksanız, bir fork alıp kendi kontrolünüzde tutmanızı öneririm — tecrübeme göre bu küçük önlem sonradan çok işe yarıyor.
DNS propagasyonu kaç dakika sürer?
Bence, GitHub Pages için genelde 5-15 dakika. Kısa. Ama HTTPS sertifikasının Let’s Encrypt üzerinden çıkması bazen 30-60 dakikayı bulabiliyor. “Enforce HTTPS” seçeneği aktifleşene kadar biraz sabır gerekiyor — dünya bir yere kaçmıyor hani.
.com.tr domain’ımı bu şekilde bağlayabilir mıyım?
Doğrudan hayır, maalesef..com.tr Trabis üzerinden yönetiliyor ve Trabis’in henüz bir Copilot skill’i yok. Ama şöyle bir yol var: DNS’i nameserver değişikliğiyle Cloudflare’e taşırsanız, Cloudflare skill’i üzerinden yönetim mümkün hâle geliyor. Kurumsal senaryolar için bence en mantıklı yaklaşım da bu zaten.
Ajan yanlış bir DNS kaydı yazarsa geri alabilir mıyım?
Evet, çoğu zaman mümkün. Namecheap panelinden manuel geri alma yapabilirsiniz. Ama daha iyisi şu: değişiklikten önce mevcut bir düşüneyim… kayıtların bir yedeğini alın. Mesela Copilot CLI’a “önce mevcut kayıtları listele ve kaydet” diye başlayabilirsiniz. Küçük bir alışkanlık, gerçekten büyük dertlerin önüne geçiyor — bunu bizzat yaşayarak öğrendim.
Kaynaklar ve İleri Okuma
GitHub Blog — How GitHub Copilot enables zero DNS configuration for GitHub Pages
GitHub Docs — Configuring a custom domain for your GitHub Pages site
Namecheap API Introduction — Official Documentation (buna dikkat edin)
github/awesome-copilot — Community Skills Repository
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.







Yorum gönder