เอกสารสำหรับผู้ที่จะดูแล/พัฒนาระบบ FYCDTH ต่อในอนาคต — รวมที่อยู่ซอร์สโค้ด วิธีรัน วิธี deploy และวิธีดูแลทุกระบบ
ทำต่อเพื่อความยั่งยืน:
github.com/fycdth)ทุกระบบทำงานบนคลาวด์ 3 บริการหลัก ทำงานร่วมกัน:
| ชั้น | บริการ | ทำหน้าที่ |
|---|---|---|
| เว็บแอป | Vercel | โฮสต์เว็บทั้งหมด build + ออก SSL อัตโนมัติ |
| ฐานข้อมูล | Supabase (PostgreSQL) | เก็บข้อมูลทุกระบบ แยกเป็น schema: class_record / core / owat |
| ไฟล์/รูป/สไลด์ | Cloudflare R2 | เก็บไฟล์ทั้งหมด (bucket fycdth-files) เสิร์ฟผ่าน CDN |
| โดเมน/DNS | Cloudflare | จัดการ fycdth.com และซับโดเมน ชี้ไป Vercel (A → 76.76.21.21) |
| ระบบ | โดเมน | โฟลเดอร์โค้ด (ในเครื่อง) | GitHub | Vercel project | เทคโนโลยี |
|---|---|---|---|---|---|
| บันทึกชั้นเรียน | class.fycdth.com | ~/Projects/fycdth-class-record-cloud | Nanthawat2543/fycdth-class-record ✓ | fycdth-class-record | Vite+React, tRPC, Drizzle, Better Auth |
| กิจกรรม | events.fycdth.com | ~/Projects/fycdth-events-cloud | Nanthawat2543/fycdth-events-cloud ✓ | fycdth-events-cloud | Vite+React, tRPC, Drizzle |
| ระบบสมาชิก (SSO) | id.fycdth.com | ~/Projects/fycd-core-cloud | Nanthawat2543/fycd-core ✓ | fycdth-core | Turborepo, Next.js, Prisma |
| โอวาท | owat.fycdth.com | ~/Projects/phra-owat | Nanthawat2543/phra-owat ✓ | fycdth-owat | Next.js, Supabase JS |
| คลังความรู้ | wiki.fycdth.com | ~/Applications/FYCD Wiki | Nanthawat2543/fycdth-wiki ✓ | fycdth-wiki | HTML static |
| คู่มือ (หน้านี้) | docs.fycdth.com | ~/Projects/fycdth-docs | Nanthawat2543/fycdth-docs ✓ | fycdth-docs | HTML static |
| บริการ | เข้าที่ | บัญชี | ใช้ทำอะไร |
|---|---|---|---|
| Vercel | vercel.com | angel.phototh@gmail.com (team: angel-photo) | โฮสต์เว็บทุกตัว |
| Supabase | supabase.com | angel.phototh@gmail.com (org: FYCDTH) | ฐานข้อมูล (project: fycdth-platform) |
| Cloudflare | dash.cloudflare.com | angel.phototh@gmail.com | DNS (fycdth.com) + R2 (ไฟล์) |
| GitHub | github.com | Nanthawat2543 (ควรสร้าง org กลาง) | เก็บซอร์สโค้ด |
phra-owat / ref vsugmjvdxqyysoepfcuu — คนละบัญชีกับ fycdth-platform) — ถ้าจะรวมให้เหลือที่เดียว ดูบันทึกในโฟลเดอร์โปรเจคmembers (สถานะ approved/pending/rejected), audit_log (บันทึกการกระทำหลังบ้าน) — SQL อยู่ที่ ~/Projects/phra-owat/supabase/migrations/20260605_*.sqlADMIN_EMAILS (อีเมลแอดมิน คั่นด้วย ,) · SESSION_SECRET (กุญแจเซ็น session — เปลี่ยนค่า = บังคับทุกคนล็อกอินใหม่) · FYCD_MEMBER_ROLES (role ที่ auto-approve, เว้นว่าง = อนุมัติเองทั้งหมด)middleware.ts กัน /admin และเนื้อหาสมาชิกที่ระดับ edgepnpm (npm i -g pnpm).env ของแต่ละโปรเจค (เก็บลับ — ขอจาก password manager)# เข้าโฟลเดอร์โปรเจค แล้ว: pnpm install # ติดตั้ง dependencies (ครั้งแรก) pnpm dev # รันเครื่อง dev → เปิด localhost ที่บอก
เป็นไฟล์ HTML ธรรมดา — เปิด index.html ในเบราว์เซอร์ได้เลย แก้ไขแล้วเซฟ
แค่ push โค้ดขึ้น GitHub → Vercel จะ build + deploy ให้อัตโนมัติ ไม่ต้องทำอะไรเพิ่ม
git add . && git commit -m "แก้ไข..." && git push
# ติดตั้งครั้งเดียว: npm i -g vercel && vercel login # ในโฟลเดอร์โปรเจค: vercel deploy --prod
apps/core ไว้แล้ว| อยากทำอะไร | ทำที่ไหน |
|---|---|
| ดู/แก้ไขข้อมูลในตาราง | Supabase → Table Editor (เลือก schema ให้ถูก) |
| รันคำสั่ง SQL | Supabase → SQL Editor |
| ดู/จัดการไฟล์ที่อัปโหลด | Cloudflare → R2 → bucket fycdth-files |
| แก้ตัวแปรลับ (env) | Vercel → เลือก project → Settings → Environment Variables |
| เพิ่ม/แก้โดเมน | Vercel (เพิ่ม domain) + Cloudflare (ตั้ง DNS → 76.76.21.21) |
| ดู log เวลาเว็บ error | Vercel → project → Logs / Deployments |
| อนุมัติสมาชิกใหม่ / จัดการสิทธิ์ | ในเว็บ class.fycdth.com → หน้า User Management |
| เพิ่มเว็บใหม่ให้ login กลางได้ (OAuth) | ตาราง core.oauth_clients ใน Supabase |
| อนุมัติสมาชิก owat (เข้าถึงเนื้อหา) | owat.fycdth.com/admin → แท็บ สมาชิก → กดอนุมัติ/ปฏิเสธ |
| ดูบันทึกการใช้งานหลังบ้าน owat | owat.fycdth.com/admin → แท็บ บันทึกการใช้งาน (audit log) |
| เพิ่ม/ลบแอดมิน owat | Vercel: fycdth-owat → Settings → Env → ADMIN_EMAILS (คั่นด้วย ,) แล้ว redeploy |
| บังคับผู้ใช้ owat ล็อกอินใหม่ทุกคน | Vercel: fycdth-owat → Env → เปลี่ยนค่า SESSION_SECRET แล้ว redeploy |
76.76.21.21vercel deploy --prod)