使用 UV 和 dummy 憑證快速測試系統
docker run --name token-manager-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_DB=tokenmanager \
-p 5433:5432 \
-d postgres:15注意: 使用 5433 端口避免與本地 PostgreSQL 衝突
cd backend
cat > .env << 'EOF'
DATABASE_URL=postgresql://postgres:password@127.0.0.1:5433/tokenmanager
CF_ACCOUNT_ID=dummy
CF_API_TOKEN=dummy
CF_KV_NAMESPACE_ID=dummy
EOFcd backend
# 創建虛擬環境
uv venv
# 安裝依賴
uv pip install -r requirements.txt
# 啟動服務
uv run uvicorn main:app --reload --port 8000# 新終端
cd frontend
npm run dev# 新終端
cd backend
./test_local.sh- 後端 API: http://localhost:8000
- API 文檔: http://localhost:8000/docs
- 前端 UI: http://localhost:5173
curl -X POST http://localhost:8000/api/tokens \
-H "Content-Type: application/json" \
-d '{
"name": "Test",
"department": "dev",
"scopes": ["*"],
"expires_days": 90
}'curl http://localhost:8000/api/tokens | uv run python -m json.toolcurl -X POST http://localhost:8000/api/routes \
-H "Content-Type: application/json" \
-d '{
"path": "/api/test",
"backend_url": "https://httpbin.org/anything",
"description": "Test route"
}'curl http://localhost:8000/api/routes | uv run python -m json.tool如果要測試完整流程 (包含 Worker 驗證):
npm install -g wranglerwrangler logincd worker
wrangler kv namespace create "TOKENS"將返回的 Namespace ID 填入 worker/wrangler.toml:
kv_namespaces = [
{ binding = "TOKENS", id = "your_actual_id_here" }
]CF_ACCOUNT_ID=your_actual_account_id
CF_API_TOKEN=your_actual_api_token
CF_KV_NAMESPACE_ID=your_actual_namespace_id# 停止(找出佔用端口的進程並終止)
lsof -ti:8000 | xargs kill -9
# 啟動
cd backend
uv run uvicorn main:app --reload --port 8000cd worker
npm install
npm run devwrangler deploy✅ 後端健康檢查通過
✅ 可以創建 Token
✅ Token 正確返回 (ntk_ 前綴)
✅ Token 列表正常顯示
✅ 可以創建路由
✅ 路由列表正常顯示
✅ 統計信息正確
✅ 前端可以打開
✅ dummy 模式下顯示警告訊息 ⚠️ Warning: Using dummy Cloudflare credentials
# 停止後端(通過端口找到並終止)
lsof -ti:8000 | xargs kill -9
# 停止前端(Ctrl+C 在運行 npm run dev 的終端,或)
lsof -ti:5173 | xargs kill -9
# 如果端口自動跳轉到 5174
lsof -ti:5174 | xargs kill -9
# 停止 Docker PostgreSQL
docker stop token-manager-db
docker rm token-manager-db解決: 改用 5433 端口 (已在指南中使用)
解決:
# 找出佔用端口的進程
lsof -ti:8000 # 後端
lsof -ti:5173 # 前端(Vite會自動跳到5174如果5173被佔用)
# 終止該進程
lsof -ti:8000 | xargs kill -9 # 後端
lsof -ti:5173 | xargs kill -9 # 前端錯誤: wrangler kv:namespace create
正確: wrangler kv namespace create (沒有冒號!)
這是正常的! dummy 憑證只跳過 KV 同步,Token 仍會存入資料庫。
本地測試成功後:
- 按照
docs/DEPLOYMENT.md部署到生產環境 - 配置真實的 Cloudflare 憑證
- 部署 Worker
- 在 n8n 中開始使用!
祝開發順利! 🚀