Astro Deploy บน Cloudflare Pages: ขั้นตอนทีละขั้น
#astro12 เม.ย. 2569
ทำไมต้อง Cloudflare Pages
Cloudflare Pages เป็น hosting platform ที่
- ฟรี สำหรับ personal projects
- เร็ว ด้วย global CDN
- รองรับ SSR ผ่าน Cloudflare Workers
ติดตั้ง Cloudflare Adapter
npx astro add cloudflare
// astro.config.mjs
import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
output: 'server', // หรือ 'hybrid'
adapter: cloudflare()
});
Deploy ผ่าน Git
- Push code ขึ้น GitHub/GitLab
- เข้า Cloudflare Dashboard → Pages
- Connect to Git
- ตั้งค่า Build:
- Build command:
npm run build - Build output:
dist
- Build command:
- Deploy!
Wrangler CLI
npm install -g wrangler
wrangler pages deploy dist
Environment Variables
// astro.config.mjs
export default defineConfig({
adapter: cloudflare({
platformProxy: {
enabled: true // ใช้ Cloudflare bindings ใน dev
}
})
});
---
// ใช้ Cloudflare bindings
const { env } = Astro.locals.runtime;
const db = env.DB; // D1 Database
const kv = env.KV; // KV Store
---
wrangler.toml
name = "my-astro-site"
compatibility_date = "2024-01-01"
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxx"
[[kv_namespaces]]
binding = "KV"
id = "xxx"
Static Site (ไม่ต้อง adapter)
// astro.config.mjs
export default defineConfig({
output: 'static' // default
});
npm run build
wrangler pages deploy dist
Custom Domain
- Cloudflare Dashboard → Pages → Custom domains
- เพิ่ม domain
- ตั้งค่า DNS CNAME record
สรุป
การ deploy Astro บน Cloudflare Pages ทำได้ง่ายมาก รองรับทั้ง static และ SSR ผ่าน Cloudflare Workers ฟรีและเร็วมากครับ