second commit
This commit is contained in:
320
CONFIGURATION.md
Normal file
320
CONFIGURATION.md
Normal file
@@ -0,0 +1,320 @@
|
||||
# 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. **备份和恢复**
|
||||
- 定期备份数据库
|
||||
- 测试恢复流程
|
||||
- 保存配置文件备份
|
||||
Reference in New Issue
Block a user