Açık Kaynak Uygulamalar

    Hugo Nedir ve Hızlı Statik Site Oluşturma Rehberi

    Go ile yazılmış, saniyeler içinde binlerce sayfa derleyen çok hızlı açık kaynak statik site üreticisi Hugo rehberi.

    13 dk okuma Güncellendi: 10 Temmuz 2026

    Bir web sitesi yayına almanın en pahalı yanı çoğu zaman görünmeyen taraftır: her sayfa isteğinde çalışan bir uygulama sunucusu, ona bağlı bir veritabanı, ikisini ayakta tutan bakım ve güncelleme yükü. Oysa çoğu blog, dokümantasyon sitesi, kurumsal tanıtım sayfası ya da kişisel portföy aslında hiç değişmeyen içerik sunar. İşte Hugo tam bu noktada devreye giriyor. İçeriğinizi yazma anında bir kez HTML'e çevirip, ziyaretçiye hazır dosyalar sunan bir statik site üreticisidir (static site generator). Sonuç; veritabanı olmayan, saldırı yüzeyi neredeyse sıfıra inen ve göz açıp kapayana kadar açılan bir sitedir.

    Bu rehberde Hugo'nun ne olduğunu ve neden "en hızlı statik site üreticisi" olarak anıldığını anlatacağız. Kurulumdan tema eklemeye, Markdown ile içerik üretmekten siteyi derlemeye (build) ve hazır dosyaları bir sunucuda yayınlamaya kadar tüm iş akışını gerçek komutlarla göreceksiniz. Konuya yeni başlıyor olsanız bile, sonunda ilk sitenizi ayağa kaldırıp yayınlayacak kadar net bir yol haritasıyla çıkmanız amaçlanıyor. Anlatım kıdemli bir sistem yöneticisinin bir müşteriye omuz omuza gösterdiği gibi, adım adım ve gerekçeleriyle ilerliyor.

    Hugo Nedir ve Neden Bu Kadar Hızlı#

    Hugo, Google'ın geliştirdiği Go diliyle yazılmış, açık kaynaklı bir statik site üreticisidir. Görevi basit ama etkilidir: yazdığınız Markdown dosyalarını, seçtiğiniz temanın şablonlarıyla birleştirip klasör dolusu hazır HTML, CSS ve JavaScript dosyasına dönüştürür. Bu dosyalar tamamen "durağandır"; yani her ziyaretçi için yeniden üretilmezler, olduğu gibi sunulurlar.

    Hugo'nun ününü kazandığı asıl özellik hızıdır. Go dilinin derlenmiş yapısı ve içeriği paralel işleyen mimarisi sayesinde Hugo, sayfa başına milisaniyeler mertebesinde bir sürede çalışır. Binlerce sayfalık büyük bir siteyi bile çoğu zaman saniyeler içinde derler. Karşılaştırıldığında, benzer işi yapan bazı araçlar aynı içerik için dakikalarca uğraşır. Bu fark küçük bir blogda hissedilmese de, yüzlerce yazı biriktikçe her build işleminde beklediğiniz süreye doğrudan yansır.

    Hugo'yu cazip kılan diğer noktalar şöyle özetlenebilir:

    • Tek çalıştırılabilir dosya: Hugo, bağımlılık zinciri olmayan tek bir ikili (binary) dosyadan ibarettir. Node.js, Ruby veya PHP gibi bir çalışma ortamı kurmanıza gerek yoktur.
    • Veritabanı yok: Site tamamen dosyalardan oluşur. Bu, hem kurulumu hem de yedeklemeyi radikal biçimde basitleştirir.
    • Güvenlik: Çalışan bir uygulama sunucusu ve veritabanı olmadığı için SQL enjeksiyonu, eklenti açığı gibi klasik saldırı vektörlerinin çoğu ortadan kalkar.
    • Yerleşik özellikler: Görsel işleme (image processing), çoklu dil desteği, otomatik sitemap.xml, RSS beslemesi, sözdizimi renklendirme ve taksonomi (etiket/kategori) sistemi kutudan çıkar.

    Kısacası Hugo, "içeriği yaz, tek komutla siteye çevir, dosyaları herhangi bir yere koy" felsefesi üzerine kuruludur. Bu sadelik onu hem geliştiriciler hem de teknik altyapı yükünden kaçınmak isteyen içerik üreticileri için çekici kılar.

    Statik Site Üreticisi Ne Demek#

    Statik ve dinamik site ayrımını netleştirmek, Hugo'nun neden farklı bir yerde durduğunu anlamanın anahtarıdır. Dinamik bir sitede (örneğin klasik bir WordPress kurulumunda) her sayfa isteğinde sunucuda bir program çalışır: veritabanından veri çeker, şablonla birleştirir ve o an HTML üretip tarayıcıya gönderir. Bu, içeriğin anlık değiştiği durumlarda güçlüdür ama her istekte işlemci ve bellek harcar.

    Statik bir sitede ise bu iş bir kez, siz içeriği yayınlarken yapılır. Hugo sitenizi derlediğinde ortaya public/ adlı bir klasör çıkar; içinde her sayfanın hazır .html dosyası vardır. Ziyaretçi geldiğinde web sunucusu yalnızca bu dosyayı diskten okuyup gönderir. Aradaki tüm hesaplama ortadan kalktığı için sonuç çok daha hızlı ve çok daha az kaynak tüketen bir sitedir.

    İki yaklaşımın farkını tablo halinde görmek işleri netleştirir:

    ÖzellikStatik Site (Hugo)Dinamik Site (WordPress vb.)
    Sayfa üretimiYayın anında bir kezHer ziyarette yeniden
    VeritabanıYokGerekli (MySQL vb.)
    Sunucu ihtiyacıBasit dosya sunucusuPHP/uygulama + veritabanı
    Güvenlik yüzeyiÇok darGeniş (eklenti, DB, oturum)
    HızÇok yüksekÖnbelleğe bağımlı
    Dinamik işlevlerSınırlı (harici servisle)Yerleşik

    Statik yaklaşımın doğal bir sınırı vardır: yorum sistemi, üyelik girişi veya arama gibi "anlık" işlevler için doğrudan bir çözüm sunmaz. Bunlar genellikle harici servislerle (üçüncü parti yorum aracı, JavaScript tabanlı istemci arama, form servisi) eklenir. İçeriği ağırlıklı olarak yayınlanıp okunan bir site kuruyorsanız bu sınır çoğu zaman hiç canınızı sıkmaz; ama karmaşık, kullanıcıya özel ve sürekli değişen bir uygulama hedefliyorsanız dinamik bir altyapı daha uygun olur.

    Hugo'yu Kurmak#

    Hugo tek bir çalıştırılabilir dosya olduğu için kurulumu şaşırtıcı derecede kolaydır. Birkaç yaygın senaryoyu görelim. Ubuntu/Debian tabanlı bir sistemde depo üzerinden hızlıca kurabilirsiniz:

    # Depodaki paketi kur (basit ama sürümü biraz eski olabilir)
    sudo apt update
    sudo apt install hugo -y
    
    # Sürümü doğrula
    hugo version
    

    Depo sürümü çoğu zaman biraz geride kalır. Hugo'nun modern tema özelliklerini kullanacaksanız güncel sürümü almanız önerilir. En güncel ikiliyi resmi sürüm sayfasından .deb paketi olarak indirip kurmak en pratik yoldur:

    # Sürüm numarasını güncel olanla değiştirin
    cd /tmp
    wget https://github.com/gohugoio/hugo/releases/download/v0.140.0/hugo_extended_0.140.0_linux-amd64.deb
    sudo dpkg -i hugo_extended_0.140.0_linux-amd64.deb
    hugo version
    

    Burada dikkat edilmesi gereken kritik bir ayrıntı var: extended sürümünü kurun. Hugo'nun "extended" sürümü Sass/SCSS derleme ve gelişmiş görsel işleme desteğiyle gelir; birçok modern tema bu sürümü zorunlu tutar. hugo version çıktısında +extended ibaresini görmelisiniz. macOS'ta Homebrew ile brew install hugo, Windows'ta ise Winget veya Chocolatey ile kurulum yapılabilir; hepsinde mantık aynıdır: tek bir ikili dosya sisteme eklenir.

    Kurulumdan sonra ilk sitenizin iskeletini oluşturmak tek komuttur:

    # "sitem" adında yeni bir Hugo projesi oluştur
    hugo new site sitem
    cd sitem
    

    Bu komut, altında content/, themes/, static/, layouts/ gibi klasörler ve bir hugo.toml yapılandırma dosyası bulunan temiz bir proje ağacı üretir. İçeriğiniz content/, temanız themes/, resim ve indirilebilir dosyalarınız ise static/ altında yaşar. Bu düzeni bir kez kavradığınızda gerisi akıp gider.

    Bir Tema Ekleme#

    Yeni oluşturulan bir Hugo sitesi başlangıçta boştur; görünümü temalar belirler. Hugo topluluğunun yüzlerce ücretsiz teması vardır ve çoğu Git deposu olarak dağıtılır. En temiz yöntem, temayı bir Git submodule olarak eklemektir; böylece tema güncellemelerini kolayca çekebilirsiniz. Önce projenizi bir Git deposuna çevirin:

    # Projeyi Git deposu yap
    git init
    
    # Popüler "Ananke" temasını submodule olarak ekle
    git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
    

    Ardından Hugo'ya hangi temayı kullanacağını söylemeniz gerekir. Bunu yapılandırma dosyasında belirtirsiniz. Yeni Hugo sürümleri varsayılan olarak TOML biçimini kullanır; hugo.toml dosyanızı şöyle düzenleyebilirsiniz:

    baseURL = "https://ornek.com/"
    languageCode = "tr-tr"
    title = "Benim Hugo Sitem"
    theme = "ananke"
    
    [params]
      description = "Hugo ile kurulmuş hızlı bir statik site"
    

    Bazı temalar örnek yapılandırmayı YAML biçiminde sunar. Aynı ayarların YAML karşılığı (hugo.yaml) şöyle görünür:

    baseURL: "https://ornek.com/"
    languageCode: "tr-tr"
    title: "Benim Hugo Sitem"
    theme: "ananke"
    params:
      description: "Hugo ile kurulmuş hızlı bir statik site"
    

    İki biçim işlevsel olarak eşdeğerdir; projenizde yalnızca birini kullanın. Tema seçerken sadece görünüme değil, aktif olarak bakılıp bakılmadığına da dikkat edin: son güncelleme tarihi yakın, dokümantasyonu düzgün ve extended sürüm gerektiren temalar genellikle daha sağlıklıdır. Bir temayı denedikten sonra beğenmezseniz, hugo.toml içindeki theme değerini değiştirip başka bir temaya saniyeler içinde geçebilirsiniz — içeriğinize hiç dokunmadan.

    İçerik Oluşturma ve Markdown İş Akışı#

    Hugo'nun asıl keyfi içerik üretme akışında ortaya çıkar. Her yazı veya sayfa, content/ klasörü altında bir Markdown (.md) dosyasıdır. Yeni bir yazı oluşturmak için Hugo'nun kendi komutunu kullanabilirsiniz:

    # content/posts/ilk-yazi.md dosyasını arketiple oluştur
    hugo new posts/ilk-yazi.md
    

    Bu komutun oluşturduğu dosya, en üstte frontmatter adı verilen bir meta veri bloğuyla gelir. Frontmatter, o sayfanın başlığını, tarihini, taslak durumunu ve etiketlerini tutar. Gövde ise saf Markdown'dur:

    ---
    title: "İlk Yazım"
    date: 2026-07-10T10:00:00+03:00
    draft: false
    tags: ["hugo", "başlangıç"]
    categories: ["genel"]
    ---
    
    Bu benim Hugo ile yazdığım **ilk** yazım. Markdown ile
    başlıklar, listeler, bağlantılar ve kod blokları eklemek
    son derece kolay.
    
    ## Bir Alt Başlık
    
    - Madde bir
    - Madde iki
    
    Kod örneği de verebilirim:
    
        echo "Merhaba Hugo"
    

    Buradaki draft: false ayarı önemlidir: true olan taslaklar varsayılan derlemeye dahil edilmez, böylece bitmemiş yazıları yanlışlıkla yayınlamazsınız. date alanı yazının sıralanmasında ve arşivlenmesinde kullanılır. Markdown'ın bütün olağan söz dizimini (başlıklar, kalın/italik metin, listeler, tablolar, bağlantılar, görseller, kod blokları) doğrudan kullanabilirsiniz; ayrıca Hugo'nun shortcode denilen kısa kod parçaları sayesinde bir Markdown dosyasının içine video gömme, resim galerisi ekleme gibi zengin öğeleri de temiz bir söz dizimiyle koyabilirsiniz.

    Bu iş akışının en sevilen yanı, içeriğin kod editörünüzden ve versiyon kontrolünden ayrılmamasıdır. Yazılarınız düz metin dosyaları olduğu için Git ile sürüm takibi yapar, geçmişe dönebilir ve ekipçe düzenleyebilirsiniz. Aynı dosya tabanlı, Markdown odaklı mantığı seven ama tarayıcı üzerinden bir editör isteyen okuyucular, benzer felsefeyi paylaşan Ghost blog kurulumu rehberimize de göz atmak isteyebilir.

    Siteyi Derleme (Build) ve Yerel Önizleme#

    İçeriği yazarken sonucu canlı görmek istersiniz. Hugo'nun yerleşik geliştirme sunucusu tam da bunun için vardır. Proje kökünde şu komutu çalıştırın:

    # Taslakları da göstererek yerel sunucuyu başlat
    hugo server -D
    

    Bu komut, http://localhost:1313 adresinde anlık bir önizleme sunucusu ayağa kaldırır. -D bayrağı taslak (draft: true) yazıları da dahil eder, böylece henüz yayınlanmamış içeriği önizleyebilirsiniz. Hugo'nun en tatlı özelliklerinden biri canlı yeniden yükleme (live reload): bir Markdown dosyasını kaydettiğiniz an tarayıcı otomatik olarak güncellenir. Yazı yazarken kodu ve sonucu yan yana görürsünüz.

    Site yayına hazır olduğunda gerçek dosyaları üretme zamanı gelir. Bu, tek bir komuttur:

    # Statik siteyi public/ klasörüne derle
    hugo --minify
    

    hugo komutu (bayrak olmadan) sitenizi tarar, tüm Markdown'ı işler ve nihai HTML/CSS/JS dosyalarını public/ klasörüne yazar. --minify bayrağı çıktı dosyalarını sıkıştırarak boyutlarını küçültür ve sayfaların daha da hızlı yüklenmesini sağlar. Derleme bittiğinde terminalde işlenen sayfa sayısını ve geçen süreyi görürsünüz — çoğu sitede bu süre bir saniyenin altındadır. İşte bu public/ klasörünün içeriği, bundan sonra herhangi bir sunucuya koyacağınız "sitenizin" ta kendisidir. Klasörün taşınabilirliği tam da statik sitenin süper gücüdür: bir USB belleğe kopyalasanız ve başka bir sunucuya taşısanız site aynen çalışır.

    Statik Hosting'e Dağıtım#

    Elinizde public/ klasörü olduğunda geriye tek bir iş kalır: bu dosyaları ziyaretçilerin erişebileceği bir yere koymak. Statik siteler için barındırma seçenekleri son derece esnektir çünkü çalışan bir uygulamaya değil, yalnızca dosya sunabilen bir yere ihtiyaç vardır. En yaygın iki yaklaşımı görelim.

    1. Paylaşımlı hosting veya cPanel ile. En kolay yöntem, public/ klasörünün içeriğini bir web barındırma hesabının public_html dizinine yüklemektir. Dosyaları FTP/SFTP ile taşıyabilir ya da cPanel dosya yöneticisiyle sürükleyip bırakabilirsiniz. Statik siteler PHP veya veritabanı gerektirmediğinden en ekonomik web hosting paketleri bile bu iş için fazlasıyla yeterlidir; hatta düşük kaynak tüketimi sayesinde çok hızlı çalışırlar.

    2. Kendi sunucunuzda Nginx ile. Bir sanal sunucu üzerinde tam kontrol istiyorsanız, public/ klasörünü sunucuya rsync ile taşıyıp Nginx ile yayınlamak temiz bir çözümdür. Önce dosyaları gönderin:

    # Yerel public/ klasörünü sunucudaki hedef dizine kopyala
    rsync -avz --delete public/ kullanici@sunucu-ip:/var/www/ornek.com/
    

    --delete bayrağı, sunucuda artık üretilmeyen eski dosyaları da temizler; böylece hedef her zaman son derlemeyle birebir aynı kalır. Ardından Nginx tarafında basit bir statik dosya sunucusu tanımlarsınız:

    server {
        listen 80;
        listen [::]:80;
        server_name ornek.com www.ornek.com;
    
        root /var/www/ornek.com;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    

    Bu yapılandırma, gelen isteği doğrudan diskteki dosyayla eşler; uygulama sunucusu veya PHP işleme yoktur, dolayısıyla çok hızlıdır. Nginx kurulumu ve server block mantığını daha ayrıntılı görmek isterseniz sunucu tarafındaki adımları kendi rehberlerimizde bulabilirsiniz. Son adım olarak alan adınızın Hugo sitesini gösterdiğinden emin olun; alan adınızın A kaydını sunucunuzun IP'sine yönlendirin:

    ; Alan adı DNS bölgesi
    ornek.com.      A       203.0.113.10
    www.ornek.com.  CNAME   ornek.com.
    

    Yayına almadan önce mutlaka bir SSL sertifikası kurun; tarayıcıların "güvenli değil" uyarısından kurtulmanın yanı sıra HTTPS artık SEO için de bir asgari beklentidir. Ücretsiz sertifikalar için Let's Encrypt yeterlidir, kurumsal ihtiyaçlarda ise SSL sertifikası seçeneklerini değerlendirebilirsiniz. Statik dosyalardan oluştuğu için Hugo sitesinin yedeklenmesi de son derece basittir; tüm proje klasörünü düzenli olarak yedeklemeniz yeterlidir ve yedekleme çözümleriyle bu süreci otomatikleştirebilirsiniz.

    Hugo, WordPress ve Ghost Karşılaştırması#

    Doğru aracı seçmek için Hugo'yu tanıdık alternatiflerle yan yana koymak yardımcı olur. Her biri farklı bir felsefeyi temsil eder:

    ÖlçütHugoWordPressGhost
    TürStatik üreteçDinamik CMSDinamik CMS
    TeknolojiGo (tek ikili)PHP + MySQLNode.js + MySQL
    VeritabanıYokGerekliGerekli
    İçerik girişiMarkdown dosyalarıWeb editörüWeb editörü
    HızÇok yüksekÖnbelleğe bağlıYüksek
    Bakım yüküDüşükYüksek (eklenti/güncelleme)Orta
    Teknik bilgiOrta (komut satırı)DüşükOrta

    Bu tablo bir "kazanan" ilan etmiyor; aracı işe göre seçtiriyor. Markdown ile yazmaktan keyif alan, komut satırından çekinmeyen ve maksimum hız ile minimum bakım isteyen biriyseniz Hugo mükemmele yakındır. Buna karşılık teknik olmayan yazarların doldurduğu, sürekli değişen ve zengin eklenti ekosistemi gerektiren bir site kuruyorsanız WordPress kurulumu daha az sürtünmeyle ilerler. Blog ile ücretli bülteni birleştirmek istiyorsanız Ghost öne çıkar. Hazır kurulu bu tür uygulamaları tek tıkla ayağa kaldırmak isterseniz App Center kataloğumuza da göz atabilirsiniz. Başka bir platformdan Hugo'ya geçiyorsanız içeriğinizi düzenli taşımak için site taşıma desteğimizden yararlanabilirsiniz.

    Sıkça Sorulan Sorular#

    Hugo öğrenmek için programlama bilmek gerekir mi?#

    Hayır, temel bir Hugo sitesi kurmak ve içerik üretmek için programlama bilmeniz gerekmez. Yazı yazma tarafı tamamen Markdown olduğu için oldukça sezgiseldir; kurulum ve derleme ise birkaç terminal komutundan ibarettir. Yalnızca hazır bir temayı kendi zevkinize göre derinlemesine özelleştirmek istediğinizde Hugo'nun şablon (template) sistemine ve biraz HTML/CSS bilgisine ihtiyaç duyarsınız.

    Hugo ile e-ticaret sitesi yapabilir miyim?#

    Hugo tek başına sepet, ödeme ve stok yönetimi gibi dinamik işlevleri barındırmaz çünkü statik dosyalar üretir. Yine de ürün vitrini niteliğindeki sayfaları Hugo ile hazırlayıp, ödeme ve sepet kısmını harici bir servisle (örneğin JavaScript tabanlı bir ödeme çözümüyle) entegre eden hibrit yapılar kurmak mümkündür. Tam donanımlı, yönetim paneli olan bir mağaza istiyorsanız dinamik bir platform daha uygun olur.

    Hugo hangi hosting türünde çalışır?#

    Hugo'nun ürettiği çıktı sadece HTML, CSS ve JavaScript dosyalarından oluştuğu için neredeyse her yerde çalışır. En ucuz paylaşımlı hosting, bir sanal sunucu ya da bir konteyner ortamı hepsi iş görür; çünkü tek gereken statik dosya sunabilen bir web sunucusudur. PHP veya veritabanı desteği aramanıza gerek yoktur, bu da barındırma maliyetini ciddi biçimde düşürür.

    Sitemi her güncellediğimde yeniden derlemem gerekir mi?#

    Evet, statik site mantığının doğası gereği içerik değiştiğinde siteyi yeniden derlersiniz. Bir yazı ekler veya düzenlersiniz, hugo komutunu çalıştırırsınız ve güncellenmiş public/ klasörünü sunucuya yüklersiniz. Bu adım saniyeler sürer ve çoğu ekip bunu bir Git deposuna bağlı otomatik bir yayın hattıyla (CI/CD) tümüyle otomatikleştirir; siz yalnızca yazıyı gönderirsiniz, gerisi kendiliğinden yayınlanır.

    Hugo mu Jekyll mi daha iyi?#

    İkisi de saygın statik site üreticileridir; temel fark hız ve kurulum kolaylığındadır. Hugo, Go ile yazıldığı için büyük sitelerde belirgin biçimde daha hızlı derler ve tek bir ikili dosya olduğundan ek çalışma ortamı istemez. Jekyll ise Ruby tabanlıdır ve bazı ekosistemlerde (özellikle belirli barındırma entegrasyonlarında) kökleşmiştir. Yüksek hız ve kolay kurulum önceliğinizse Hugo genellikle daha keyifli bir tercihtir.

    Hugo sitesinin güvenliği için ne yapmalıyım?#

    Statik site zaten en güvenli site türlerinden biridir; çünkü sömürülecek bir veritabanı ya da çalışan bir uygulama katmanı yoktur. Yine de sunucu tarafında temel önlemleri almak gerekir: HTTPS'i zorunlu kılmak, sunucu yazılımını güncel tutmak ve public/ klasörü dışındaki dosyalara erişimi kapatmak. Kendi sunucunuzu yönetiyorsanız güvenlik duvarı ve düzenli güncellemeler için sunucu yönetimi hizmetimiz yükü sizden alır.

    Kapanış#

    Hugo, "içeriği yaz, tek komutla derle, dosyaları herhangi bir yere koy" sadeliğini benimseyenler için modern web'in en verimli araçlarından biri. Veritabanı derdi olmadan, saldırı yüzeyi neredeyse sıfıra inmiş, göz açıp kapayana kadar açılan bir siteyi dakikalar içinde ayağa kaldırabilir; üstelik bakım yükünün büyük kısmından kurtulursunuz. Markdown ile yazmaktan keyif alıyor ve hızın peşindeyseniz, ilk Hugo sitenizi kurup denemek için hiçbir engel yok.

    Sıra bu siteyi yayına almaya geldiğinde Clou.TR yanınızda. Statik siteniz için ekonomik ve hızlı bir başlangıç arıyorsanız web hosting paketlerimize, tam kontrol isteyen projeler içinse sanal sunucu çözümlerimize göz atın. Alan adınızı domain sayfamızdan alıp, ücretsiz SSL ile güvenceye alabilir; kurulumdan yayına kadar tüm adımlarda destek ekibimizden yardım isteyebilirsiniz. Hugo ile kuracağınız hızlı sitenin hakkını verecek altyapı bir tık uzağınızda.

    statik siteblogself-hosted

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.