Skip to content

Cloudflare Deploy

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çaGörevi
@astrojs/cloudflareAstro ↔ Cloudflare adapter
wranglerBuild çıktısını Pages’e deploy
wrangler.tomlProje adı, nodejs_compat, çıktı klasörü
output: 'server'SSR modu

Falcon stack: Fix UI, React islands, MDX blog, dört dil i18n.


  • Çok dilli URL’ler (/tr/blog/..., /contact, /tr/iletisim …) ve yeni sitePages sayfaları tek build ile uyumlu kalır
  • Cloudflare Pages + Workers (SSR adapter)
  • Yerel geliştirmede astro dev; production’da dist/ → Pages deploy

session: { driver: 'null' } — Astro session kullanılmıyor; gereksiz state katmanı yok.


Terminal window
npm install @astrojs/cloudflare
npm install -D wrangler
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ığı).

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.

ScriptNe yapar
npm run buildastro build + Pages wrangler patch
npm run previewBuild sonrası yerel önizleme
npm run deployBuild + wrangler pages deploy dist
npm run pages:deployYalnızca deploy (build önceden yapılmış olmalı)

.wrangler/ — Wrangler’ın yerel cache’i; repoya commitlenmez.


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.


  1. Cloudflare hesabında Pages projesi oluştur (veya mevcut projeyi kullan)
  2. Yerelde:
Terminal window
npm run deploy
  1. İ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.


Terminal window
npm run build
npm 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).


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.


YapYapma
npm run deploy veya pages:deploywrangler deploy (Worker-only)
.wrangler/ commit etmeCache’i repoya ekleme
Production öncesi npm run buildKırık build’i deploy etme
nodejs_compat açık kalsınEski Worker flag’lerini kaldırma

Production öncesi: src/config/site.ts içinde canlı domain ve public/robots.txt sitemap satırı — Sitemap.


astro.config.mjs → output server, cloudflare adapter
wrangler.toml → Pages ayarları
scripts/patch-pages-wrangler.mjs
package.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.