Cloudflare Deploy
Ne Yaptık?
Section titled “Ne Yaptık?”Falcon artık statik HTML export değil; Cloudflare Pages üzerinde SSR (Server-Side Rendering) çalışacak şekilde yapılandırıldı. Her istekte Workers runtime üzerinde sayfa üretilir; i18n ve blog gibi dinamik rotalar production’da da çalışır.
Kullanılan parçalar:
| Parça | Görevi |
|---|---|
@astrojs/cloudflare | Astro ↔ Cloudflare adapter |
wrangler | Build çıktısını Pages’e deploy |
wrangler.toml | Proje adı, nodejs_compat, çıktı klasörü |
output: 'server' | SSR modu |
Falcon stack: Fix UI, React islands, MDX blog, dört dil i18n.
Neden SSR?
Section titled “Neden SSR?”- Çok dilli URL’ler (
/tr/blog/...,/contact,/tr/iletisim…) ve yenisitePagessayfaları tek build ile uyumlu kalır - Cloudflare Pages + Workers (SSR adapter)
- Yerel geliştirmede
astro dev; production’dadist/→ Pages deploy
session: { driver: 'null' } — Astro session kullanılmıyor; gereksiz state katmanı yok.
Kurulum Özeti
Section titled “Kurulum Özeti”Paketler
Section titled “Paketler”npm install @astrojs/cloudflarenpm install -D wranglerastro.config.mjs
Section titled “astro.config.mjs”import cloudflare from '@astrojs/cloudflare';
export default defineConfig({ output: 'server', session: { driver: 'null' }, adapter: cloudflare({ platformProxy: { enabled: true } }), // react(), mdx(), i18n, tailwindcss aynı kalır});platformProxy: { enabled: true } — yerelde Cloudflare ortamına yakın davranış (dev kolaylığı).
wrangler.toml (Proje Kökü)
Section titled “wrangler.toml (Proje Kökü)”name = "falcon-fixrav"compatibility_date = "2025-05-18"compatibility_flags = ["nodejs_compat"]pages_build_output_dir = "./dist"Önemli: Deploy için wrangler pages deploy dist kullanılır. wrangler deploy (tek Worker projesi) bu yapı için uygun değildir.
package.json Script’leri
Section titled “package.json Script’leri”| Script | Ne yapar |
|---|---|
npm run build | astro build + Pages wrangler patch |
npm run preview | Build sonrası yerel önizleme |
npm run deploy | Build + wrangler pages deploy dist |
npm run pages:deploy | Yalnızca deploy (build önceden yapılmış olmalı) |
.gitignore
Section titled “.gitignore”.wrangler/ — Wrangler’ın yerel cache’i; repoya commitlenmez.
Build Patch (Astro 6)
Section titled “Build Patch (Astro 6)”npm run build sonrası scripts/patch-pages-wrangler.mjs çalışır.
Sebep: Astro 6 + pages_build_output_dir kullanıldığında dist/server/wrangler.json içinde assets ile Pages yapılandırması çakışabiliyor; preview/deploy hata verebiliyor. Patch, gereksiz assets alanını kaldırır.
Patch dosyası yoksa veya wrangler.json üretilmediyse script sessizce çıkar.
Nasıl Deploy Edilir?
Section titled “Nasıl Deploy Edilir?”- Cloudflare hesabında Pages projesi oluştur (veya mevcut projeyi kullan)
- Yerelde:
npm run deploy- İlk seferde Wrangler giriş ve proje seçimi isteyebilir
CI / Cloudflare Dashboard: Build komutu npm run build, deploy komutu npm run pages:deploy (veya tam pipeline npm run deploy). Dashboard varsayılan npx wrangler deploy bırakılırsa hata alınır — Pages deploy şart.
Yerel Önizleme
Section titled “Yerel Önizleme”npm run buildnpm run previewÖnce build şart; SSR çıktısı dist/ altındadır. Sorun olursa patch’in çalıştığını ve dist/server/wrangler.json dosyasını kontrol et.
Günlük geliştirme için npm run dev yeterli (adapter dev modda farklı çalışabilir; production davranışı için ara sıra build + preview dene).
İ18n Ile Birlikte
Section titled “İ18n Ile Birlikte”Deploy sonrası tüm dil rotaları aynı projede yayınlanır:
/,/blog/,/blog/welcome//tr/,/tr/blog/,/tr/blog/hos-geldiniz//de/,/fr/ana sayfa ve blog listeleri
URL’ler src/config/routes.ts ve blog locale alanıyla uyumlu kalmalı; deploy öncesi npm run build ile rota üretimini doğrula.
Nelere Dikkat Et?
Section titled “Nelere Dikkat Et?”| Yap | Yapma |
|---|---|
npm run deploy veya pages:deploy | wrangler deploy (Worker-only) |
.wrangler/ commit etme | Cache’i repoya ekleme |
Production öncesi npm run build | Kırık build’i deploy etme |
nodejs_compat açık kalsın | Eski Worker flag’lerini kaldırma |
Production öncesi: src/config/site.ts içinde canlı domain ve public/robots.txt sitemap satırı — Sitemap.
Dosya Özeti
Section titled “Dosya Özeti”astro.config.mjs → output server, cloudflare adapterwrangler.toml → Pages ayarlarıscripts/patch-pages-wrangler.mjspackage.json → build, deploy, pages:deploy.gitignore → .wrangler/dist/ → build çıktısı (commitlenmez)Falcon Cloudflare Pages’te SSR ile çalışır. Kurulum: @astrojs/cloudflare + wrangler.toml + server adapter. Yayın: npm run deploy. Astro 6 için build sonrası wrangler patch gerekir. Yerel geliştirme npm run dev; production doğrulama build + preview.