7.1 KiB
7.1 KiB
PromptForge 配置说明
本文档详细说明了 PromptForge 平台的环境变量配置和系统设置。
🔧 环境变量配置
创建配置文件
- 在项目根目录创建
.env.local文件 - 复制以下配置模板并填入实际值
配置模板
# ==================== 数据库配置 ====================
# 本地 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
- 访问 OpenAI Platform
- 注册账户并登录
- 进入 API Keys 页面
- 点击 "Create new secret key"
- 复制生成的密钥
Anthropic API
- 访问 Anthropic Console
- 注册账户并登录
- 进入 API Keys 页面
- 点击 "Create Key"
- 复制生成的密钥
DeepSeek API
- 访问 DeepSeek Platform
- 注册账户并登录
- 进入 API Keys 页面
- 创建新的 API 密钥
- 复制生成的密钥
🔐 安全密钥生成
生成 NEXTAUTH_SECRET
# 使用 OpenSSL
openssl rand -base64 32
# 或使用 Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
生成 SESSION_SECRET
# 使用 OpenSSL
openssl rand -base64 32
# 或使用 Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
🗄️ 数据库配置
本地 MySQL 配置
-
安装 MySQL
# Ubuntu/Debian sudo apt install mysql-server # macOS brew install mysql # Windows # 下载 MySQL Installer -
启动 MySQL 服务
# Ubuntu/Debian sudo systemctl start mysql sudo systemctl enable mysql # macOS brew services start mysql -
创建数据库
CREATE DATABASE promptforge CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE pronode_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
配置连接字符串
DATABASE_URL=mysql://username:password@localhost:3306/promptforge
腾讯云数据库配置
-
获取连接信息
- 主机地址:gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com
- 端口:24936
- 用户名:root
- 密码:!Rjb12191
- 数据库:pronode_db
-
配置连接字符串
TENCENT_DATABASE_URL=mysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/pronode_db?charset=utf8mb4
🚀 部署配置
开发环境
NODE_ENV=development
DEBUG=true
FAST_REFRESH=true
生产环境
NODE_ENV=production
DEBUG=false
FAST_REFRESH=false
NEXT_PUBLIC_APP_URL=https://your-domain.com
Vercel 部署
- 在 Vercel 项目设置中添加环境变量
- 确保所有必需的变量都已配置
- 重新部署应用
Docker 部署
# 使用环境变量文件
COPY .env.local .env.local
🔧 配置验证
验证数据库连接
# 测试数据库连接
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 密钥
# 测试 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
- 定期更新密钥
🛠️ 故障排除
常见问题
-
数据库连接失败
- 检查数据库服务是否运行
- 验证连接字符串格式
- 确认用户名和密码正确
-
API 密钥无效
- 检查密钥是否正确复制
- 确认账户余额充足
- 验证 API 权限设置
-
环境变量未生效
- 重启开发服务器
- 检查文件路径和格式
- 确认变量名称正确
调试命令
# 检查环境变量
node -e "console.log(process.env.DATABASE_URL)"
# 检查端口占用
lsof -i :3000
# 检查数据库状态
sudo systemctl status mysql
# 查看应用日志
npm run dev 2>&1 | tee app.log
📚 参考资源
🔒 安全建议
-
密钥管理
- 使用环境变量存储敏感信息
- 定期轮换 API 密钥
- 使用强密码和密钥
-
访问控制
- 限制数据库用户权限
- 配置防火墙规则
- 启用双因素认证
-
监控和日志
- 启用访问日志
- 监控异常活动
- 定期安全审计
-
备份和恢复
- 定期备份数据库
- 测试恢复流程
- 保存配置文件备份