Environment variables
Configure URLs, Solana, tenancy, and optional services for a self-hosted instance.
Local Docker Compose works without an environment file. To change the defaults, copy .env.example. For a public instance, start with .env.production.example.
Core settings
DASHBOARD_URL: Public dashboard URL. Required in production. Local Docker derives it fromDASHBOARD_PORTwhen omitted.DASHBOARD_PORT: Host port used by the Docker dashboard.API_PORT: Port used by the API. Docker Compose sets this by default.MONGODB_URI: MongoDB connection string. Leave empty to use the MongoDB container included with Compose.APP_SECRET: Signs sessions and encrypts stored values. Set it in production and keep the same value across restarts and replicas.ZONELESS_TELEMETRY: Set to0to disable anonymous usage reporting. Reporting is off by default unless enabled during setup.
Solana
LIVEMODE: Set tofalsefor Solana devnet ortruefor mainnet.SOLANA_RPC_URL: Solana RPC endpoint. When omitted, Zoneless uses the public endpoint for the selected network. Use a dedicated RPC provider in production.SUBSCRIPTION_OPERATOR_KEY: Base58 secret key that owns on-chain subscription plans. Required for recurring prices.TRANSACTION_FEE_PAYER_KEY: Optional Base58 key used to pay Checkout network fees and rent. When omitted, the customer pays through their wallet.
Checkout and Payment Links
CHECKOUT_URL: Optional Checkout origin, such ashttps://checkout.yourdomain.com. When omitted, Checkout usesDASHBOARD_URL/c/:id.PAYMENT_LINK_URL: Optional Payment Links origin. When omitted, Zoneless usesCHECKOUT_URLorDASHBOARD_URL/b/:id.
Tenancy and operator mode
SINGLE_TENANT: Defaults totrue. Set tofalseto allow more than one account on the instance.OPERATOR_API_KEY: Enables operator mode. This disables public setup and provisions accounts through/v1/operator. Operator mode ignoresSINGLE_TENANT. Generate the key withopenssl rand -hex 32.
Subscription billing
Self-hosted recurring billing needs a scheduled job. Use the HTTP billing endpoint in production.
POST /v1/billing/run_for_platform: Call on a schedule with your API key. See Billing Helpers.BILLING_MONITOR_ENABLED: Enables the built-in poller. Use only for local or single-instance deployments.BILLING_POLL_INTERVAL_MS: Poll interval in milliseconds. Defaults to60000.
Local configuration
cp .env.example .envProduction essentials
DASHBOARD_URL=https://dashboard.yourdomain.com
APP_SECRET=your_generated_secret
LIVEMODE=true
SINGLE_TENANT=true
Next steps
- Self-hosting: Start a local instance
- Deployment: Configure a production server
- Local Development: Test and debug Docker
