# PromptForge 配置说明 本文档详细说明了 PromptForge 平台的环境变量配置和系统设置。 ## 🔧 环境变量配置 ### 创建配置文件 1. 在项目根目录创建 `.env.local` 文件 2. 复制以下配置模板并填入实际值 ### 配置模板 ```env # ==================== 数据库配置 ==================== # 本地 MySQL 数据库 DATABASE_URL=mysql://root:your_password@localhost:3306/promptforge # 腾讯云数据库配置(可选) TENCENT_DATABASE_URL=mysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/pronode_db?charset=utf8mb4 # ==================== API 密钥配置 ==================== # OpenAI API 配置 OPENAI_API_KEY=your_openai_api_key_here OPENAI_API_URL=https://api.openai.com/v1 # Anthropic API 配置 ANTHROPIC_API_KEY=your_anthropic_api_key_here ANTHROPIC_API_URL=https://api.anthropic.com # DeepSeek API 配置 DEEPSEEK_API_KEY=sk-fdf7cc1c73504e628ec0119b7e11b8cc DEEPSEEK_API_URL=https://api.deepseek.com/v1 # ==================== 应用配置 ==================== # NextAuth.js 配置 NEXTAUTH_SECRET=your_secret_key_here_make_it_long_and_random NEXTAUTH_URL=http://localhost:3000 # 应用环境 NODE_ENV=development # 端口配置 PORT=3000 # ==================== 可选配置 ==================== # 日志级别 LOG_LEVEL=info # 缓存配置 REDIS_URL=redis://localhost:6379 # 文件上传配置 UPLOAD_DIR=./uploads MAX_FILE_SIZE=10485760 # 邮件配置(可选) SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_USER=your_email@gmail.com SMTP_PASS=your_app_password # ==================== 安全配置 ==================== # CORS 配置 CORS_ORIGIN=http://localhost:3000 # 会话配置 SESSION_SECRET=your_session_secret_here # ==================== 开发配置 ==================== # 调试模式 DEBUG=true # 热重载 FAST_REFRESH=true # ==================== 生产配置 ==================== # 生产环境 URL NEXT_PUBLIC_APP_URL=https://your-domain.com # CDN 配置 NEXT_PUBLIC_CDN_URL=https://cdn.your-domain.com # 分析配置 NEXT_PUBLIC_GA_ID=your_google_analytics_id NEXT_PUBLIC_GTM_ID=your_google_tag_manager_id ``` ## 🔑 API 密钥获取 ### OpenAI API 1. 访问 [OpenAI Platform](https://platform.openai.com/) 2. 注册账户并登录 3. 进入 API Keys 页面 4. 点击 "Create new secret key" 5. 复制生成的密钥 ### Anthropic API 1. 访问 [Anthropic Console](https://console.anthropic.com/) 2. 注册账户并登录 3. 进入 API Keys 页面 4. 点击 "Create Key" 5. 复制生成的密钥 ### DeepSeek API 1. 访问 [DeepSeek Platform](https://platform.deepseek.com/) 2. 注册账户并登录 3. 进入 API Keys 页面 4. 创建新的 API 密钥 5. 复制生成的密钥 ## 🔐 安全密钥生成 ### 生成 NEXTAUTH_SECRET ```bash # 使用 OpenSSL openssl rand -base64 32 # 或使用 Node.js node -e "console.log(require('crypto').randomBytes(32).toString('base64'))" ``` ### 生成 SESSION_SECRET ```bash # 使用 OpenSSL openssl rand -base64 32 # 或使用 Node.js node -e "console.log(require('crypto').randomBytes(32).toString('base64'))" ``` ## 🗄️ 数据库配置 ### 本地 MySQL 配置 1. **安装 MySQL** ```bash # Ubuntu/Debian sudo apt install mysql-server # macOS brew install mysql # Windows # 下载 MySQL Installer ``` 2. **启动 MySQL 服务** ```bash # Ubuntu/Debian sudo systemctl start mysql sudo systemctl enable mysql # macOS brew services start mysql ``` 3. **创建数据库** ```sql CREATE DATABASE promptforge CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE pronode_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 4. **配置连接字符串** ```env DATABASE_URL=mysql://username:password@localhost:3306/promptforge ``` ### 腾讯云数据库配置 1. **获取连接信息** - 主机地址:gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com - 端口:24936 - 用户名:root - 密码:!Rjb12191 - 数据库:pronode_db 2. **配置连接字符串** ```env TENCENT_DATABASE_URL=mysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/pronode_db?charset=utf8mb4 ``` ## 🚀 部署配置 ### 开发环境 ```env NODE_ENV=development DEBUG=true FAST_REFRESH=true ``` ### 生产环境 ```env NODE_ENV=production DEBUG=false FAST_REFRESH=false NEXT_PUBLIC_APP_URL=https://your-domain.com ``` ### Vercel 部署 1. 在 Vercel 项目设置中添加环境变量 2. 确保所有必需的变量都已配置 3. 重新部署应用 ### Docker 部署 ```dockerfile # 使用环境变量文件 COPY .env.local .env.local ``` ## 🔧 配置验证 ### 验证数据库连接 ```bash # 测试数据库连接 node -e " const mysql = require('mysql2/promise'); const url = process.env.DATABASE_URL; mysql.createConnection(url).then(() => { console.log('数据库连接成功'); }).catch(err => { console.error('数据库连接失败:', err); }); " ``` ### 验证 API 密钥 ```bash # 测试 DeepSeek API node test-deepseek-api.js # 测试 OpenAI API curl -H "Authorization: Bearer $OPENAI_API_KEY" \ https://api.openai.com/v1/models ``` ## 📝 配置检查清单 ### 必需配置 - [ ] `DATABASE_URL` - 数据库连接字符串 - [ ] `NEXTAUTH_SECRET` - 认证密钥 - [ ] `NEXTAUTH_URL` - 应用 URL ### 可选配置 - [ ] `OPENAI_API_KEY` - OpenAI API 密钥 - [ ] `ANTHROPIC_API_KEY` - Anthropic API 密钥 - [ ] `DEEPSEEK_API_KEY` - DeepSeek API 密钥 - [ ] `SMTP_*` - 邮件服务配置 - [ ] `REDIS_URL` - Redis 缓存配置 ### 安全配置 - [ ] 使用强密码和密钥 - [ ] 限制数据库访问权限 - [ ] 配置防火墙规则 - [ ] 启用 HTTPS - [ ] 定期更新密钥 ## 🛠️ 故障排除 ### 常见问题 1. **数据库连接失败** - 检查数据库服务是否运行 - 验证连接字符串格式 - 确认用户名和密码正确 2. **API 密钥无效** - 检查密钥是否正确复制 - 确认账户余额充足 - 验证 API 权限设置 3. **环境变量未生效** - 重启开发服务器 - 检查文件路径和格式 - 确认变量名称正确 ### 调试命令 ```bash # 检查环境变量 node -e "console.log(process.env.DATABASE_URL)" # 检查端口占用 lsof -i :3000 # 检查数据库状态 sudo systemctl status mysql # 查看应用日志 npm run dev 2>&1 | tee app.log ``` ## 📚 参考资源 - [Next.js 环境变量](https://nextjs.org/docs/basic-features/environment-variables) - [MySQL 连接字符串格式](https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-jdbc-url-format.html) - [OpenAI API 文档](https://platform.openai.com/docs/api-reference) - [Anthropic API 文档](https://docs.anthropic.com/claude/reference) - [DeepSeek API 文档](https://platform.deepseek.com/docs) ## 🔒 安全建议 1. **密钥管理** - 使用环境变量存储敏感信息 - 定期轮换 API 密钥 - 使用强密码和密钥 2. **访问控制** - 限制数据库用户权限 - 配置防火墙规则 - 启用双因素认证 3. **监控和日志** - 启用访问日志 - 监控异常活动 - 定期安全审计 4. **备份和恢复** - 定期备份数据库 - 测试恢复流程 - 保存配置文件备份