Skip to main content
All configuration lives in .env.local at the repository root (payoes/.env.local). Copy from .env.example in the same directory.
Restart npm run dev after changing environment variables.

Auth

Users can register with email and password, or sign in with Google when OAuth is configured.

Database

Must match the credentials in docker-compose.yml.

Object storage (MinIO)

Used for organization logo uploads.

Stellar

XLM payments work without USDC issuer variables. Set the issuer for the network you test when accepting USDC.

Email (SMTP)

Team invitation emails are sent only when SMTP is configured. Without SMTP, you can still test invites by copying the invite URL from the database or API response.

KYC (Persona)

See KYC verification for Persona sandbox setup.

Background workers

Self-hosted deployments only. Workers start automatically when the Next.js server boots (instrumentation.ts). See Webhook retry worker for retry behavior.

Soroban escrow (required for payments)

Payments and checkout require a deployed and initialized Payoes Soroban contract. Deploy and initialize with one command:
See Soroban escrow setup for the full walkthrough.

Public URLs

Example: minimal local file

Example: with Google OAuth

Set AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET in .env.local. In Google Cloud Console, set the authorized redirect URI to: