文档
开发指南项目配置

项目配置

🚀 Cheatsheet (快速执行)

目标: 5分钟内配置好所有功能,让项目跑起来

最快配置流程:

# 1. 复制环境变量模板
cp .env.local.example .env.local

# 2. 配置数据库连接
echo 'DATABASE_URL="postgresql://user:pass@host:5432/db"' >> .env.local

# 3. 生成认证密钥
echo 'AUTH_SECRET="'$(openssl rand -base64 32)'"' >> .env.local

# 4. 重启服务器
bun dev

立即生效: 保存配置后重启开发服务器,所有功能正常使用

❓ 为什么要正确配置

对 MVP 的价值:

  • 功能完整: 正确配置后用户注册、支付、邮件都能用
  • 避免错误: 环境变量配错会导致应用崩溃
  • 安全保障: 密钥配置关系到数据安全
  • 部署顺畅: 本地配置对了,部署就不会出问题

不配置的后果: 应用启动报错,功能无法使用,用户体验极差。

🤔 为什么选择这种配置方式

我们的设计原则:

  • 环境分离: 开发/生产环境配置分离,避免误操作
  • 功能开关: 不需要的功能可以一键关闭
  • 类型安全: TypeScript 配置,减少配置错误
  • 统一管理: 所有配置集中管理,修改方便

配置文件说明:

.env.local        # 敏感信息 (密钥、密码)
src/config/       # 功能配置 (开关、参数)
tailwind.config   # 样式配置 (颜色、字体)

🧠 简要原理 & 核心配置

配置加载顺序: 环境变量 → 配置文件 → 默认值 → 应用启动

最关键的配置文件:

  • .env.local - 数据库、API 密钥
  • src/config/index.ts - 功能开关和参数

配置示例:

// src/config/index.ts
export const config = {
  app: {
    name: "你的应用名",
    url: process.env.NEXTAUTH_URL,
  },
  features: {
    auth: { enabled: true },      // 启用认证
    payments: { enabled: false }, // 关闭支付
    ai: { enabled: true },        // 启用 AI
  }
}

🛠️ 实际操作步骤

1. 环境变量配置 (3分钟)

必需配置:

# .env.local
DATABASE_URL="postgresql://user:pass@host:5432/db"
AUTH_SECRET="超级长的随机字符串"
NEXTAUTH_URL="http://localhost:3000"

生成安全密钥:

# 生成 AUTH_SECRET
openssl rand -base64 32

# 或者在线生成
# https://generate-secret.vercel.app/32

2. 功能开关配置 (2分钟)

关闭不需要的功能:

// src/config/index.ts
export const features = {
  // 如果不需要组织功能
  organizations: { enabled: false },
  
  // 如果暂时不需要支付
  payments: { enabled: false },
  
  // 保留核心功能
  auth: { enabled: true },
  ai: { enabled: true },
}

3. 可选服务配置 (按需配置)

社交登录 (如果需要):

# Google OAuth (可选)
GOOGLE_CLIENT_ID="你的谷歌客户端ID"
GOOGLE_CLIENT_SECRET="你的谷歌客户端密钥"

# GitHub OAuth (可选)
GITHUB_CLIENT_ID="你的GitHub客户端ID" 
GITHUB_CLIENT_SECRET="你的GitHub客户端密钥"

邮件服务 (如果需要):

# Resend (推荐)
RESEND_API_KEY="re_your_key_here"

# 或者 SMTP
SMTP_HOST="smtp.gmail.com"
SMTP_USERNAME="your-email@gmail.com"
SMTP_PASSWORD="your-app-password"

💡 常用配置技巧

快速开启/关闭功能

// 一键关闭所有高级功能,只保留基础功能
export const features = {
  auth: { enabled: true },          // 保留认证
  organizations: { enabled: false }, // 关闭组织
  payments: { enabled: false },     // 关闭支付
  ai: { enabled: false },           // 关闭 AI
}

环境特定配置

// 根据环境自动调整配置
const isDev = process.env.NODE_ENV === 'development'

export const config = {
  app: {
    name: isDev ? "开发版" : "正式版",
    debug: isDev,
  }
}

品牌定制

// 快速修改品牌信息
export const config = {
  app: {
    name: "你的产品名",
    description: "你的产品描述", 
    logo: "/your-logo.png",
  }
}

🎨 主题和样式配置

修改品牌颜色

// tailwind.config.ts
export default {
  theme: {
    extend: {
      colors: {
        // 修改主色调
        primary: "#你的品牌色",
        secondary: "#你的辅助色",
      }
    }
  }
}

自定义字体

// tailwind.config.ts
export default {
  theme: {
    extend: {
      fontFamily: {
        sans: ['你的字体', 'system-ui'],
      }
    }
  }
}

🔧 特定功能配置

AI 功能配置

# OpenAI (推荐)
OPENAI_API_KEY="sk-your-openai-key"

# 或者 Anthropic Claude
ANTHROPIC_API_KEY="sk-ant-your-claude-key"

支付功能配置

# Stripe (开发环境用测试密钥)
STRIPE_SECRET_KEY="sk_test_your_test_key"
STRIPE_PUBLISHABLE_KEY="pk_test_your_test_key"

文件存储配置

# AWS S3 (可选)
AWS_ACCESS_KEY_ID="your-access-key"
AWS_SECRET_ACCESS_KEY="your-secret-key"
AWS_S3_BUCKET="your-bucket-name"

# 或者 Cloudinary (可选)
CLOUDINARY_CLOUD_NAME="your-cloud-name"
CLOUDINARY_API_KEY="your-api-key"

🆘 常见配置问题

问题 1: 应用启动失败

# 检查环境变量
cat .env.local

# 检查数据库连接
bun db:ping

# 重新生成 Prisma 客户端
bun db:generate

问题 2: 功能不工作

# 1. 检查功能是否启用
# 查看 src/config/index.ts 中的 features 配置

# 2. 检查环境变量是否设置
echo $OPENAI_API_KEY

# 3. 重启开发服务器
bun dev

问题 3: 样式不生效

# 清理缓存
rm -rf .next
bun dev

# 检查 Tailwind 配置
bun run build

📎 延伸阅读

配置参考:

服务配置:

最佳实践:


下一步: 配置完成后,查看 [数据库设置]./database) 来初始化你的数据。 } ]


**TLDR**: 在这里定义你的定价计划,会自动在前端展示。

## 📧 邮件模板配置

### 邮件设置 (`src/lib/mail/config.ts`)

```typescript
export const mailConfig = {
  from: process.env.SMTP_FROM || 'noreply@yourdomain.com',
  replyTo: 'support@yourdomain.com',
  templates: {
    welcome: 'welcome',
    passwordReset: 'password-reset',
    invitation: 'invitation',
  }
}

自定义邮件模板

  • 模板位置: src/lib/mail/emails/
  • 支持格式: React 组件 + HTML
  • 自动样式: 内联 CSS 处理

🤖 AI 功能配置

AI 提供商配置

export const aiConfig = {
  provider: 'openai', // 'openai' | 'anthropic' | 'google'
  models: {
    chat: 'gpt-4',
    embedding: 'text-embedding-3-small',
  },
  features: {
    chatbot: true,      // 聊天机器人
    textGeneration: true, // 文本生成
    imageGeneration: false, // 图片生成
  }
}

TLDR: 配置你要使用的 AI 服务商和模型。

🔒 安全配置

CORS 配置

export const corsConfig = {
  origin: process.env.NODE_ENV === 'production' 
    ? ['https://yourdomain.com']
    : ['http://localhost:3000'],
  credentials: true,
}

内容安全策略 (CSP)

export const cspConfig = {
  'default-src': ["'self'"],
  'script-src': ["'self'", "'unsafe-inline'"],
  'style-src': ["'self'", "'unsafe-inline'"],
  'img-src': ["'self'", "data:", "https:"],
}

📊 数据库配置

Prisma 配置 (prisma/schema.prisma)

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

连接池配置

export const databaseConfig = {
  maxConnections: 10,
  connectionTimeout: 30000,
  poolTimeout: 10000,
}

🚀 部署配置

Vercel 配置 (vercel.json)

{
  "buildCommand": "bun run build",
  "outputDirectory": ".next",
  "functions": {
    "app/api/**/*.ts": {
      "runtime": "nodejs18.x"
    }
  }
}

Docker 配置 (Dockerfile)

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN bun install
COPY . .
RUN bun run build
EXPOSE 3000
CMD ["bun", "start"]

🛠️ 开发环境配置

TypeScript 配置 (tsconfig.json)

  • 严格模式: 启用所有类型检查
  • 路径映射: @/ 指向 src/
  • 编译目标: ES2022

ESLint 配置 (.eslintrc.json)

  • Next.js 规则: 官方推荐配置
  • TypeScript 支持: 类型相关检查
  • 自动修复: 保存时自动格式化

🔧 常用配置任务

1. 关闭不需要的功能

// 关闭组织功能
organizations: {
  enabled: false,
}

// 关闭支付功能
payments: {
  enabled: false,
}

2. 修改默认语言

app: {
  locale: "en", // 改为英文
}

3. 自定义邮件发送地址

SMTP_FROM="hello@yourdomain.com"

4. 修改应用名称

app: {
  name: "你的应用名",
  description: "你的应用描述",
}

🆘 配置问题排查

常见问题

  1. 配置不生效: 重启开发服务器
  2. 环境变量未加载: 检查 .env.local 文件名
  3. TypeScript 错误: 运行 bun type-check
  4. 功能异常: 检查对应的环境变量是否配置

调试技巧

# 检查配置是否正确
bun type-check

# 查看环境变量
echo $DATABASE_URL

# 重置配置
rm -rf .next && bun dev

下一步: 了解数据库配置来设置你的数据存储。