fix: 定时任务修复+管理后台Task7支持 (Task4外键修复, Task7管理员邮箱动态查询, Task5限流防护, Task7加入SCRIPT_MAP)
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
- **开发机**: E:\ZG_Dev\ZhuiGuangAI\zhuiguang-ai
|
||||
- **部署目录**: /home/ubuntu/zhuiguang-ai
|
||||
- **访问地址**: https://www.zhuig.com (HTTP自动跳转HTTPS)
|
||||
- **本地Git同步目录**: K:\git-repos
|
||||
- **本地Git同步目录**: C:\gitbf (完整Git仓库)
|
||||
|
||||
### 端口规范
|
||||
- **应用端口范围**: 8301-8310(预留扩展)
|
||||
@@ -101,26 +101,48 @@ pm2 restart zhuiguang-ai
|
||||
|
||||
### .env配置
|
||||
```bash
|
||||
# 数据库
|
||||
# 数据库(必填,启动时校验)
|
||||
DATABASE_URL="mysql://mohe001:***@rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com:3306/zhuiguang_ai?charset=utf8mb4"
|
||||
|
||||
# NextAuth
|
||||
# NextAuth(必填)
|
||||
NEXTAUTH_URL="http://localhost:8301"
|
||||
NEXTAUTH_SECRET="zhuiguang-ai-dev-secret"
|
||||
NEXTAUTH_SECRET="请生成一个随机高强度密钥(至少32位)"
|
||||
|
||||
# GitHub API(可选,提升限流)
|
||||
GITHUB_TOKEN=""
|
||||
# GitHub API(必填,提升限流60→5000次/小时)
|
||||
GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxx"
|
||||
|
||||
# DeepSeek API(用于技能评测生成脚本、AI日报整理)
|
||||
# DeepSeek API(必填,用于技能评测/新闻整理/工具提取,启动时校验)
|
||||
DEEPSEEK_API_KEY="sk-..."
|
||||
|
||||
# DeepSeek 模型名(可选,默认 deepseek-v4-pro)
|
||||
DEEPSEEK_MODEL="deepseek-v4-pro"
|
||||
```
|
||||
|
||||
> **注意**: `.env` 文件已被加入 `.gitignore`,不得提交到 Git 仓库。请使用 `.env.example` 作为模板。
|
||||
|
||||
## PM2配置
|
||||
- 进程名: zhuiguang-ai
|
||||
- 启动命令: `npm run start`
|
||||
- 端口: 8301
|
||||
- 重启: `pm2 restart zhuiguang-ai`
|
||||
|
||||
## 安全配置
|
||||
|
||||
### HTTP 响应头
|
||||
next.config.mjs 配置以下安全响应头:
|
||||
- **CSP (Content-Security-Policy)**: `default-src 'self'` + 安全白名单
|
||||
- **HSTS (Strict-Transport-Security)**: `max-age=31536000; includeSubDomains`
|
||||
- **Permissions-Policy**: `camera=(), microphone=(), geolocation=()`
|
||||
- **X-Content-Type-Options**: `nosniff`
|
||||
- **X-Frame-Options**: `DENY`
|
||||
- **X-XSS-Protection**: `1; mode=block`
|
||||
- **Referrer-Policy**: `strict-origin-when-cross-origin`
|
||||
|
||||
### 权限控制
|
||||
- middleware.ts 中 `/admin/*` 和 `/api/admin/*` **仅 admin 角色可访问**(VIP 用户无权限)
|
||||
|
||||
---
|
||||
|
||||
## 踩坑记录
|
||||
- Next.js 14不支持useActionState,登录页用原生表单POST
|
||||
- Prisma MariaDB adapter需要连接字符串方式初始化
|
||||
|
||||
Reference in New Issue
Block a user