--- alwaysApply: true --- # Nexus 6.0 技术栈 ## 架构分层(禁止跨层直连) ``` web/app/*.html → server/api/*.py → application/services → infrastructure/* → domain/models ``` - API 层:路由 + Pydantic 校验 + `Depends(get_current_admin)`,不写 SQL - Service 层:业务编排,通过 Repository 访问数据 - Infrastructure:DB/Redis/SSH/Telegram 实现细节 - Domain:SQLAlchemy ORM 模型,无 FastAPI 依赖 ## 启动模式 - 无 `.env` → **安装模式**:仅 `/api/install/` + `/app/install.html` - 有 `.env` → 正常模式:`SECRET_KEY` / `API_KEY` / `ENCRYPTION_KEY` 缺一不可 ## 配置三写(安装向导) `web/data/config.php` + `.env`(`NEXUS_` 前缀)+ MySQL `settings` 表。 **不可从 DB 覆盖**:`SECRET_KEY`、`API_KEY`、`ENCRYPTION_KEY`、`DATABASE_URL`。 ## 数据流 Agent(60s) → Redis 实时 → 前端直读 → 10min → MySQL 历史。告警:WebSocket + Telegram。 ## 后台任务(仅 primary worker) `heartbeat_flush`(10min) · `self_monitor`(30s) · `schedule_runner`(60s) · `retry_runner`(5min) ## HTTP / DB 会话 - 普通 API:`DbSessionMiddleware` → `request.state.db`,禁止在 factory 里 `AsyncSessionLocal()` 后不 close - WebSocket / `/api/install/`:不走 DB 中间件 ## 相关规则文件 - `nexus-python-backend.mdc` — `server/**/*.py` - `nexus-frontend.mdc` — `web/app/**` - `nexus-security.mdc` — 安全与凭据 - `perfect-implementation.mdc` — 完美实现与文档纪律