Appearance
本地开发环境配置
这页属于高级接入参考,适合需要本地联调 Dashboard、backend、webhook 和链上监听链路的团队。
本地开发时有两条主要服务链路:
| 链路 | 涉及服务 | 说明 |
|---|---|---|
| 仪表盘鉴权 | 本地 Supabase ↔ 前端登录 ↔ 后端 JWT 校验 | 管理商户登录和 dashboard 会话 |
| 链上监听 | 多链 RPC ↔ 统一 backend 事件 ingestion | 监听 PaymentReceived 链上事件;本地默认启用 Base / Arbitrum / BSC |
关键本地服务
| 服务 | 默认地址 |
|---|---|
| Homepage | http://localhost:5180 |
| Dashboard / payment intent checkout | http://localhost:3000 |
| Backend listener | http://127.0.0.1:3003 |
| Supabase API | http://127.0.0.1:54321 |
| Supabase Studio | http://127.0.0.1:54323 |
环境变量约束
前端 VITE_SUPABASE_URL 和后端 SUPABASE_URL 必须指向同一个 Supabase 实例。
frontend/dash/.env.local
bash
VITE_SUPABASE_URL=http://127.0.0.1:54321
VITE_SUPABASE_PUBLISHABLE_KEY=sb_publishable_ACJWlzQHlZjBrEguHvfOxg_3BJgxAaH
VITE_LISTENER_BASE_URL=http://127.0.0.1:3003backend/.env
bash
SUPABASE_URL=http://127.0.0.1:54321启动方式
逐个启动:
bash
cd frontend/dash
supabase start
npm run dev:backend
npm run dev:dash
npm run dev:home或直接用仓库脚本:
bash
npm run dev现在 npm run dev 默认会启动本地统一多链 backend 栈。
本地 webhook 限制
Alchemy 不能直接把 webhook 推到本地地址,因此常见做法有两种:
方案 A:内网穿透
bash
ngrok http 3003或:
bash
cloudflared tunnel --url http://localhost:3003方案 B:手动 backfill
bash
curl -X POST http://127.0.0.1:3003/internal/backfill \
-H "Authorization: Bearer local-dev-internal-token" \
-H "Content-Type: application/json" \
-d '{"fromBlock": 28000000}'存储驱动
默认 STORE_DRIVER=memory,适合本地调试。需要持久化时切到 Firestore。
bash
STORE_DRIVER=firestore
FIRESTORE_COLLECTION_PREFIX=listener