LogoLaunchSaaS

环境配置

为你的 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_IDGoogle OAuth 客户端 ID(可选)
GOOGLE_CLIENT_SECRETGoogle OAuth 客户端密钥(可选)
NEXT_PUBLIC_GITHUB_CLIENT_IDGitHub OAuth 客户端 ID(可选)
GITHUB_CLIENT_SECRETGitHub 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_KEYStripe 密钥(sk_test_...sk_live_...
STRIPE_WEBHOOK_SECRETStripe webhook 签名密钥(whsec_...

支付 - Creem(可选)

支付设置指南中了解如何设置 Creem。

变量描述
CREEM_API_KEYCreem API 密钥
CREEM_WEBHOOK_SECRETCreem webhook 签名密钥

验证码(可选)

变量描述
NEXT_PUBLIC_CAPTCHA_PUBLIC_KEY验证码站点密钥
CAPTCHA_SECRET_KEY验证码密钥

存储(可选)

存储设置指南中了解如何设置存储。

变量描述
S3_REGIONS3 区域
S3_BUCKETS3 存储桶名称
S3_ACCESS_KEY_IDS3 访问密钥 ID
S3_SECRET_ACCESS_KEYS3 秘密访问密钥
S3_API_ENDPOINTS3 API 端点
S3_PUBLIC_ENDPOINTS3 公共端点 URL

缓存(可选)

缓存设置指南中了解如何设置缓存。

Redis(标准)

用于本地 Redis 或托管 Redis 服务(AWS ElastiCache、Azure Cache 等)。

变量描述
REDIS_URLRedis 连接 URL(例如 redis://localhost:6379rediss://...

Upstash Redis

用于使用 HTTP REST API 的 Upstash Redis(非常适合 serverless)。

变量描述
UPSTASH_REDIS_REST_URLUpstash Redis REST 端点
UPSTASH_REDIS_REST_TOKENUpstash Redis REST 令牌

Cloudflare KV

变量描述
CLOUDFLARE_ACCOUNT_IDCloudflare 账户 ID
CLOUDFLARE_KV_NAMESPACE_IDCloudflare KV 命名空间 ID
CLOUDFLARE_API_TOKENCloudflare API 令牌

分析(可选)

变量描述
NEXT_PUBLIC_GOOGLE_ANALYTICS_IDGoogle Analytics ID
NEXT_PUBLIC_OPENPANEL_CLIENT_IDOpenPanel 客户端 ID
NEXT_PUBLIC_PLAUSIBLE_DOMAINPlausible 域名
NEXT_PUBLIC_UMAMI_WEBSITE_IDUmami 网站 ID
NEXT_PUBLIC_UMAMI_URLUmami 脚本 URL
NEXT_PUBLIC_POSTHOG_KEYPostHog API 密钥
NEXT_PUBLIC_POSTHOG_HOSTPostHog 主机 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_TOKENGitHub 个人访问令牌,需要 admin:orgrepo 作用域
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

如果所有配置都正确,你的应用程序应该启动而不会出现任何与环境相关的错误。

下一步