Skip to content

本地开发环境配置

这页属于高级接入参考,适合需要本地联调 Dashboard、backend、webhook 和链上监听链路的团队。

本地开发时有两条主要服务链路:

链路涉及服务说明
仪表盘鉴权本地 Supabase ↔ 前端登录 ↔ 后端 JWT 校验管理商户登录和 dashboard 会话
链上监听多链 RPC ↔ 统一 backend 事件 ingestion监听 PaymentReceived 链上事件;本地默认启用 Base / Arbitrum / BSC

关键本地服务

服务默认地址
Homepagehttp://localhost:5180
Dashboard / payment intent checkouthttp://localhost:3000
Backend listenerhttp://127.0.0.1:3003
Supabase APIhttp://127.0.0.1:54321
Supabase Studiohttp://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:3003

backend/.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

相关页面