Environment Setup
Configure environment variables for your MkSaaS application
MkSaaS requires several environment variables to function properly, and this guide explains how to set them up.
Create an environment variables file (.env) in the root directory of your project, and never commit it to version control.
You can copy the example file as a starting point:
cp env.example .envEnvironment Variables
Core Configuration
| Variable | Description |
|---|---|
| NEXT_PUBLIC_BASE_URL | The public URL of your site, e.g. http://localhost:3000 for development, https://=YOUR-DOMAIN.com for production |
Database
Learn how to set up a database in the Database Setup guide.
| Variable | Description |
|---|---|
| DATABASE_URL | Database connection URL |
Authentication
Learn how to set up authentication in the Authentication Setup guide.
| Variable | Description |
|---|---|
| BETTER_AUTH_SECRET | A random string used to hash tokens and sign cookies |
| GOOGLE_CLIENT_ID | Google OAuth client ID (optional) |
| GOOGLE_CLIENT_SECRET | Google OAuth client secret (optional) |
| GITHUB_CLIENT_ID | GitHub OAuth client ID (optional) |
| GITHUB_CLIENT_SECRET | GitHub OAuth client secret (optional) |
Learn how to set up email in the Email Setup guide.
| Variable | Description |
|---|---|
| RESEND_API_KEY | API key for Resend email service |
Newsletter
Learn how to set up newsletter in the Newsletter Setup guide.
| Variable | Description |
|---|---|
| RESEND_API_KEY | API key for Resend email service |
Storage
Learn how to set up storage in the Storage Setup guide.
| Variable | Description |
|---|---|
| STORAGE_REGION | Region for the storage bucket |
| STORAGE_BUCKET_NAME | Name of the storage bucket |
| STORAGE_ACCESS_KEY_ID | Access key ID for the storage bucket |
| STORAGE_SECRET_ACCESS_KEY | Secret access key for the storage bucket |
| STORAGE_ENDPOINT | Endpoint for the storage bucket |
| STORAGE_PUBLIC_URL | Public URL for the storage bucket |
Payment
Learn how to set up payments in the Payment Setup guide.
| Variable | Description |
|---|---|
| STRIPE_SECRET_KEY | Stripe secret key |
| STRIPE_WEBHOOK_SECRET | Stripe webhook signing secret |
| NEXT_PUBLIC_STRIPE_PRICE_PRO_MONTHLY | Stripe price ID for pro monthly subscription |
| NEXT_PUBLIC_STRIPE_PRICE_PRO_YEARLY | Stripe price ID for pro yearly subscription |
| NEXT_PUBLIC_STRIPE_PRICE_LIFETIME | Stripe price ID for lifetime subscription |
Credits
Learn how to set up credits in the Credits Setup guide.
| Variable | Description |
|---|---|
| NEXT_PUBLIC_STRIPE_PRICE_CREDITS_BASIC | Stripe price ID for basic credit package (optional) |
| NEXT_PUBLIC_STRIPE_PRICE_CREDITS_STANDARD | Stripe price ID for standard credit package (optional) |
| NEXT_PUBLIC_STRIPE_PRICE_CREDITS_PREMIUM | Stripe price ID for premium credit package (optional) |
| NEXT_PUBLIC_STRIPE_PRICE_CREDITS_ENTERPRISE | Stripe price ID for enterprise credit package (optional) |
Cron Jobs
Learn how to set up cron jobs in the Cron Jobs Setup guide.
| Variable | Description |
|---|---|
| CRON_JOBS_USERNAME | Username for basic authentication to trigger cron jobs |
| CRON_JOBS_PASSWORD | Password for basic authentication to trigger cron jobs |
AI Features
Learn how to set up AI features in the AI Setup guide.
| Variable | Description |
|---|---|
| OPENAI_API_KEY | API key for OpenAI |
| FAL_API_KEY | API key for FAL |
| FIREWORKS_API_KEY | API key for Fireworks |
| REPLICATE_API_TOKEN | API key for Replicate |
| GOOGLE_GENERATIVE_AI_API_KEY | API key for Google Generative AI |
| DEEPSEEK_API_KEY | API key for DeepSeek |
| OPENROUTER_API_KEY | API key for OpenRouter |
Analytics
Learn how to set up analytics in the Analytics Setup guide.
| Variable | Description |
|---|---|
| NEXT_PUBLIC_GOOGLE_ANALYTICS_ID | Google Analytics ID |
| NEXT_PUBLIC_UMAMI_WEBSITE_ID | Umami Analytics website ID |
| NEXT_PUBLIC_UMAMI_SCRIPT | Umami Analytics script URL |
| NEXT_PUBLIC_PLAUSIBLE_DOMAIN | Plausible Analytics domain |
| NEXT_PUBLIC_PLAUSIBLE_SCRIPT | Plausible Analytics script URL |
| NEXT_PUBLIC_DATAFAST_WEBSITE_ID | DataFast Analytics ID |
| NEXT_PUBLIC_DATAFAST_DOMAIN | DataFast Analytics domain |
| NEXT_PUBLIC_POSTHOG_KEY | PostHog Analytics key |
| NEXT_PUBLIC_POSTHOG_HOST | PostHog Analytics host |
| NEXT_PUBLIC_AHREFS_WEBSITE_ID | Ahrefs Analytics website ID |
| NEXT_PUBLIC_Seline_TOKEN | Seline Analytics token |
| NEXT_PUBLIC_OPENPANEL_CLIENT_ID | OpenPanel Analytics client ID |
| NEXT_PUBLIC_CLARITY_PROJECT_ID | Clarity Analytics project ID |
Notification
Learn how to set up notification in the Notification Setup guide.
| Variable | Description |
|---|---|
| DISCORD_WEBHOOK_URL | Discord webhook URL for receiving notifications of successful payments |
| FEISHU_WEBHOOK_URL | Feishu webhook URL for receiving notifications of successful payments |
Captcha
Learn how to set up captcha in the Captcha Setup guide.
| Variable | Description |
|---|---|
| NEXT_PUBLIC_TURNSTILE_SITE_KEY | Turnstile site key |
| TURNSTILE_SECRET_KEY | Turnstile secret key |
Chatbox
Learn how to set up chatbox in the Chatbox Setup guide.
| Variable | Description |
|---|---|
| NEXT_PUBLIC_CRISP_WEBSITE_ID | Crisp website ID for chat features |
Affiliates
Learn how to set up affiliates in the Affiliates Setup guide.
| Variable | Description |
|---|---|
| NEXT_PUBLIC_AFFILIATE_AFFONSO_ID | Affonso affiliate ID |
| NEXT_PUBLIC_AFFILIATE_PROMOTEKIT_ID | Promotekit affiliate ID |
Other Configurations
Some other configurations are also available in the environment variables file, you may need to set them up depending on your needs.
| Variable | Description |
|---|---|
| DISABLE_IMAGE_OPTIMIZATION | Disable image optimization, if you deploy your website to Vercel, image optimization is enabled by default, and may cost you more money |
| NEXT_PUBLIC_DEMO_WEBSITE | Run this website as demo website, I use this for MkSaaS demo website. In most cases, you should not set this or leave it to false |
Verifying Environment Variables
To verify that your environment variables are correctly set up, run:
pnpm run devIf everything is configured correctly, your application should start and run normally without any environment-related errors.
Video Tutorial
Next Steps
Now that your environment is set up, explore these related topics:
MkSaaS Docs