📖 Site Rehberi · 🔐 Supabase Sistemi · 🍴 Fork Kurulumu
🍴 Bu Projeyi Fork Edenler İçin Kurulum Rehberi
Bu site tamamen bana (Abdullah Eymen Asru) özel kişisel bilgiler, hesaplar ve API anahtarları içeriyor. Fork’ladıysan canlıya almadan önce aşağıdaki adımları sırayla uygulaman gerekiyor.
1. Zorunlu Değişiklikler — _config.yml
Bu dosyadaki # ---- BURAYI DOLDUR ---- ile başlayan blok içindeki
her satırı kendine göre değiştir:
| Alan | Ne yapmalısın |
|---|---|
title, description |
Kendi adın/site açıklaman |
url |
Kendi Cloudflare Pages adresin (örn. https://kullaniciadin.pages.dev) |
github_username |
Kendi GitHub kullanıcı adın |
kutuphane_repo |
Kendi izleme/okuma verisini tutacağın repo (bu özelliği kullanmayacaksan bkz. “Bölüm 3 — Silme”) |
izleme_projects_url / okuma_projects_url |
Kendi GitHub Projects panolarının linki |
substack_url / substack_feed |
Kendi Substack adresin (kullanmıyorsan bkz. “Bölüm 3”) |
google_analytics_id |
Kendi Google Analytics Measurement ID’in (G-XXXXXXX) |
profile_image |
assets/ klasörüne kendi fotoğrafını yükleyip yolunu yaz |
cloudflare_worker_url |
Kendi Cloudflare Worker adresin (kullanmıyorsan bkz. “Bölüm 3”) |
mirror_site_url |
Kendi GitHub Pages yedek adresin (kullaniciadin.github.io) |
giscus: bloğu |
giscus.app adresine git, KENDİ repo’nu bağlayıp repo, repo_id, category, category_id değerlerini oradan kopyala |
social: altındaki tüm linkler |
Kendi sosyal medya/akademik profil linklerin — kullanmadığın satırları sil |
2. Zorunlu Değişiklikler — _config_cloudflare.yml
Buradaki google_analytics_id‘yi de kendi Analytics ID’in ile değiştir
(veya _config.yml‘dekiyle aynısını kullanacaksan bu dosyayı tamamen silebilirsin).
3. Kullanmak İstemediğin Özellikleri Silme
Aşağıdaki her blok bağımsızdır — sadece istemediğini sil, geri kalanına dokunma.
Yorum sistemini (giscus) kaldırmak istersen:
_includes/comments.htmldosyasını sil_layouts/post.htmliçinde `
` satırını bul ve sil
_config.ymliçindekigiscus:bloğunu sil
İletişim formunu kaldırmak istersen:
kurumsal/iletisim.mddosyasını sil_layouts/default.htmliçindeki menüde iletişim linkine giden satırı bul ve sil
İzlediklerim/Okuduklarım (Cloudflare Worker) özelliğini kaldırmak istersen:
icerik/izlediklerim.mdveicerik/okuduklarim.mddosyalarını sil_config.ymliçindenkutuphane_repo,izleme_projects_url,okuma_projects_url,cloudflare_worker_urlsatırlarını sil_layouts/default.htmliçindeki menüden bu sayfalara giden linkleri sil
Akademik projeler / Substack blog bağlantısını kaldırmak istersen:
icerik/akademik-projeler.mddosyasını sil (ya da içeriğini kendi projelerinle doldur)substack_url/substack_feedsatırlarını_config.yml‘den sil_layouts/default.htmlmenüsündeki ilgili linki sil
Zamanlanmış/gizli yazı otomasyonunu (GitHub Actions) kaldırmak istersen:
.github/workflows/zamanlanmis-yayin.ymldosyasını sil- GitHub repo ayarlarından eklediysen
CLOUDFLARE_DEPLOY_HOOK_URLsecret’ını da silebilirsin - Not: Bunu silersen, gelecek tarihli/gizli yazılar sadece SEN elle bir push yaptığında görünür hale gelir, otomatik gelmez
Android uygulama bağlantısını (App Links) kullanmıyorsan:
.well-known/assetlinks.jsondosyasını sil_config.ymliçindekiinclude: - .well-knownsatırını silebilirsin
Supabase kullanıcı sistemini (kayıt/giriş/panel/admin) kaldırmak istersen:
hesap/giris.md,hesap/kayit.md,hesap/sifremi-unuttum.md,hesap/sifre-guncelle.md,hesap/hesap-onayla.md,panel/panel.md,panel/admin.md,panel/ozel-icerik.mddosyalarını silassets/js/supabase-client.js,auth-guard.js,auth-pages.js,panel.js,admin.js,ozel-icerik.js,nav-auth.jsveassets/css/auth.cssdosyalarını silsupabase/klasörünü (migrations + functions) tamamen sil_layouts/default.htmliçindeki#auth-navbloğunu ve onu başlatan<script type="module">...initAuthNav()...</script>satırını silassets/style.cssiçindeki.auth-nav*sınıflarını sil- Supabase Dashboard’dan projeyi de silmek istersen Project Settings → General → Delete Project üzerinden yapabilirsin (bu, koddan bağımsız, ayrı bir adım)
4. Cloudflare Pages mi, GitHub Pages mi? (Birincil Adres / Barındırma Seçimi)
Bu site aynı anda iki adreste barınabilir: Cloudflare Pages
(pages.dev) ve GitHub Pages (github.io). Repoyu fork’ladığında hangisini
nasıl kullanacağına göre iki farklı senaryo var — hangisi sana uyuyorsa
onu uygula, ikisi birbirinden bağımsızdır.
Senaryo A — İkisini de kullanmaya devam edip sadece birincil adresi değiştirmek istiyorum
Örneğin Google’ın indekslediği/canonical adresin pages.dev yerine
github.io olsun istiyorsun, ama Cloudflare Pages’i yedek olarak
kullanmaya devam edeceksin. Sadece 3 satır değişiyor, kod tarafında
başka hiçbir şeye dokunman gerekmiyor (sitemap.xml, feed.xml,
canonical/og:url etiketleri hepsi aşağıdaki url: değerini otomatik takip
eder):
| Dosya | Satır | Şimdi | Değişecek |
|---|---|---|---|
_config.yml |
url: |
https://kullaniciadin.pages.dev |
https://kullaniciadin.github.io |
_config.yml |
mirror_site_url: |
https://kullaniciadin.github.io |
https://kullaniciadin.pages.dev |
robots.txt |
Sitemap: satırı |
.../pages.dev/sitemap.xml |
.../github.io/sitemap.xml |
Kod dışında (repo’da olmayan) ayrıca yapman gerekenler:
- Supabase Dashboard → Authentication → URL Configuration’da “Site URL”i yeni birincil adresle güncelle (Redirect URLs listesinde her iki adres de zaten varsa dokunmana gerek yok).
- Google Search Console’a yeni adresi ayrıca doğrulat, yeni sitemap’i gönder.
- GitHub repo ayarlarında Settings → Pages‘in açık olduğunu teyit et.
İki Cloudflare Worker ve iki Supabase Edge Function’ı (delete-account,
admin-change-email) zaten her iki adresi de izin listesinde tuttuğu
için, hangisini birincil yaparsan yap ikisi de çalışmaya devam eder —
onlara dokunmuyorsun.
Senaryo B — Cloudflare Pages’i tamamen bırakıp SADECE GitHub Pages kullanacağım
_config_cloudflare.ymldosyasını sil_headersdosyasını sil (bu dosya sadece Cloudflare Pages’te işe yarar, GitHub Pages’te zaten görmezden gelinir ama gereksizse silebilirsin).github/workflows/zamanlanmis-yayin.ymldosyasını sil (Cloudflare’e özel deploy hook’u tetikliyor)_config.ymliçindekimirror_site_urlsatırını sil,urlalanına GitHub Pages adresini yazrobots.txtiçindekiSitemap:satırını GitHub Pages adresine güncelle (Senaryo A’daki tabloyla aynı satır)- Cloudflare Worker’lardaki (
r2_storage_worker,izleme_okuma_worker) ve Edge Function’lardaki (delete-account,admin-change-email)pages.devreferanslarını silmen ZORUNLU değil (kullanılmayan bir adresin izin listesinde durması zarar vermez), ama istersen temizlik için kaldırabilirsin.
5. Secret / Gizli Anahtarlar — Nerede, Nasıl Tanımlanır
Bu projede kod içine asla düz yazılmaması gereken tek secret,
Cloudflare Pages’i otomatik build tetikleyen deploy hook URL’idir.
(Google Analytics ID ve giscus ayarları secret değildir, herkese açık
görünebilir bilgilerdir, bu yüzden _config.yml içinde düz yazılıdır.)
| Secret adı | Nerede kullanılır | Nasıl oluşturulur | Nereye eklenir |
|---|---|---|---|
CLOUDFLARE_DEPLOY_HOOK_URL |
.github/workflows/zamanlanmis-yayin.yml |
Cloudflare Pages projeni aç → Settings → Builds & deployments → Deploy Hooks → yeni bir hook oluştur, verdiği URL’i kopyala | GitHub repo’nda Settings → Secrets and variables → Actions → New repository secret → isim: CLOUDFLARE_DEPLOY_HOOK_URL, değer: kopyaladığın URL |
Bu projede kullanılan diğer üçüncü parti servisler (Google Analytics,
giscus, Google Forms) API anahtarı değil, herkese açık/genel amaçlı ID’ler
kullanır; bunları _config.yml veya ilgili .md dosyasına doğrudan
yazman güvenlidir, GitHub Secrets’a eklemene gerek yoktur.
6. Yayına Alma Sırası (Özet)
- Yukarıdaki
_config.ymlve_config_cloudflare.ymlalanlarını doldur - İstemediğin özellikleri “Bölüm 3”e göre sil
- Cloudflare Pages’te yeni bir proje oluştur, bu repo’yu bağla
- Build command:
bundle exec jekyll build --config _config.yml,_config_cloudflare.yml - Build output directory:
_site
- Build command:
- Zamanlanmış yayın özelliğini kullanacaksan
CLOUDFLARE_DEPLOY_HOOK_URLsecret’ını ekle (Bölüm 5) - GitHub Pages’i de yedek olarak kullanacaksan repo Settings → Pages üzerinden aktif et
📖 Site Rehberi · 🔐 Supabase Sistemi · 🍴 Fork Kurulumu
Yorumlar
Yorum yapabilmek için GitHub hesabınla giriş yapman gerekiyor. Hiçbir ek kayıt/üyelik yok, sadece GitHub yetkilendirmesi yeterli.