环境配置
为你的 LaunchSaaS 应用配置环境变量
环境配置
LaunchSaaS 需要几个环境变量才能正常运行。本指南解释如何设置它们。
在项目根目录创建 .env 文件,并切勿将其提交到版本控制。
cp .env.example .env环境变量
核心配置
| 变量 | 描述 |
|---|---|
NEXT_PUBLIC_APP_ENV | 开发环境设置为 local,生产环境设置为 production |
NEXT_PUBLIC_APP_URL | 你的网站 URL(如开发环境为 http://localhost:3000,生产环境为 https://yourdomain.com) |
数据库
在数据库设置指南中了解如何设置数据库。
| 变量 | 描述 |
|---|---|
DATABASE_TYPE | 数据库类型:postgresql(默认)或 mysql |
DATABASE_URL | 数据库连接 URL |
身份验证
在身份验证设置指南中了解如何设置身份验证。
| 变量 | 描述 |
|---|---|
BETTER_AUTH_SECRET | 用于加密的随机 32+ 字符字符串。使用 VictoryHub 生成 |
NEXT_PUBLIC_GOOGLE_CLIENT_ID | Google OAuth 客户端 ID(可选) |
GOOGLE_CLIENT_SECRET | Google OAuth 客户端密钥(可选) |
NEXT_PUBLIC_GITHUB_CLIENT_ID | GitHub OAuth 客户端 ID(可选) |
GITHUB_CLIENT_SECRET | GitHub OAuth 客户端密钥(可选) |
管理员用户
| 变量 | 描述 |
|---|---|
ADMIN_ID | 管理员用户的 UUID。在 VictoryHub 生成 |
ADMIN_EMAIL | 管理员电子邮件地址 |
ADMIN_PASSWORD | 管理员密码 |
电子邮件(可选)
在电子邮件设置指南中了解如何设置电子邮件。
| 变量 | 描述 |
|---|---|
RESEND_API_KEY | 来自 Resend 的 API 密钥 |
RESEND_FROM_EMAIL | 发件人电子邮件(测试时使用 [email protected]) |
新闻通讯(可选)
在新闻通讯设置指南中了解如何设置新闻通讯。
| 变量 | 描述 |
|---|---|
RESEND_AUDIENCE_NEWSLETTER | 用于新闻通讯的 Resend Audience ID(可选) |
RESEND_AUDIENCE_WAITLIST | 用于等待列表的 Resend Audience ID(可选) |
支付 - Stripe(可选)
在支付设置指南中了解如何设置支付。
| 变量 | 描述 |
|---|---|
STRIPE_SECRET_KEY | Stripe 密钥(sk_test_... 或 sk_live_...) |
STRIPE_WEBHOOK_SECRET | Stripe webhook 签名密钥(whsec_...) |
支付 - Creem(可选)
在支付设置指南中了解如何设置 Creem。
| 变量 | 描述 |
|---|---|
CREEM_API_KEY | Creem API 密钥 |
CREEM_WEBHOOK_SECRET | Creem webhook 签名密钥 |
验证码(可选)
| 变量 | 描述 |
|---|---|
NEXT_PUBLIC_CAPTCHA_PUBLIC_KEY | 验证码站点密钥 |
CAPTCHA_SECRET_KEY | 验证码密钥 |
存储(可选)
在存储设置指南中了解如何设置存储。
| 变量 | 描述 |
|---|---|
S3_REGION | S3 区域 |
S3_BUCKET | S3 存储桶名称 |
S3_ACCESS_KEY_ID | S3 访问密钥 ID |
S3_SECRET_ACCESS_KEY | S3 秘密访问密钥 |
S3_API_ENDPOINT | S3 API 端点 |
S3_PUBLIC_ENDPOINT | S3 公共端点 URL |
缓存(可选)
在缓存设置指南中了解如何设置缓存。
Redis(标准)
用于本地 Redis 或托管 Redis 服务(AWS ElastiCache、Azure Cache 等)。
| 变量 | 描述 |
|---|---|
REDIS_URL | Redis 连接 URL(例如 redis://localhost:6379 或 rediss://...) |
Upstash Redis
用于使用 HTTP REST API 的 Upstash Redis(非常适合 serverless)。
| 变量 | 描述 |
|---|---|
UPSTASH_REDIS_REST_URL | Upstash Redis REST 端点 |
UPSTASH_REDIS_REST_TOKEN | Upstash Redis REST 令牌 |
Cloudflare KV
| 变量 | 描述 |
|---|---|
CLOUDFLARE_ACCOUNT_ID | Cloudflare 账户 ID |
CLOUDFLARE_KV_NAMESPACE_ID | Cloudflare KV 命名空间 ID |
CLOUDFLARE_API_TOKEN | Cloudflare API 令牌 |
分析(可选)
| 变量 | 描述 |
|---|---|
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID | Google Analytics ID |
NEXT_PUBLIC_OPENPANEL_CLIENT_ID | OpenPanel 客户端 ID |
NEXT_PUBLIC_PLAUSIBLE_DOMAIN | Plausible 域名 |
NEXT_PUBLIC_UMAMI_WEBSITE_ID | Umami 网站 ID |
NEXT_PUBLIC_UMAMI_URL | Umami 脚本 URL |
NEXT_PUBLIC_POSTHOG_KEY | PostHog API 密钥 |
NEXT_PUBLIC_POSTHOG_HOST | PostHog 主机 URL |
NEXT_PUBLIC_VERCEL_ANALYTICS_ENABLED | 启用 Vercel Analytics(true / false) |
NEXT_PUBLIC_AHREFS_ANALYTICS_ENABLED | 启用 Ahrefs Analytics(true / false) |
GitHub 集成(可选)
用于付款完成后自动授予仓库访问权限。在 src/configuration/features.ts 中启用。
| 变量 | 描述 |
|---|---|
GITHUB_TOKEN | GitHub 个人访问令牌,需要 admin:org 和 repo 作用域 |
GITHUB_REPO | 仓库格式为 owner/repo |
功能配置
LaunchSaaS 使用位于 src/configuration/features.ts 的集中式功能配置文件来控制启用哪些提供商:
export const features: Features = {
email: {
provider: "resend", // "resend" | "disabled"
},
newsletter: {
provider: "resend", // "resend" | "disabled"
},
storage: {
provider: "disabled", // "s3" | "disabled"
},
cache: {
provider: "redis", // "redis" | "upstash" | "cloudflare-kv" | "disabled"
},
authentication: {
magicLink: true,
captcha: {
enabled: true,
provider: "cloudflare-turnstile",
},
oauths: {
google: true,
github: true,
},
},
payment: {
provider: "stripe", // "stripe" | "creem" | "disabled"
hooks: {
github: true, // 启用 GitHub 集成
email: true, // 启用支付完成邮件
},
},
};在功能配置指南中了解更多。
验证环境变量
要验证环境变量是否正确设置,运行:
pnpm run dev如果所有配置都正确,你的应用程序应该启动而不会出现任何与环境相关的错误。