Files
aiapply/CONFIGURATION.md

321 lines
7.1 KiB
Markdown
Raw Permalink Normal View History

2025-09-06 08:28:47 +08:00
# 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. **备份和恢复**
- 定期备份数据库
- 测试恢复流程
- 保存配置文件备份