docker compose -f docker-compose.dev.yml up --build -dThis starts the dev server (mirage) and an isolated PostgreSQL (mirage-db)
in the background; they stay alive and restart automatically. The app is served
at http://localhost:4000.
docker compose -f docker-compose.dev.yml logs -f mirage # follow logs
docker compose -f docker-compose.dev.yml down # stopLinting, formatting, typechecking and tests run directly with Bun:
bun run fix
bun run testRequires Bun (see packageManager in package.json) and a
reachable PostgreSQL database.
bun install
cp .env.example .env # then edit DATABASE_URL (and admin auth, see below)
bunx prisma migrate dev # apply migrations + generate the client
bun run dev # start the dev server (Vite) on http://localhost:4000bun run build # production build
bun run start # serve the build (.output/server/index.mjs)Prisma schema lives in prisma/schema.prisma.
bunx prisma migrate dev --name <name> # create + apply a migration in dev
bunx prisma migrate deploy # apply migrations in production
bunx prisma generate # regenerate the clientThe admin data-studio (UI + its server functions) is behind a single shared password; the provider API has its own per-user auth and is not affected.
- Local/CI: set
ADMIN_AUTH_DISABLED=1to skip the login screen entirely (the default in.env.example). - Production: unset
ADMIN_AUTH_DISABLEDand setADMIN_PASSWORDplusADMIN_SESSION_SECRET(≥ 32 chars —openssl rand -base64 48). Login is rate-limited per IP against brute force.
The rezervo-facing API is served under /api/chains/{chainIdentifier}/....
- OpenAPI:
bun run openapi:genwritesopenapi.json; browsable at/api/docs.