Deploy Rails apps to Ubuntu servers with Kamal
Kamal เป็นเครื่องมือที่ใช้สำหรับ deploy web app ด้วย Docker — เทียบกับ Capistrano ที่ ssh เข้าไป pull code แล้ว restart Puma/Nginx โดยตรง Kamal จะ build image บนเครื่อง dev push ขึ้น registry แล้วใ...
Kamal เป็นเครื่องมือที่ใช้สำหรับ deploy web app ด้วย Docker — เทียบกับ Capistrano ที่ ssh เข้าไป pull code แล้ว restart Puma/Nginx โดยตรง Kamal จะ build image บนเครื่อง dev push ขึ้น registry แล้วใ...
Problem ตามหัวข้อ เราติดตั้ง bun.sh บน Ubuntu ได้โดย: curl -fsSL https://bun.sh/install | bash ซึ่งก็ติดตั้งได้โดยไม่มีปัญหาอะไร แต่พอ deploy ด้วย Capistrano กลับฟ้องข้อผิดพลาดนี้: cssbundlin...
ครั้งก่อนได้เขียนเรื่องนี้ไปรอบหนึ่งแล้ว แต่หลังจากที่ Rails ออกเวอร์ชั่น 7.1 ก็มีอะไรเปลี่ยนแปลงไปนิดหน่อย ประกอบกับตอนนี้ 7.2 ก็ออกตัวเบต้าแล้ว และมี Ubuntu ที่ออกเวอร์ชั่น 24.04 ด้วย แต่หลังจากท...
บน Ubuntu ใหม่ ๆ จะสามารถลง MySQL ได้ ซึ่งจะเป็นเวอร์ชั่น 8 ซึ่งก็ดีอยู่แล้ว แต่ในบางสถานการณ์เรายังต้องใช้ MySQL 5 อยู่ — เช่น legacy app ที่ schema หรือ stored procedure ยังพึ่ง syntax/behavior ข...
Problem ใน Devise หลังจากเพิ่ม module :trackable เข้าไปแล้ว ปรากฏว่า IP ที่ track ได้มักจะเป็น 127.0.0.1 ตลอด Root cause เมื่อ Nginx proxy request ไปที่ Puma/Unicorn ผ่าน localhost (unix socket ...
ในที่นี้เราจะทำการ deploy Rails ไปที่ Ubuntu server กัน โดยเราจะใช้ stack ดังนี้: Ubuntu 22.04 LTS Ruby 3.2.2 Rails 7.0.8 Puma 5 Capistrano มีโพสต์ที่ใหม่กว่าและครอบคลุมกว่า — How ...
Multipass เป็น VM tool ของ Canonical ที่รัน Ubuntu บน Mac/Windows/Linux ได้ง่ายๆ เหมาะกับการ test deployment script ในเครื่องท้องถิ่นโดยไม่ต้องเช่า VPS ปกติเรา login เข้า VM ด้วย: $ multipass she...
ในบางครั้งเวลาอัพเกรด brew แล้วเจอบาง formula ที่อัพเกรดไม่ได้ — จะด้วยว่า macOS เก่าไป, version ใหม่มี breaking change, หรืออยากให้ version ตรงกับ team/CI ก็ตามแต่ เราสามารถ ignore มันได้โดยใช้คำส...
Sphinx เป็น full-text search engine ที่รันแยกจาก database — ทำ index จากข้อมูลใน table แล้วตอบ search query ได้เร็วกว่า LIKE '%foo%' ของ SQL มาก Thinking Sphinx เป็น Rails wrapper ที่ทำให้ใช้ Sphin...
Searchkick เป็น Rails wrapper สำหรับ Elasticsearch/OpenSearch ที่ทำให้เพิ่ม full-text search ลง model ได้ด้วย macro searchkick บรรทัดเดียว และจัดการ index lifecycle (auto-reindex, async, mapping) ใ...