# A2 · 技術選型書 > v6 重設:產品本質從「教學員學技術」改為「啟動工具包替學員處理技術」。技術棧大幅縮減,拿掉所有需要 IT 部署的元件(Docker / K8s / Keycloak / 自建監控)。學員不直接接觸大部分元件——這些都封裝在工具包內。 ## 選型總原則 1. **PaaS 優先、不需要 IT**。主 TA 沒有 IT 部門,部署必須一鍵完成(Vercel + Supabase 一鍵起站)。 2. **學員看不到底層**。資料庫、認證、部署、監控對學員透明——他們只看到 UI 範本和提示詞。 3. **核心仍是 Cloud / On-Prem 同一套**。On-Prem 雖然 by request,但代碼基底要一致,避免維運分裂。 4. **基本資安是預設值**。HTTPS、欄位加密、日誌、登入都在工具包預設好,不要學員操心。 ## 技術棧總覽(v6 簡化版) | 層 | 選型 | 學員需要懂嗎? | |----|------|-------------| | 前端框架 | **Next.js 14 + TypeScript(App Router)** | 不用懂,改範本而已 | | UI 元件庫 | **shadcn/ui + Tailwind**(untitled UI 風格範本庫) | 不用懂 CSS,改範本 | | 後端 | **Next.js API Routes + Server Actions** | 不用懂,提示詞自動產生 | | 資料庫 | **Supabase(Postgres)** | 不用懂 SQL,工具包預設 schema | | ORM | **Drizzle**(簡潔、輕量、學員看得懂) | 看得懂表結構即可 | | 認證 | **Supabase Auth**(含 Google / Microsoft / Magic Link) | 不用懂,預設好 | | 權限 | **Postgres RLS**(兩級:老闆 / 員工,預設模板) | 不用懂,套用預設模板 | | 部署 | **Vercel + Supabase**(兩個按鈕一鍵起站) | 不用懂,照 SOP 點 | | LLM 接取 | **直接呼叫 OpenAI / Anthropic SDK + 自建薄 wrapper** | 不用懂底層 | | 向量資料庫 | **Supabase pgvector** | 不用懂 | | 檔案儲存 | **Supabase Storage** | 不用懂 | | 排程 | **Vercel Cron** | 不用懂 | | 監控 | **Vercel Analytics + Supabase Dashboard** | 不用懂 | | 稽核 / Log | **預設一張 audit_log 表 + 自動寫入 helper** | 不用懂機制,套用 helper | | 通知整合 | **預設 LINE Notify / Email helper**(傳產主流) | 改設定即可 | **對比 v5 拿掉的元件**:Docker / Kubernetes / Helm / Keycloak / NestJS / BullMQ / OpenTelemetry / Loki / Prometheus / MinIO / LiteLLM / Vault / 獨立 audit schema + trigger / Air-gapped install **這些的功能去哪了**:要嘛 Vercel / Supabase 內建處理(部署、認證、監控、儲存),要嘛工具包用更簡單方式封裝(audit log 直接一張表 + helper、LLM 直接 SDK 不用 gateway 層、權限預設兩級不分四級)。 ## 為什麼這樣選 ### 前端 Next.js 14 + shadcn/ui - shadcn/ui 是「複製進專案的元件原始碼」,可以直接在工具包裡客製成 untitled UI 風格範本 - Vercel(Next.js 親兒子)一鍵部署,學員不用學 CI/CD - 元件庫不外掛、無授權糾葛 ### 後端 Next.js API Routes / Server Actions - 不用另起 Node 後端服務,前後端同一個專案 - 學員部署一個東西就好(Vercel) - API Routes 寫起來像寫函數,比 NestJS 直觀 ### Supabase(取代 Postgres + Keycloak + MinIO + Prometheus 一系列) - 一個服務解決:資料庫 + 認證 + 儲存 + 即時 + 向量 - Postgres 原生(不是套殼),客戶資料以後可搬走(不鎖死) - RLS 內建,權限模板套用即可 - 免費方案能撐住主 TA 90% 客戶到月活 1 萬以上 - 付費版是月費 25 美元起,便宜 - 中小老闆能理解的「打開 dashboard 看資料」介面 ### Vercel - 與 Next.js 整合度最高 - 一鍵部署、自動 HTTPS、自動全球 CDN - 免費方案能撐住主 TA 多數客戶 - 付費版 20 美元起 ### 為什麼不選 | 拿掉的 | 為什麼 | |--------|-------| | Docker / K8s / Helm | 主 TA 沒 IT 部署不了。Vercel + Supabase 解決部署 | | Keycloak | Supabase Auth 已涵蓋主 TA 需求 | | NestJS | Next.js API Routes 已夠用、學員理解負擔較低 | | 自建 LLM Gateway / LiteLLM | 直接呼 OpenAI / Claude SDK + 薄 wrapper 即可。換模型成本由我們承擔 | | BullMQ / Redis 排程 | Vercel Cron 解決傳產 90% 排程需求 | | OpenTelemetry / Loki / Prometheus | Vercel Analytics + Supabase Dashboard 已夠 | | 獨立 audit schema + trigger | 一張 audit_log 表 + helper 函式即可(主 TA 不需要 ISO 級稽核) | ## On-Premise 版的調整 由於 On-Prem 變 by request,技術棧調整: - 客戶有 Docker 環境:給 docker-compose 起 self-hosted Supabase + Next.js - 客戶連 Docker 都不會:報價含「我方派人到場部署一週」服務(80-150 萬授權費內含) - 程式碼基底與 Cloud 同一份,環境變數切換而已 ## ISO27001 對照(縮減版) 主 TA 不需要 ISO 認證,但工具包仍預設「基本資安」: | 項 | 工具包預設 | |---|----------| | HTTPS | Vercel 預設、自動 | | 欄位加密(敏感資料) | Supabase Vault(內建) | | 認證 | Supabase Auth(OAuth + Magic Link) | | 密碼儲存 | bcrypt(Supabase 內建) | | 變更紀錄 | audit_log 表自動寫入 | | 備份 | Supabase 自動備份(每日) | | 還原演練 | 文件記載一鍵還原 SOP | **不對應的(v5 有、v6 砍)**:SIEM webhook 推送、K8s 安全控制項、HashiCorp Vault、密鑰輪替自動化、變更管理流程⋯⋯ 主 TA 不需要。 如果 On-Prem 客戶要求 ISO 級控制項,個案議價(80-150 萬授權費中可含此服務)。 ## 長壽性評估 | 元件 | 5 年風險 | 退場路徑 | |------|---------|---------| | Next.js | 中(Vercel 商業策略) | 退到 Remix 或原生 React | | Supabase | 中(仍年輕、公司) | Postgres 標準介面,可搬到任意 Postgres | | Vercel | 中 | Cloudflare Pages / Netlify | | shadcn/ui | 低(複製進專案、不依賴遠端) | 不需 | | Drizzle | 中 | Prisma 或原生 SQL | | OpenAI / Claude SDK | 低(標準介面、可換) | 我方薄 wrapper 抽象 | | pgvector | 低 | 標準擴充 | **退場原則**:所有「中」風險元件,工具包介面層都要包薄一層自有抽象。 --- **本文件結束。** 配合 B3(啟動工具包說明書)一起看。