GitHub Pages Nedir? Özel Domain ve SSL Kurulum Rehberi

16 Ekim 2026
Yazar: Fatih Bilgehan Bektaş
● Yazılım Rehberi
GitHub Pages Nedir? Özel Domain ve SSL Kurulum Rehberi

Geliştiriciler için portfolyo, dokümantasyon veya statik web projelerini sunucu maliyeti olmadan yayına almak GitHub Pages ile dakikalar sürer. Bu rehberde, sıfırdan depo kurulumundan özel alan adı yönlendirmesine ve otomatik SSL sertifikası aktivasyonuna kadar tüm adımları keşfedeceksiniz.

⏱️ 8 Dk Okuma🏷️ Yazılım ve Kodlama📅 15.10.2026
computer, laptop, tech, blue computer, blue laptop, blue tech, computer, laptop, tech, tech, tech, tech, tech
Fotoğraf: yeiferr / Pixabay

Modern web geliştirme ekosisteminde statik sitelerin önemi her geçen gün artmaktadır. Geleneksel dinamik sunucuların getirdiği veritabanı bakımı, yama yönetimi ve sunucu yapılandırması gibi operasyonel yükler, yalnızca HTML, CSS ve JavaScript içeren projeler için gereksiz bir maliyet yaratır. İşte bu noktada geliştiricilerin karşısına çıkan en etkili çözüm GitHub Pages servisidir. Kodlarınızı depoladığınız Git deposu üzerinden doğrudan yayın yapmanıza olanak tanıyan bu platform, karmaşık sunucu süreçlerini tamamen ortadan kaldırır.

Bir yazılımcı olarak kişisel blogunuzu, açık kaynak projenizin tanıtım sayfasını veya kariyerinizi sergilediğiniz portfolyo sitenizi barındırmak için pahalı hosting paketlerine ihtiyacınız yoktur. GitHub Pages, projelerinizi doğrudan bir Git dalından (branch) okuyarak dünya standartlarında bir CDN altyapısıyla kullanıcılara ulaştırır. Üstelik bu süreç, GitHub'ın kendi altyapısı sayesinde yüksek erişilebilirlik ve otomatik dağıtım avantajlarıyla birlikte sunulur.

Bu kapsamlı rehberde, 'GitHub Pages nedir?' sorusunun teknik temellerinden başlayarak adım adım bir web sitesini nasıl canlıya alacağınızı inceleyeceğiz. Ardından projenizi varsayılan 'github.io' uzantısından kurtarıp kendi özel alan adınıza (custom domain) nasıl bağlayacağınızı ve Let's Encrypt destekli SSL sertifikasını nasıl sorunsuz aktif edeceğinizi somut örneklerle öğreneceksiniz.

Bölüm 01GitHub Pages Nedir ve Hangi Projeler İçin Uygundur?

Madde 01

GitHub Pages Mimarisi ve Çalışma Mantığı

GitHub Pages, GitHub depolarınızda barındırdığınız dosyaları doğrudan web üzerinden yayınlayan statik bir web barındırma hizmetidir. Sistemin temelinde, HTML, CSS ve JavaScript gibi istemci tarafında çalışan dosyaların bir HTTP sunucusu aracılığıyla derlenip sunulması yatar. Deponuza yeni bir commit gönderdiğinizde, GitHub arka planda bir derleme işlemi tetikler ve sitenizi otomatik olarak günceller. Sunucu taraflı PHP, Python veya Ruby kodları çalıştıramaz; ancak istemci tarafında çalışan her türlü modern web teknolojisiyle kusursuz bir uyum içinde çalışır.
Madde 02

Statik ve Dinamik Web Ayrımı: Desteklenen Teknolojiler

GitHub Pages üzerinde çalışacak sitelerin statik yapıda olması şarttır. Bu durum projenizin yeteneksiz olacağı anlamına gelmez; React, Vue, Svelte veya Angular gibi modern kütüphanelerle geliştirilen uygulamalar derleme (build) çıktısı olan statik HTML/JS paketine dönüştürülerek burada sorunsuzca barındırılabilir. Ayrıca Jekyll, Astro veya Hugo gibi popüler statik site üreteçleri (SSG) de tam uyumludur. Veritabanı gerektiren kullanıcı giriş sistemleri veya dinamik sorgular içinse üçüncü taraf API servisleri ve sunucusuz (serverless) mimariler tercih edilmelidir.
Madde 03

Kullanım Senaryoları: Kimler İçin İdeal?

Platform özellikle yazılımcı portfolyoları, açık kaynak yazılım dokümantasyonları ve kişisel bloglar için mükemmel bir tercihtir. Kendi dijital kimliğinizi sergilemek istediğinizde, projenizi doğrudan GitHub profilinize bağlamak teknik şeffaflık ve güvenilirlik sağlar. Yeni bir ürün ya da kütüphane geliştirdiğinizde, tanıtım sayfasını aynı deponun dokümantasyon dalında tutmak proje yönetimini ciddi oranda kolaylaştırır. Üstelik minimum bakım gereksinimi sayesinde siteniz yıllarca kesintisiz yayında kalabilir.
Madde 04

Sınırlar, Kotalar ve Adil Kullanım İlkeleri

Platform ücretsiz olsa da belirli teknik sınırlar çerçevesinde hizmet verir. Örneğin GitHub'ın resmi dokümanlarında tavsiye edilen depo boyutu sınırı 1 GB iken, siteler için aylık yaklaşık 100 GB bant genişliği kotası önerilmektedir. Ayrıca saatte 10 derlemeden fazla tetikleme yapıldığında hız sınırlamaları devreye girebilir. Bu altyapı kesinlikle yüksek hacimli e-ticaret siteleri, yasa dışı dosya paylaşımı veya kripto madenciliği gibi yoğun kaynak tüketen operasyonlar için tasarlanmamıştır.
fiber optic, cable, blue, network, technology, communication, speed, fiber, data, internet, connection, digital, computer, ethernet, telecommunication, light, web, equipment, transfer, modern, tech, blue computer, blue technology, blue laptop, blue light, blue data, blue network, blue community, blue internet, blue digital, blue communication, blue tech, blue web, blue lights, fiber optic, fiber optic, network, fiber, data, telecommunication, telecommunication, tech, tech, tech, tech, tech
Fotoğraf: chaitawat / Pixabay

Bölüm 02Sıfırdan Web Sitesini GitHub Pages ile Yayına Alma

Madde 05

Depo (Repository) Türünü Belirleme ve Adlandırma

GitHub Pages iki temel yayın türü sunar: Kullanıcı sitesi ve Proje sitesi. Kullanıcı sitesi oluşturmak için deponuzun adını kesinlikle 'kullaniciadi.github.io' formatında tanımlamanız gerekir; bu sayede siteniz doğrudan bu kök adreste açılır. Proje sitelerinde ise deponuza dilediğiniz adı verebilirsiniz, örneğin 'portfolyo' adlı bir depo 'kullaniciadi.github.io/portfolyo' adresinde yayınlanır. Deponuzu oluştururken 'Public' (Herkese Açık) seçeneğini işaretlemeyi unutmamalısınız, çünkü ücretsiz planlarda Pages yalnızca açık depolarda çalışır.
Madde 06

Projeyi Git ile Depoya Gönderme (Push)

Yerel makinenizde bir 'index.html' dosyası oluşturup terminalinizi açın. Sırasıyla 'git init', 'git add .', 'git commit -m "İlk commit"' komutlarını çalıştırarak yerel değişiklikleri kaydedin. Ardından GitHub'da oluşturduğunuz depoyu uzak sunucu olarak eklemek için 'git remote add origin https://github.com/kullaniciadi/depoadi.git' komutunu girin. Son adımda 'git branch -M main' ve 'git push -u origin main' komutlarıyla kodlarınızı depoya göndererek barındırma altyapısına ilk verinizi aktarmış olursunuz.
Madde 07

Settings Menüsünden Pages Dağıtımını Yapılandırma

Kodları gönderdikten sonra GitHub üzerinde deponuzun 'Settings' (Ayarlar) sekmesine gidin. Sol menüde yer alan 'Pages' bağlantısına tıklayarak dağıtım ayarlarına ulaşın. 'Build and deployment' başlığı altında yer alan 'Source' kısmında 'Deploy from a branch' seçeneğini işaretleyin. Hemen altındaki 'Branch' açılır menüsünden 'main' (veya kodlarınız neredeyse o dalı) ve kök dizin için '/ (root)' seçimini yapıp 'Save' butonuna tıklayın. Sayfayı yenilediğinizde sitenizin yayın linkini gösteren yeşil bir bildirim kutusu göreceksiniz.
Madde 08

GitHub Actions ile Otomatik CI/CD Süreci

Gelişmiş projelerde, örneğin React veya Vue kullanıyorsanız, ham dosyaları doğrudan yayınlamak yerine GitHub Actions iş akışlarını kullanabilirsiniz. Pages ayarlarındaki kaynak bölümünü 'GitHub Actions' olarak değiştirdiğinizde, platform popüler frameworkler için hazır şablonlar önerir. Bu işlem deponuza '.github/workflows/deploy.yml' adında bir dosya ekler. Böylece ana dala her 'push' yaptığınızda sistem otomatik olarak bağımlılıkları kurar, 'npm run build' komutunu çalıştırır ve üretilen statik çıktıyı kesintisiz şekilde yayına alır.

Bölüm 03Özel Alan Adı (Custom Domain) Bağlama Süreci

Madde 09

CNAME Dosyasının Mantığı ve Otomatik Oluşturulması

GitHub Pages'e sitenizi kendi alan adınızla sunacağını bildirmek için deponun ana dizininde 'CNAME' adında uzantısız bir dosya bulunmalıdır. Bu dosyanın içinde yalnızca alan adınız (örneğin 'ornekdomain.com' veya 'www.ornekdomain.com') yer almalıdır. Deponun Settings > Pages ekranındaki 'Custom domain' kutusuna alan adınızı yazıp 'Save' dediğinizde, GitHub bu CNAME dosyasını otomatik olarak oluşturup ana dalınıza commit eder. Elle dosya oluşturuyorsanız dosya adının büyük harflerle yazıldığından ve gereksiz boşluk içermediğinden emin olmalısınız.
Madde 10

DNS A Kayıtları ile Kök Alan Adı (Apex Domain) Yönlendirmesi

Sitenizi 'ornekdomain.com' gibi başında www olmadan kök adreste çalıştırmak istiyorsanız, alan adı sağlayıcınızın (Cloudflare, GoDaddy, Namecheap vb.) DNS paneline gitmelisiniz. Burada ana dizin için (@ simgesiyle temsil edilir) 4 adet 'A' kaydı eklemeniz gerekir. Bu kayıtların yönlendirileceği GitHub sunucu IP adresleri şunlardır: 185.199.108.153, 185.199.109.153, 185.199.110.153 ve 185.199.111.153. Dört IP adresini de ayrı birer A kaydı olarak eklemek, küresel CDN yük dengelemesi açısından zorunludur.
Madde 11

CNAME Kaydı ile Alt Alan Adı (Subdomain) Yapılandırması

Kullanıcıların sitenize 'www.ornekdomain.com' veya 'blog.ornekdomain.com' gibi bir alt alan adı üzerinden ulaşmasını istiyorsanız bir CNAME kaydı tanımlamalısınız. DNS yönetim panelinizde yeni bir kayıt oluşturup türünü 'CNAME', ad (name/host) kısmını 'www' (veya belirlediğiniz alt alan adı) yapın. Hedef (target/value) kısmına ise deponuzun varsayılan adresi olan 'kullaniciadi.github.io.' değerini yazın. Bu yönlendirme, gelen alt alan adı isteklerinin doğrudan GitHub sunucularına aktarılmasını sağlar.
Madde 12

DNS Yayılımı (Propagation) Takibi ve Doğrulama

DNS kayıtlarını girdikten sonra değişikliklerin dünya genelindeki DNS sunucularına yayılması biraz zaman alabilir. Bu süre sağlayıcınıza ve TTL süresine bağlı olarak örneğin 5 dakika ile birkaç saat arasında değişir. Değişikliklerin oturup oturmadığını terminalinizden 'dig ornekdomain.com +nostats +nocomments +nocmd' veya 'nslookup ornekdomain.com' komutlarıyla test edebilirsiniz. Kayıtlar GitHub IP'lerini döndürmeye başladığında alan adınız başarıyla bağlanmış demektir.

Bölüm 04Ücretsiz SSL / HTTPS Kurulumu ve Güvenlik Adımları

Madde 13

Enforce HTTPS Özelliğini Aktifleştirme

Arama motoru sıralamaları ve kullanıcı güvenliği için sitenizin HTTPS üzerinden sunulması şarttır. GitHub Pages, Let's Encrypt altyapısını kullanarak tüm özel alan adlarına ücretsiz SSL sertifikası tahsis eder. Alan adı doğrulandıktan sonra Settings > Pages menüsündeki 'Enforce HTTPS' kutucuğu tıklanabilir hale gelir. Bu seçeneği işaretlediğinizde, sitenize HTTP üzerinden gelen tüm ziyaretçiler otomatik olarak güvenli HTTPS protokolüne yönlendirilir.
Madde 14

Sertifika Üretim Süreci ve Bekleme Süresi

Özel alan adınızı ekledikten hemen sonra 'Enforce HTTPS' seçeneği pasif veya devre dışı görünebilir. Bu durum bir hata değildir; GitHub arka planda Let's Encrypt sunucularıyla haberleşerek alan adı sahipliğini doğrulamakta ve sertifikayı imzalamaktadır. DNS kayıtlarınız doğru yapılandırılmışsa bu süreç genellikle 15-30 dakika içinde tamamlanır. Paneli belirli aralıklarla yenileyerek 'Enforce HTTPS' butonunun aktifleştiğini gördüğünüzde kutucuğu işaretlemeniz yeterlidir.
Madde 15

Mixed Content (Karışık İçerik) Hatalarını Giderme

SSL sertifikanız aktif olduğu halde tarayıcılarda 'Güvenli Değil' uyarısı alıyorsanız, bunun sebebi büyük olasılıkla karışık içerik (mixed content) hatasıdır. Siteniz HTTPS üzerinden yüklenirken, HTML dosyalarınızdaki resim, yazı tipi veya harici JS kütüphaneleri 'http://' protokolüyle çağrılıyorsa tarayıcı güvenlik kilidini kırar. Çözüm için tüm harici bağlantıların protokolünü 'https://' olarak güncellemeli veya doğrudan '//cdn.ornek.com/stil.css' gibi protokolden bağımsız relatif yollar kullanmalısınız.
Madde 16

Alan Adı Sahipliği Doğrulama (Custom Domain Verification)

Başka bir GitHub kullanıcısının sizin alan adınızı kendi deposuna bağlamasını engellemek için alan adı sahipliğinizi profil seviyesinde doğrulayabilirsiniz. GitHub hesabınızın Settings > Pages sekmesine gidip 'Add a domain' butonuna tıklayın. GitHub size özel bir 'TXT' doğrulama kaydı ve rastgele bir token verecektir. Bu TXT kaydını alan adı DNS panelinize ekledikten sonra 'Verify' butonuna basarak alan adınızı hesabınıza kilitleyebilir ve yetkisiz yönlendirmelerin önüne geçebilirsiniz.

Bölüm 05Yaygın Hatalar, Sorun Giderme ve En İyi Uygulamalar

Madde 17

404 Not Found Hatası ve Base URL Yanılgıları

GitHub Pages'e yeni başlayanların en sık karşılaştığı sorun, proje sitelerinde CSS ve JS dosyalarının yüklenmeyerek 404 hatası vermesidir. Projeniz kök dizinde değil de 'kullaniciadi.github.io/proje-adi' altında çalışıyorsa, asset yollarını '/stil.css' yerine './stil.css' veya '/proje-adi/stil.css' olarak tanımlamalısınız. Vite veya Webpack gibi derleyiciler kullanıyorsanız, yapılandırma dosyasındaki 'base' parametresini mutlaka repo adınızla ('/proje-adi/') eşleştirmeniz gerekir.
Madde 18

Jekyll Çakışmaları ve .nojekyll Dosyasının Gücü

GitHub Pages varsayılan olarak tüm depoları Jekyll motoruyla işlemeye çalışır. Bu motor, alt çizgi ile başlayan dizinleri (örneğin Next.js veya modern build araçlarının ürettiği '_next' klasörünü) yok sayar ve derlemeden çıkarır. Bu durum sitenizin stillerinin tamamen bozulmasına yol açar. Sorunu çözmek için projenizin ana dizinine (root) '.nojekyll' adında tamamen boş bir dosya eklemeniz yeterlidir; bu dosya GitHub'a Jekyll motorunu devre dışı bırakmasını söyler.
Madde 19

Tek Sayfa Uygulamalarında (SPA) Yönlendirme ve 404.html

React Router veya Vue Router gibi istemci taraflı yönlendirme kullanan SPA uygulamalarında, kullanıcı doğrudan 'site.com/hakkimda' linkini açtığında GitHub sunucusu o adda bir HTML dosyası bulamadığı için 404 hatası verir. Bu sorunu aşmak için 'index.html' dosyanızın bir kopyasını oluşturup adını '404.html' yapabilirsiniz. GitHub sunucusu bulunamayan rotalarda bu dosyayı yükler; istemci tarafındaki JavaScript yönlendiricisi devreye girerek doğru rotayı ekrana basar.
Madde 20

Statik Sitelerde Form Yönetimi ve Dinamik Fonksiyonlar

GitHub Pages sunucu tarafı çalıştırmadığı için 'action="mail.php"' gibi geleneksel form gönderme yöntemleri çalışmaz. İletişim formları, kullanıcı geri bildirimleri veya bülten kayıtları için sunucusuz form işleme servislerinden yararlanmanız gerekir. Örneğin Formspree, Basin veya Formkeep gibi ücretsiz katman sunan API servislerini formunuzun 'action' parametresine bağlayarak ziyaretçi mesajlarını doğrudan e-posta adresinize veya veritabanınıza yönlendirebilirsiniz.

💡 Pratik İpucu: Vite veya React Projelerinde Otomatik Dağıtım

Eğer Vite tabanlı bir React veya Vue projesini GitHub Pages'e yüklüyorsanız, her derlemeden sonra 'dist' klasörünü elle kopyalamakla uğraşmayın. Projenize 'gh-pages' paketini geliştirici bağımlılığı olarak kurun ('npm i -D gh-pages'). Ardından 'package.json' dosyanıza '"deploy": "gh-pages -d dist"' komutunu ekleyin. Kodlarınızı güncelledikten sonra yalnızca 'npm run build && npm run deploy' komutunu çalıştırarak sitenizi saniyeler içinde otomatik olarak özel bir 'gh-pages' dalına gönderip yayına alabilirsiniz.

Sonuç

GitHub Pages, modern web geliştiricileri için hem maliyetsiz hem de teknik açıdan son derece sağlam bir barındırma çözümü sunar. Birkaç temel Git komutu ve doğru yapılandırılmış DNS kayıtları ile dakikalar içinde profesyonel bir web sitesini kendi alan adınız ve SSL güvencesiyle dünyaya açabilirsiniz. Karmaşık sunucu yönetimleriyle vakit kaybetmek yerine odak noktanızı sadece kaliteli kod yazmaya çevirebilirsiniz. Şimdi yerel terminalinizi açın, ilk deponuzu oluşturun ve dijital portfolyonuzu tüm dünyayla paylaşın.

SSSSıkça Sorulan Sorular

GitHub Pages tamamen ücretsiz mi, gizli bir ücretlendirme var mı?
GitHub Pages, açık (public) depolara sahip bireysel geliştiriciler ve açık kaynak projeler için tamamen ücretsizdir. Kendi alan adınızı kullanmak isterseniz yalnızca alan adı tescil firmasına ödeyeceğiniz yıllık domain ücreti maliyetiniz olur; barındırma ve SSL için GitHub hiçbir ücret talep etmez. Gizli bir abonelik veya kota aşımında otomatik para çekme mekanizması bulunmamaktadır.
GitHub Pages üzerinde PHP, Node.js veya Python backend çalıştırabilir miyim?
Hayır, GitHub Pages yalnızca statik içerikleri (HTML, CSS, JavaScript ve medya dosyaları) sunabilen bir mimariye sahiptir. Sunucu taraflı PHP, Node.js veya Python kodları çalıştırılamaz ve doğrudan MySQL gibi bir veritabanına bağlanılamaz. Dinamik işlemler için harici REST API'ler veya Firebase, Supabase gibi BaaS servisleri tercih edilmelidir.
Özel alan adı bağladığımda SSL sertifikası için Let's Encrypt ücreti öder miyim?
Kesinlikle hayır; GitHub Pages, eklediğiniz tüm geçerli özel alan adları için Let's Encrypt aracılığıyla otomatik ve ücretsiz SSL sertifikası üretir. Sertifikanın süresi dolduğunda yenileme işlemleri de arka planda GitHub tarafından otomatik olarak yürütülür, geliştiricinin manuel müdahalesine gerek kalmaz.
Bir GitHub hesabında birden fazla web sitesi barındırabilir miyim?
Evet, hesabınızda yalnızca 1 adet 'kullaniciadi.github.io' ana kullanıcı sitesi barındırabilirsiniz; ancak dilediğiniz sayıda proje deposu oluşturup her biri için ayrı Pages yayını açabilirsiniz. Her bir proje deposu varsayılan olarak 'kullaniciadi.github.io/proje-adi' adresinde çalışır ve isterseniz her projeye ayrı bir özel alan adı da bağlayabilirsiniz.
GitHub Pages siteme kendi alan adımı bağladığımda GitHub reklamı görüntülenir mi?
Hayır, GitHub Pages sitelerinizin içine kesinlikle kendi reklamlarını, bannerlarını veya logosunu yerleştirmez. Siteniz tamamen sizin yazdığınız kodlardan ibaret olur ve kullanıcılar sitenizin arkasında GitHub Pages altyapısı olduğunu kaynak kodunu incelemedikçe anlayamaz.

Daha Fazla İçerik