ฉันสร้างเว็บแอปด้วย NextJS ที่ฉันขาย b2b ซึ่งผู้ใช้ (ลูกค้าที่เป็นลูกค้าของฉัน) สามารถเช็คอินสถานที่ได้ พวกเขาแจ้งชื่อและรับหมายเลขเช็คอิน แอปแสดงข้อมูลที่เกี่ยวข้องกับลูกค้า (เวลาเปิดทำการ ที่อยู่ â¦)
ส่วนที่สองของแอปคือแผงการดูแลระบบสำหรับลูกค้าของฉันในการเข้าสู่ระบบและดูชื่อทั้งหมดและหมายเลขเช็คอินและสามารถให้ข้อมูลเพิ่มเติมได้
ขณะนี้ฉันอยู่ในช่วงเบต้าและลูกค้าของฉันเป็นบริษัทของเพื่อน แต่แอปกำลังปรับขนาดได้ดีมาก และฉันต้องการแนวทางที่ดีกว่าสิ่งต่อไปนี้:
- ลูกค้าของฉันซื้อ VPS และโดเมน
- ฉันติดตั้ง LEMP stack
- ฉันพร็อกซีโดเมนใน nginx ไปยัง localhost:3000
- ฉันกำหนดค่าฐานข้อมูลเพื่อจัดเก็บลูกค้า
- ฉันคัดลอกรูทของแอปไปยังเซิร์ฟเวอร์และเรียกใช้ (npm run build && npm run start)
ฉันทำเช่นนี้กับลูกค้าทุกคน (ปัจจุบัน 25) เมื่อมีลูกค้าใหม่หรือการอัปเดตแอป การทำงานด้วยตนเองจะเป็นเรื่องยาก
สิ่งที่สำคัญมากคือลูกค้าของฉันไม่เห็นว่ามีบริษัทอื่นใช้แอปของฉัน
สิ่งที่ฉันต้องการทำให้สำเร็จในตอนนี้คือแนวคิดต่อไปนี้ และฉันต้องการทราบว่ามีแนวทางที่ดีกว่าหรือเป็นแนวทางปฏิบัติที่ดีหรือไม่:
- ฉันต้องการขยายลูกค้าเป็น 500 รายขึ้นไป
- ฉันใช้ VPS ของตัวเอง
- ลูกค้าแต่ละรายได้รับโดเมนย่อยของโดเมนของฉันเอง (สิ่งนี้ใช้ได้สำหรับลูกค้าของฉัน)
- ลูกค้าของฉันไม่ต้องการเซิร์ฟเวอร์เพิ่มเติมอีกต่อไป
- ฉันสร้างตารางในฐานข้อมูล MySQL ด้วยข้อมูลลูกค้า (เวลาเปิดทำการ, ที่อยู่,â¦)
- ในแอป Nextjs ฉันตรวจพบโดเมนย่อยและค้นหาฐานข้อมูลของฉัน
- ฉันมี หนึ่ง ตารางสำหรับลูกค้าที่เช็คอินที่เกี่ยวข้องกับตารางการกำหนดค่า
- ฉันเริ่ม หนึ่ง ตัวอย่างแอปของฉัน
- ฉันค้นหาโดเมนย่อยทั้งหมดไปยังอินสแตนซ์นั้น
- ลูกค้าของฉันมี หนึ่ง หน้าจอการเข้าสู่ระบบของผู้ดูแลระบบและเมื่อเข้าสู่ระบบแล้ว จะโหลดข้อมูลที่เกี่ยวข้องกับการเข้าสู่ระบบ (โดยใช้ JWT เพื่อให้ไคลเอ็นต์ไม่สามารถรับข้อมูลจากไคลเอ็นต์อื่นได้)
- สำหรับลูกค้าใหม่ ฉันเพียงแค่เพิ่มโดเมนย่อยใหม่และแถว MySQL หนึ่งแถว พวกเขาก็พร้อมที่จะไป สิ่งนี้ง่ายต่อการจัดการและหากมีการอัปเดต ฉันเพียงแค่อัปเดตอินสแตนซ์เดียวของแอป