Here's a list of the environment variables you need to set up for your project:
Name | Purpose | Values | Type | Required | Possible Values |
---|---|---|---|---|---|
BASE_URL | Base URL for the application | your domain with https | String | Yes | https://supersaas.dev |
RPID | Relying Party ID for passkey authentication | your domain without http protocol | String | Yes (If using Passkeys) | supersaas.dev |
TURSO_DB_URL | URL for Turso database connection | libsql:your-db-url | String | Yes (If using Turso DB) | |
TURSO_DB_TOKEN | Authentication token for Turso database | your-turso-db-token | String | Yes (If using Turso DB) | |
PLUNK_API_TOKEN | API token for Plunk email service | your-plunk-api-token | String | Yes (If using Plunk) | |
RESEND_API_KEY | API key for Resend email service | your-resend-api-key | String | Yes (If using Resend) | |
NUXT_OAUTH_GITHUB_CLIENT_ID | GitHub OAuth client ID | your-github-client-id | String | Yes (If using GitHub) | |
NUXT_OAUTH_GITHUB_CLIENT_SECRET | GitHub OAuth client secret | your-github-client-secret | String | Yes (If using GitHub) | |
NUXT_OAUTH_GOOGLE_CLIENT_ID | Google OAuth client ID | your-google-client-id | String | Yes (If using Google) | |
NUXT_OAUTH_GOOGLE_CLIENT_SECRET | Google OAuth client secret | your-google-client-secret | String | Yes (If using Google) | |
NUXT_OAUTH_X_CLIENT_ID | X (Twitter) OAuth client ID | your-x-client-id | String | Yes (If using X/Twitter) | |
NUXT_OAUTH_X_CLIENT_SECRET | X (Twitter) OAuth client secret | your-x-client-secret | String | Yes (If using X/Twitter) | |
NUXT_SESSION_PASSWORD | Password for Nuxt session encryption | your-nuxt-session-password | String | Yes (If PAYMENT_PROVIDER is Stripe) | 32 Characters random string |
STRIPE_SECRET_KEY | Stripe secret key for payment processing | your-stripe-secret-key | String | Yes (If PAYMENT_PROVIDER is Stripe) | |
STRIPE_PUBLIC_KEY | Stripe public key for payment processing | your-stripe-public-key | String | No (If PAYMENT_PROVIDER is Stripe) | |
STRIPE_WEBHOOK_SECRET | Stripe webhook secret for event verification | your-stripe-webhook-secret | String | Yes (If PAYMENT_PROVIDER is Stripe) | |
LEMONSQUEEZY_API_KEY | LemonSqueezy API key | your-lemonsqueezy-api-key | String | Yes (If PAYMENT_PROVIDER is LemonSqueezy) | |
LEMONSQUEEZY_STORE_ID | LemonSqueezy store ID | your-lemonsqueezy-store-id | String | Yes (If PAYMENT_PROVIDER is LemonSqueezy) | |
LEMONSQUEEZY_WEBHOOK_SECRET | LemonSqueezy webhook secret | your-lemonsqueezy-webhook-secret | String | Yes (If PAYMENT_PROVIDER is LemonSqueezy) | |
FROM_EMAIL | Email address used as the sender | your-from-email | String | Yes | Email id |
EMAIL_PROVIDER | Selected email service provider (resend or plunk) | your-email-provider | String | Yes | resend or plunk |
PAYMENT_PROVIDER | Selected payment service provider (stripe or lemonsqueezy) | your-payment-provider | String | Yes | stripe or lemonsqueezy |
S3_REGION | AWS S3 region for file storage | your-s3-region | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_ACCESS_KEY_ID | AWS S3 access key ID | your-s3-access-key-id | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_ACCESS_KEY_ID | AWS S3 access key ID | your-s3-access-key-id | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_SECRET_ACCESS_KEY | AWS S3 secret access key | your-s3-secret-access-key | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_BUCKET_NAME | AWS S3 bucket name | your-s3-bucket-name | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_ENDPOINT | AWS S3 endpoint URL | your-s3-endpoint | String | Yes (If STORAGE_PROVIDER is S3) | |
S3_PUBLIC_ACCESS_URL | Public access URL for S3 stored files | your-s3-public-access-url | String | Yes (If STORAGE_PROVIDER is S3) | |
STORAGE_PROVIDER | Selected storage service provider (S3 or local or nuxthub) | your-storage-provider | String | Yes | S3 or local or nuxthub |
NUXT_HUB_PROJECT_KEY | Nuxt Hub project key (auto added by nuxthub If deployed) | your-nuxthub-project-key | String | Yes (If you are hosting on nuxthub) |