SUPABASE 地端架構入門

資料留在公司主機,
APP 讀正式資料庫

把整套系統想成公司的「資料倉庫」。SHOPLINE 是原始商店,Mac Studio A 裡的 Production Supabase 是整理後的正式倉庫,電商 APP 則是同仁使用的工作櫃台。

01

正式資料怎麼走

從原始商店到同仁操作介面的四個步驟

1

SHOPLINE 保存原始資料

商品、訂單與狀態先以 SHOPLINE 為原始主資料。

2

同步程式整理資料

透過正式 API 讀取、檢查、去重,再寫入公司資料庫。

3

Production Supabase 保存鏡像

Mac Studio A 保存整理後、可查詢與可控權限的正式資料。

4

Admin APP 提供工作介面

同仁從 APP 查資料,不需要每個畫面都直接向 SHOPLINE 詢問。

最短記法: SHOPLINE 是原始商店,Supabase 是公司正式資料倉庫,APP 是同仁使用的工作櫃台。
02

每一層負責什麼

資料、主機、介面與遠端入口各有不同工作

SUPABASE

Supabase

一套包含資料庫、登入、檔案與 API 功能的平台。它可以使用官方雲端,也可以由公司自己架設。

本案採公司自架,主要用來保存 SHOPLINE 正式鏡像、營運流程、同步狀態與稽核紀錄。
SELF-HOSTED

地端自架

系統由公司自己的主機運行與管理,不是把正式資料庫交給 Supabase 官方代管。

正式主機是 Mac Studio A;公司同時負責更新、監測、備份與災難復原。
PRIMARY HOST

Mac Studio A/正式主機

日常運行 Production Supabase、正式同步程式與 Admin APP 的主要設備。

它是目前唯一正式營運主機;資料庫管理介面與連接埠不直接對外公開。
DATA MIRROR

正式資料鏡像

把 SHOPLINE 的必要資料整理成適合公司查詢與操作的版本,但不取代 SHOPLINE 的原始交易真相。

目前商品與訂單狀態已走正式鏡像;未完成的敏感明細仍保持鎖定。
ADMIN APP

操作介面

同仁真正看到與操作的工作頁面。它向 Production Supabase 查資料,不直接接觸資料庫金鑰。

介面只顯示該角色可以看的內容;需要即時確認時,再由受控後端查原始系統。
REMOTE ACCESS

Cloudflare Tunnel/遠端入口

需要外地使用時,由公司主機主動建立加密通道,讓同仁安全連回 APP。

這是遠端入口層,不是資料庫;尚未啟用也不影響地端正式資料流先運行。
03

為什麼要分三個環境

練習、驗收、正式營運不可混在同一間倉庫

DEV

Dev/開發環境

工程開發與自動測試使用,可以重建,也可以放測試用資料。

像練習場;這裡的成功不能直接當成正式功能完成。
STAGING

Staging/驗收環境

上正式站前,先用接近正式的設定做整合與驗收。

像彩排場;用來確認升級、權限與資料流程不會傷到 Production。
PRODUCTION

Production/正式環境

公司日常真正使用的資料與服務,禁止隨意重設或載入假資料。

使用獨立容器、資料空間與正式金鑰,開發環境不能直接存取。
ISOLATION

容器、資料空間與金鑰隔離

三個環境各自使用不同的運行空間、資料存放區與開門鑰匙,避免誤操作互相影響。

「獨立資料空間」不代表每套環境都要另外買一顆實體硬碟。
04

資料怎麼被保護

入口、資料權限、秘密與備份分層負責

RLS

RLS/資料列權限

即使大家使用同一套 APP,也只讓每個角色讀到自己被允許的資料。

Cloudflare 負責誰能進門;APP 角色與 RLS 負責進門後能看什麼。
SECRETS

金鑰與秘密管理

SHOPLINE token、資料庫高權限金鑰與備份私鑰不放在前端、Discord 或公開檔案。

APP 不持有 SHOPLINE token;正式同步程序才在需要時取得必要權限。
ENCRYPTED BACKUP

加密備份

資料庫先在本機產生備份並加密,再上傳到主管限定的 Google Drive。

上傳的是無法直接閱讀的加密檔,解密金鑰不和備份放在同一處。
RESTORE TEST

還原測試

有備份檔不等於真的救得回來,還要定期下載、解密並在隔離環境實際還原。

本案會校驗檔案並逐表比對,確認備份不是只有「看起來存在」。
FUTURE BACKUP HOST

Mac Studio B/未來備援

未來純粹作為備援與備份主機,不承擔日常正式服務。

B 尚未購買,不阻擋目前正式架構;到位後再成為主要災難復原目的地。
HEALTH MONITORING

健康監控與自動啟動

系統會檢查 APP、資料庫與同步資料是否正常,主機重開後也會自動恢復服務。

異常要能被發現與記錄,不能只等同仁打不開頁面才知道。
05

常見問題

把最容易混淆的地方一次說清楚

地端 Supabase 是臨時架構嗎?

不是。Supabase 本來就支援公司自己架設。本案的正式架構就是 Mac Studio A 上的獨立 Production;功能可以逐區完成,但每區都要直接接正式資料流。

為什麼不直接讓 APP 每次都查 SHOPLINE?

直接查會受到 API 延遲、次數限制與外部服務狀態影響,也不方便做公司自己的權限、流程與稽核。同步到 Supabase 後,APP 可以更穩定地查詢整理後的正式資料。

Google Drive 是第二套正式資料庫嗎?

不是。Drive 只保存加密備份檔,不能直接提供 APP 查詢,也不做雙向同步。唯一日常正式資料庫仍是 Mac Studio A 的 Production Supabase。

Cloudflare Tunnel 會把 Supabase 公開到網路嗎?

不會。正式規劃只讓受保護的 APP 與必要路徑通過;資料庫、Supabase Studio 與其他管理服務不直接公開。

如果 Mac Studio A 關機會怎樣?

地端 APP 會暫時無法提供服務。健康監控與自動啟動可縮短中斷時間;加密備份負責救回資料,未來 Mac Studio B 則負責提升災難復原能力。