Environment Variables Reference
All environment variables used across Kuploy components, grouped by concern.
Licensing
| Variable | Description | Default | Required |
|---|
LICENSE_KEY | License key from kuploy.app | (none) | Yes (Cloud) |
LICENSE_HUB_URL | License hub URL | https://kuploy.app | No |
LICENSE_SYNC_INTERVAL_SECONDS | How often to sync usage with license hub | 300 (5 min) | No |
LICENSE_SYNC_RETRY_SECONDS | Retry interval on sync failure | 60 (1 min) | No |
LICENSE_KEY and LICENSE_HUB_URL can also be configured via the admin UI (Admin → Domains → License Hub Integration). UI-saved config takes precedence over environment variables and does not require a restart.
Stripe Billing
| Variable | Description | Default | Required |
|---|
STRIPE_SECRET_KEY | Stripe API secret key | (none) | Yes (Cloud) |
STRIPE_PUBLISHABLE_KEY | Stripe publishable key | (none) | Yes (Cloud) |
STRIPE_WEBHOOK_SECRET | Webhook signing secret | (none) | Yes (Cloud) |
Authentication
| Variable | Description | Default | Required |
|---|
BETTER_AUTH_SECRET | Authentication secret (32+ chars) | (none) | Yes (Cloud) |
PLATFORM_ADMIN_EMAIL | Email of the first platform admin | (none) | Recommended |
SMTP
| Variable | Description | Default | Required |
|---|
SMTP_HOST | SMTP server hostname | (none) | Recommended |
SMTP_PORT | SMTP port | 587 | No |
SMTP_USER | SMTP authentication username | (none) | If SMTP_HOST set |
SMTP_PASS | SMTP authentication password | (none) | If SMTP_HOST set |
SMTP_FROM | Sender email address | (none) | If SMTP_HOST set |
SMTP_FROM_NAME | Sender display name | Kuploy | No |
Database
| Variable | Description | Default | Required |
|---|
DATABASE_URL | PostgreSQL connection string | (none) | Yes |
REDIS_URL | Redis connection string | (none) | Yes |
Application
| Variable | Description | Default | Required |
|---|
NEXT_PUBLIC_APP_URL | Public URL of the kuploy-cloud instance | (none) | Recommended |
PORT | Port the application listens on | 3000 | No |
NODE_ENV | Node.js environment | production | No |
Cron
| Variable | Description | Default | Required |
|---|
CRON_SECRET | Secret for authenticating cron job requests | (none) | If using cron |
Configuration Priority
When the same setting is available via both environment variable and the admin dashboard:
- Admin dashboard (stored encrypted in database) — highest priority
- Environment variable — fallback
This means you can override environment variables through the admin dashboard without restarting the application. See Admin Dashboard for details.