.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
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:
Public URLs
Example: minimal local file
Example: with Google OAuth
SetAUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET in .env.local. In Google Cloud Console, set the authorized redirect URI to:
