OpenPermit Docs
Guides

Run OpenPermit Locally

Exercise paid HTTP and onchain flows against local Docker and Postgres.

Run the local Docker services first. OpenPermit uses Postgres for product runtime state, including users, organizations, sellers, resources, mandates, payments, settlements, receipts, webhooks, idempotency, and audit events.

pnpm docker:dev
pnpm --filter @openpermit/database db:migrate
pnpm --filter @openpermit/api dev

Inspect the local database with Drizzle Studio:

pnpm db:studio

Then point integrations at the local API:

const openpermit = createOpenPermitClient({
	baseUrl: 'http://localhost:9999',
	apiKey: process.env.OPENPERMIT_BOOTSTRAP_TOKEN,
});

The local API is the same Postgres-backed product path used by live onchain tests. Offchain providers and live chain tests are enabled only through explicit provider or chain environment configuration.

Do not use bootstrap tokens or placeholder provider config in production integrations.