Skip to content

รื้อ Blog (อีกแล้ว) ไป Ghost

UPDATED
 at 07:00 AM

By : Parinya T. | 2 min read

จากครั้งล่าสุดที่ได้เปลี่ยนระบบจาก Next.js + markdown มาใช้กระบวนท่าที่พึ่งพา Notion API แล้วใช้ Next.js ดึงข้อมูลมาแสดงผล มาตลอดหลายเดือนที่ผ่านมา ก็ค่อนข้างที่จะประทับใจจริงๆครับ แต่ในช่วงหลังที่รู้สึกว่าการ maintain ไม่สามารถทำได้มากเท่าที่ควรเหมือนแต่ก่อนแล้ว อยากจะเอาเวลาไปเรียนรู้สึกใหม่ๆที่ต้องทำ เราอยากจะมีบล็อกแค่เขียนในสิ่งที่อยากจะเขียนมากกว่า ประกอบกับในช่วงประมาณ 3-4 เดือนให้หลังนี้ Core Dependencies ที่ใช้งานอยู่นั้นเริ่มมีความงุนงงในการพัฒนา บางตัวอยู่ดีๆก็เปลี่ยนแบบหน้ามือเป็นหลังมือ bump version ทีนึงก็ style พังทีนึง (หลังๆในทวิตเตอร์ผมจะบ่นเรื่องนี้บ่อยมากเลย) จนมาถึง Style พังครั้งล่าสุดก็เริ่มรู้สึกว่าขี้เกียจแก้แล้ว

แล้วแบบไหนถึงจะเหมาะกับเราล่ะ ? อันนี้ก็คิดอยู่พักใหญ่ กลับไปใช้ cms ดีไหม ?

ช่วงที่ผ่านมาได้มีโอกาสเข้าไปทำงานกับบริษัทอยู่บ้าง ซึ่งงานที่เจอก็ได้พบว่าตามบริษัทที่ไม่ได้เป็นสาย tech จ๋าๆเนี่ยจะนิยมใช้ wordpress กัน ซึ่งผมไม่ใช่ว่าไม่ชอบนะ แต่รู้สึกว่าจับแล้วมันกลางๆ มันจะเร็วก็ไม่เร็ว กลางๆ ปลั๊กอินต้องลงอะไรบ้างก็ไม่ได้ติดตามตรงนั้นเลย ถ้าต้องมาเรียนรู้ใหม่ก็อาจจะหมดเวลามากกว่าเดิมแทน หรือจะเป็นลักษณะ headless cms แทน อันนั้นก็จะไม่ต่างจากเดิมที่ใช้ notion สักเท่าไหร่

แล้วจะเอายังไงดี ?

อยู่ๆก็นึกขึ้นได้ว่ามีอยู่ตัวนึงเป็น Javascript base ชื่อ Ghost แล้วก็มีความลื่นไหลพอสมควรเลยเท่าที่เคย poc มา แต่ตอนนั้นติดอยู่ข้อเดียวเลย ต้องหาโฮสต์ให้มันอยู่ ก็เลยไม่ได้ใช้ตั้งแต่ตอนนั้น (ก็คนมันงกอะนะ)

จากนั้นก็หาข้อมูลเพิ่มเติม รวมทั้งเปรียบเทียบกับตัวอื่นๆไปพร้อมกันด้วย ได้ข้อสรุปว่าตกลงจะใช้ Ghost CMS นี่ล่ะ หลายๆที่ รวมถึงใน Docs ของ Ghost ก็แนะนำโฮสต์ที่ DigitalOcean ไปเลยง่ายดีมี image พร้อมติดตั้งเลย ราคาก็ใช้ได้อยู่ต่ำสุดอยู่ที่ 6$ ต่อเดือน

เพิ่มเติมตรงนี้นิดนึง จริงๆฝั่ง GCP Free tier ที่สเปคเท่าๆกันก็ใช้ได้นะครับ แต่ว่ามันต้องเป็นเครื่องใน region US บางที่เท่านั้น ซึ่งผมรู้สึกว่าลองใช้แล้วมันช้าไปหน่อย ถึงจะพ่วง clodflare cdn ไปแล้วก็ตามที พอไปดูแบบเสียเงินก็ราคาฝั่ง DigitalOcean ก็น่ารักกว่าอยู่ดี

จัดการสมัคร account ผูกบัญชีสำหรับหักเงินให้เรียบร้อย โดยผมผูกกับ Paypal ทาง DigitalOcean จะหักไว้ก่อน 5$ (ประมาณ 180 บาท) จากนั้นก็ทำการติดตั้ง Ghost CMS โดยสามารถสร้าง droplet จากหน้า ui เอง หรือจะติดตั้งจากในหน้า marketplace ก็ได้

เราสามารถใช้เซิร์ฟเวอร์เจ้าไหนก็ได้ ขอแค่มันติดตั้งได้ก็พอ แต่ที่ผมเลือกที่นี่เพราะว่ามัน”ง่าย”ที่สุดเท่านั้นเอง ไม่ต้องมานั่งงม terminal หลังจาก droplet ทำการ deploy ตัวเองเสร็จ เราแค่ต้อง connect ssh ต่อเข้าเครื่องไป จากนั้นตัว image ก็จะทำการติดตั้งเองทั้งหมด จากนั้นก็ไป config ทางหน้าเว็บต่อได้เลย

Blog Image

connect เข้าไปเฉยๆ ระบบจัดการให้(เกือบ)ทั้งหมด

ขั้นตอนโดยสรุปสั้นๆ

เสร็จสิ้นกระบวนการ

ปัญหาที่พบ

instance ที่ผมใช้รันระบบเว็บอยู่นี้แรม 1gb แค่นั้น cpu แทบไม่โหลดเลย แต่กลับกัน memory วิ่งไปที่ 95% ในช่วง peak เลย เฉลี่ยก็จะอยู่ที่ 80% - 85% ทำไมมันกินเยอะจัง

Blog Image

หาข้อมูลแล้วก็พบว่า หลายๆคนก็เป็นกันโดยคนร้ายในเรื่องนี้ก็คือ performance_schema โดยเราก็ไป disable มันเสีย ซึ่งไม่ได้ส่งผลอะไรกับ ghost cms นัก (วิธีการตามลิงค์ด้านล่าง)

Blog Image

หลังจากที่ทำการปิด performance_schema การกินแรมก็ลดลงทันที

จากนั้นก็ทำการเพิ่ม Swap memory เข้าไปช่วยด้วยเพื่อสำรองไว้เผื่อฉุกเฉิน และก็พอให้มี headroom ไว้หายใจหายคอบ้าง (วิธีการตามลิงค์ด้านล่าง)

Blog Image

ผลออกมาก็เหลือการใช้ memory อยู่ที่ 60% โดยเฉลี่ย เป็นอันน่าพอใจ

ณ ปัจจุบันก็ยังไม่ได้ทำอะไรเพิ่ม มันค่อนข้างนิ่งดีคุ้มค่าเงินและความง่าย จะได้เอาเวลาไปโฟกัสกับการเขียน ไปเรียนเรื่องอื่นได้เต็มที่ ไม่ต้องมากังวลว่าวันนี้อะไรจะอัพเดทแล้ว style จะเพี้ยนไหม ถือว่าเป็นที่น่าพอใจสำหรับผมในช่วงเวลานี้

Blog Image

update 29/08/2022 : หลังจาก Ghost CMS มี minor update ก็พบว่าการใช้แรมลดลงไปอีก 10% เลยทีเดียว แสดงว่าที่ผ่านมามันมี bug ??

แล้วยังเก็บบล็อกเก่าไว้อยู่ไหม ? ก็ยังเก็บไว้อยู่นะครับ แต่ว่าจะย้ายไปอยู่ในส่วน old-blog แทน เอาไว้ดู flow ต่างๆรวมถึงอ้างอิงเวลาเขียนงานลักษณะนี้ได้ เพราะส่วนตัวเองนั้นเป็นคนขี้ลืม