Skip to content

เลือกที่ deploy ​

หน้านี้สอนอะไร

โฮสต์แบบไหนเหมาะกับเว็บของคุณ ทุกโฮสต์ต้องการอะไรจากคุณ และ checklist ก่อนเปิดใช้งานจริง

ควรอ่านก่อน: Migration และการ deploy

Easy CMS รันได้ทุกที่ที่รัน server ด้วย Node.js 22.12 ขึ้นไปได้ สิ่งที่ต้องมีคือที่เก็บ ฐานข้อมูล และที่เก็บ ไฟล์อัปโหลด ซึ่งแต่ละโฮสต์อาจมีให้หรือไม่มีก็ได้ ไม่รองรับ edge runtime (Cloudflare Workers, Vercel Edge Functions)

เลือกโฮสต์ ​

ฐานข้อมูลไฟล์อัปโหลดงานตามเวลาเหมาะกับ
VercelPostgres แบบ hosted (Neon) หรือ TursoVercel Blob หรือ S3cron เรียก jobs/runเว็บ Next.js, preview deployment
NetlifyNetlify Database หรือ Postgres แบบ hostedNetlify Blobs หรือ S3scheduled function เรียก jobs/runเว็บ Next.js บน Netlify
DockerPostgres ใน container หรือ SQLite บน volumevolume หรือ S3server รันเองทุกนาทีserver หรือแพลตฟอร์มใดก็ได้ที่รัน container
VPSSQLite บน disk หรือ Postgresdiskserver รันเองทุกนาทีserver เครื่องเดียวที่คุณดูแลเอง ค่าใช้จ่ายต่ำสุด
โฮสต์อื่นๆขึ้นกับโฮสต์ขึ้นกับโฮสต์ขึ้นกับโฮสต์Railway, Render, Fly.io, Coolify…

โฮสต์สองแบบทำงานต่างกัน:

  • Serverless (Vercel, Netlify): ไม่มี disk ที่เก็บไฟล์ได้ถาวร และไม่มี process ที่รันค้างไว้ ต้องใช้ฐานข้อมูลและที่เก็บไฟล์แบบ hosted และเรียก endpoint ของงานตามเวลาจาก cron
  • รันต่อเนื่อง (Docker, VPS, แพลตฟอร์มส่วนใหญ่): server ตัวเดียวที่รันอยู่ตลอด เก็บ SQLite และไฟล์อัปโหลดไว้บน disk ถาวรได้ และ server รันงานตามเวลาเองทุกนาที

ทุกโฮสต์ต้องมี ​

EASY_CMS_SECRETตัวอักษรสุ่มอย่างน้อย 32 ตัว (openssl rand -hex 32) ถ้าไม่มี API จะตอบ 500
NODE_ENV=productionโหมด production ไม่ยอม start ถ้ายังมี migration ค้าง และไม่เปลี่ยน schema เอง
Migrationสร้างด้วย easy-cms migrate:create แล้ว commit และรัน easy-cms migrate ก่อนเวอร์ชันใหม่จะ start ดู Migration และการ deploy
EASY_CMS_SETUP_CODEตั้งไว้จนกว่าจะมี admin คนแรก เพื่อไม่ให้คนอื่นยึดเว็บที่เพิ่ง deploy
serverURLที่อยู่สาธารณะของเว็บ ใช้สร้าง URL ของไฟล์และลิงก์ในอีเมล ดู Health checks
เชื่อ proxyถ้าอยู่หลัง proxy หรือแพลตฟอร์มที่เชื่อถือได้ ให้เปิด trustProxy (Next.js, Nuxt) หรือ --trust-proxy (standalone) เพื่อให้การจำกัดการ login เห็น IP ของผู้เข้าชมแต่ละคน และการตรวจ origin ของ CSRF รับ X-Forwarded-Host ส่วน Vercel และ Netlify ระบบรู้จักเอง
งานตามเวลาบน serverless ให้ cron เรียก <api>/jobs/run พร้อม CRON_SECRET งานเหล่านี้คือเผยแพร่บทความที่ตั้งเวลาไว้ ส่ง webhook ซ้ำ ส่งอีเมลที่รอคิว และสำรองข้อมูล

ก่อนเปิดใช้งานจริง ​

  • [ ] secret, รหัส setup และ URL ฐานข้อมูลตั้งไว้ใน environment ของโฮสต์ ไม่ได้ commit เข้า git
  • [ ] easy-cms migrate รันก่อนเวอร์ชันใหม่จะ start ทุกครั้ง
  • [ ] ไฟล์อัปโหลดไปอยู่บน disk ถาวรหรือที่เก็บไฟล์ภายนอก (อัปโหลดและ media)
  • [ ] งานตามเวลาทำงาน: server รันเองทุกนาที หรือเรียกจาก cron
  • [ ] ตั้งค่า email แล้ว เพื่อให้รีเซ็ตรหัสผ่านและคำเชิญใช้ได้ (อีเมล)
  • [ ] เว็บเป็น HTTPS และตั้ง serverURL เป็นที่อยู่ของเว็บ
  • [ ] สำรองข้อมูลทำงาน และเคยลองกู้คืนแล้ว
  • [ ] ทำ checklist ความปลอดภัย ครบ

ขั้นต่อไป ​

เผยแพร่ภายใต้สัญญาอนุญาต MIT