Repository navigation
Deployment and Operations
bearnannan edited this page Sep 6, 2026
·
1 revision
เอกสารนี้รวบรวมคู่มือการนำระบบ Stock-Flow ขึ้นสู่ Production (Deployment Architecture) ตลอดจนขั้นตอนการบำรุงรักษา สำรองข้อมูล และการกู้คืนระบบ (Operations & Disaster Recovery)
ระบบ Stock-Flow ถูกออกแบบให้แยกการทำงานออกเป็น 2 สภาพแวดล้อมเพื่อประสิทธิภาพและความเสถียรสูงสุด:
[ Git Repository: main branch ]
│
├─── Push ───> [ GitHub Actions CI/CD (Node 22) ]
│ │
│ └── Deploy ──> [ GitHub Pages (Landing Page Showcase) ]
│ URL: https://eemeemmeex.github.io/Stock-Flow/
│
└─── Webhook ──> [ Vercel Production Platform ]
│
├── Build Single Page App (SPA)
└── Edge Functions (/api/send-email, /api/r2-upload-url)
URL: https://stockflowth.online
| ตัวแปร | Vercel (Production) | GitHub Actions Secrets | คำอธิบาย |
|---|---|---|---|
VITE_SUPABASE_URL |
✅ Required | - | URL ของ Supabase Project |
VITE_SUPABASE_ANON_KEY |
✅ Required | - | Public Anonymous API Key |
CLOUDFLARE_ACCOUNT_ID |
✅ Required | - | Account ID สำหรับ R2 API |
R2_ACCESS_KEY_ID |
✅ Required | - | S3 Access Key สำหรับ Presigned Upload |
R2_SECRET_ACCESS_KEY |
✅ Required | - | S3 Secret Key สำหรับ Presigned Upload |
R2_BUCKET_NAME |
✅ Required | - | ชื่อ Bucket ใน Cloudflare R2 |
VITE_R2_PUBLIC_URL |
✅ Required | - | Public CDN Domain สำหรับโหลดรูปภาพ |
SMTP_HOST |
✅ Required | - | โฮสต์เซิร์ฟเวอร์ SMTP ของ Forth Corp |
SMTP_PORT |
✅ Required | - | พอร์ต SMTP (ปกติ 587) |
SMTP_USER |
✅ Required | - | บัญชีผู้ส่งอีเมลแจ้งเตือน |
SMTP_PASS |
✅ Required | - | รหัสผ่าน App Password |
NOTIFICATION_EMAIL_TO |
✅ Required | - | อีเมลผู้จัดการคลังสินค้า/ผู้อนุมัติหลัก |
การ Deploy ขึ้น GitHub Pages จัดการโดยอัตโนมัติผ่านไฟล์ .github/workflows/deploy-pages.yml:
- Runtime: Node.js 22 (LTS)
-
Actions Versions:
actions/checkout@v4actions/setup-node@v4actions/configure-pages@v5actions/upload-pages-artifact@v3actions/deploy-pages@v4
-
Trigger: อัตโนมัติเมื่อมีการ Push ไปยัง Branch
mainหรือสั่งรันด้วยมือผ่านworkflow_dispatch
ระบบมีคำสั่งเตรียมพร้อมสำหรับการสำรองข้อมูลสกีมาและเรคคอร์ดสำคัญ:
# รันสคริปต์สำรองข้อมูล
npm run db:backup- สคริปต์จะดึงข้อมูลตาราง
items,transactions,kits, และborrow_recordsจัดเก็บเป็นไฟล์ JSON/SQL ในโฟลเดอร์สำรองข้อมูลที่มีการประทับเวลา (Timestamp) - แนะนำให้ตั้งตารางเวลาสำรองข้อมูลอย่างน้อยสัปดาห์ละ 1 ครั้ง หรือก่อนการทำ Major Migration
หากมีการเพิ่มรูปภาพใหม่หรือต้องการตรวจสอบความสมบูรณ์ของรูปภาพใน Cloudflare R2:
# ตรวจสอบและย้ายข้อมูลรูปภาพ
npm run migrate:r2- สคริปต์จะตรวจสอบเรคคอร์ดในฐานข้อมูล
items.image_urlและตรวจสอบความมีอยู่จริงบน Cloudflare R2 Bucket หากพบรูปภาพตกค้างใน Local หรือ External CDN สคริปต์จะอัปโหลดและอัปเดต URL อัตโนมัติ
- Setup-and-Installation — การติดตั้งสำหรับเครื่อง Local
- Security — การจัดการ Secret และความปลอดภัย
Stock-Flow Enterprise OS • พัฒนาขึ้นสำหรับ บริษัท ฟอร์ท คอร์ปอเรชั่น จำกัด (มหาชน) • Current System Version:
v1.4.76