Strapi คืออะไร และวิธีติดตั้งบน Cloud Server
Strapi คือ Headless CMS โอเพนซอร์สบน Node.js ที่ให้คุณออกแบบโครงสร้างเนื้อหาเองแล้วเปิดเป็น REST หรือ GraphQL API ให้เว็บและแอปดึงไปแสดงผล เหมาะกับทีมที่แยกงานหลังบ้านกับหน้าบ้านออกจากกัน
- หมวดหมู่
- CMS และเว็บไซต์
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- MIT (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Strapi คืออะไร
Headless CMS ต่างจาก CMS ทั่วไปตรงที่ไม่ยุ่งกับการแสดงผล หน้าที่ของมันคือเก็บเนื้อหาและเปิด API ให้ระบบอื่นดึงไปใช้ ทีมหน้าบ้านจึงเลือกเทคโนโลยีได้อิสระ ไม่ว่าจะเป็น Next.js, Nuxt หรือแอปมือถือ
Strapi ให้คุณสร้าง Content Type และฟิลด์ผ่านหน้าเว็บ แล้วสร้าง API ให้อัตโนมัติ พร้อมระบบสิทธิ์ว่า API ไหนเปิดสาธารณะและอันไหนต้องใช้โทเคน จุดนี้ทำให้เริ่มโครงการได้เร็วกว่าการเขียน Backend เองตั้งแต่ต้น
สิ่งที่ต้องวางแผนคือ Strapi เป็นแอป Node.js ที่ต้องรันเป็นบริการตลอดเวลา ไม่ใช่ไฟล์ PHP ที่เว็บเซิร์ฟเวอร์เรียกเป็นครั้ง ๆ การ Deploy จริงจึงต้องมี Process Manager, ฐานข้อมูลแยก และ Reverse Proxy ที่ตั้งค่าถูกต้อง
ความสามารถเด่นของ Strapi
สร้าง API อัตโนมัติ
ออกแบบ Content Type จากหน้าเว็บแล้วได้ REST และ GraphQL API ทันที
ระบบสิทธิ์และ Role
กำหนดได้ว่า API ใดเปิดสาธารณะ อันใดต้องใช้โทเคน และผู้ใช้แต่ละกลุ่มแก้อะไรได้บ้าง
ปรับแต่งด้วยโค้ดได้เต็มที่
เขียน Controller, Service และ Middleware ของตัวเองได้ เพราะโครงสร้างเป็นโปรเจกต์ Node.js ปกติ
รองรับหลายฐานข้อมูล
ใช้ PostgreSQL, MySQL หรือ MariaDB ได้ตามมาตรฐานที่องค์กรใช้อยู่
Media Library
อัปโหลดและจัดการไฟล์สื่อ พร้อมต่อกับ Object Storage เมื่อไฟล์เยอะขึ้น
ใช้ Strapi ทำอะไรได้บ้าง
- เว็บองค์กรที่หน้าบ้านทำด้วย Next.js หรือ Nuxt แต่ต้องการหลังบ้านให้ทีมคอนเทนต์ใช้
- แอปมือถือที่ต้องการแหล่งเนื้อหากลางเดียวกับเว็บ
- ระบบแคตตาล็อกสินค้าหรือฐานข้อมูลบทความที่ต้องเปิด API ให้หลายระบบใช้
- โครงการที่ต้องขึ้น MVP เร็วโดยไม่เขียน Backend เองทั้งหมด
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นโครงการเดียว ทราฟฟิกไม่สูง | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำProduction ที่มีผู้ดูแลหลายคนและมีสื่อจำนวนมาก | 4 vCPU | 8 GB | NVMe 80 GB |
| ระบบใหญ่แยกเซิร์ฟเวอร์ฐานข้อมูลและรันหลาย Instance หลัง Load Balancer | 8 vCPU | 16 GB | NVMe 160 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Strapi บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Node.js รุ่น LTS ที่ Strapi รองรับ
- PostgreSQL 14 ขึ้นไป (แนะนำสำหรับ Production) หรือ MySQL 8
- PM2 หรือ systemd สำหรับรันเป็นบริการ
- Nginx สำหรับทำ Reverse Proxy และ SSL
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Node.js และ PostgreSQL
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt -y install nodejs postgresql nginx - 2
สร้างฐานข้อมูลและผู้ใช้
sudo -u postgres psql -c "CREATE DATABASE strapi;" sudo -u postgres psql -c "CREATE USER strapi WITH PASSWORD 'ChangeThisStrongPassword';" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE strapi TO strapi;" - 3
สร้างโปรเจกต์ Strapi
ตอบคำถามตัวช่วยสร้างโดยเลือกฐานข้อมูล PostgreSQL และกรอกข้อมูลที่สร้างไว้
cd /var/www npx create-strapi-app@latest cms - 4
สร้างไฟล์บิลด์สำหรับ Production
cd /var/www/cms NODE_ENV=production npm run build - 5
รันเป็นบริการด้วย PM2
sudo npm install -g pm2 cd /var/www/cms pm2 start npm --name strapi -- run start pm2 startup systemd pm2 save - 6
ตั้ง Nginx เป็น Reverse Proxy พร้อม SSL
server { listen 80; server_name cms.example.com; location / { proxy_pass http://127.0.0.1:1337; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
อย่าลืมตั้งค่า APP_KEYS, API_TOKEN_SALT และ JWT_SECRET ในไฟล์ .env ของ Production ให้ต่างจากค่าที่ใช้ตอนพัฒนา
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 1337 | TCP | พอร์ตภายในของ Strapi (ไม่ควรเปิดออกอินเทอร์เน็ต) |
| 5432 | TCP | PostgreSQL (เปิดเฉพาะภายในวง Private Network) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ให้ Strapi ฟังเฉพาะ 127.0.0.1 แล้วเปิดสู่ภายนอกผ่าน Nginx เท่านั้น
- ปิดสิทธิ์ public ของ API ที่ไม่ควรเปิด และออก API Token แยกต่อระบบที่มาเรียกใช้
- เก็บ Secret ทั้งหมดในไฟล์ .env ที่ไม่ถูกคอมมิตขึ้น Git
- ย้ายไฟล์อัปโหลดไปเก็บที่ Object Storage เพื่อให้ขยายเครื่องได้โดยไม่ต้องย้ายไฟล์
- ตั้ง Backup ฐานข้อมูล PostgreSQL อัตโนมัติทุกวัน
ทำไมควรรัน Strapi บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
แอป Node.js ต้องรันเป็นบริการตลอดเวลา จึงเหมาะกับ Cloud Server ที่มีทรัพยากรของตัวเองมากกว่าโฮสติ้งแบบแชร์ซึ่งรัน Node ไม่ได้
แยกเซิร์ฟเวอร์ Strapi กับ PostgreSQL ผ่าน Private Network ในไทย ได้ทั้งความเร็วและความปลอดภัย โดยไม่มีค่าทราฟฟิกภายใน
ขยายเครื่องได้ทันทีเมื่อจำนวนคำขอ API เพิ่มขึ้น พร้อมวาง Load Balancer หน้าหลาย Instance ได้
คำถามที่พบบ่อยเกี่ยวกับ Strapi
Strapi ใช้ SQLite บน Production ได้ไหม
ไม่แนะนำ SQLite เหมาะกับการพัฒนาบนเครื่องตัวเองเท่านั้น เพราะรองรับการเขียนพร้อมกันได้จำกัดและย้ายข้อมูลยาก บน Production ควรใช้ PostgreSQL หรือ MySQL
Strapi เหมาะกับเว็บแบบไหน
เหมาะกับงานที่แยกหน้าบ้านกับหลังบ้านออกจากกัน เช่น เว็บที่ทำด้วย Next.js หรือ Nuxt และแอปมือถือที่ใช้เนื้อหาชุดเดียวกัน ถ้าต้องการเว็บสำเร็จรูปที่มีธีมและปลั๊กอินพร้อมใช้ WordPress จะเร็วกว่า
ทำไม Strapi ที่ Deploy แล้วเข้าหน้า Admin ไม่ได้
สาเหตุที่พบบ่อยคือยังไม่ได้สั่ง build สำหรับ Production หรือ URL ที่ตั้งใน config ไม่ตรงกับโดเมนจริง ให้รัน NODE_ENV=production npm run build ใหม่ และตรวจค่า url ในไฟล์ config/server ให้ตรงกับโดเมนที่ใช้จริง
ทางเลือกอื่นที่คล้ายกับ Strapi
แอปอื่นในหมวด CMS และเว็บไซต์
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Strapi ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด