# baselineSystem **Repository Path**: Achievers/baselineSystem ## Basic Information - **Project Name**: baselineSystem - **Description**: 网络安全等级保护合规自查系统 - 等保三级合规自查管理平台 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网络安全等级保护合规自查系统 (Baseline System) 基于《网络安全等级保护基本要求》(GB/T 22239-2019)的合规自查管理平台,支持等保三级(含信创)和通用基线的检查、报告生成与整改跟踪。 ## 功能特性 - **仪表盘**:合规态势总览,各系统合规率、不合规项分布一览 - **系统管理**:添加/编辑被测评系统,设置所属模块(通用/信创/密评) - **基线管理**:按模块查看等保检查项,支持基线数据导入 - **现场检查**:逐项填写检查结果(符合/部分符合/不符合/不适用),支持备注 - **报告生成**:一键生成 PDF/Excel 合规检查报告 - **历史记录**:检查历史追溯与趋势分析 ## 技术栈 ### 后端 - **运行环境**:Node.js 18+ - **框架**:Express 4.x - **数据库**:SQLite(通过 sql.js 嵌入式运行) - **模板引擎**:EJS(PDF 渲染) - **报表生成**:Puppeteer(PDF)、ExcelJS(Excel) - **端口**:3001 ### 前端 - **框架**:Vue 3 (Composition API) - **打包工具**:Vite 5 - **UI 组件库**:Element Plus 2.8 - **图标**:@element-plus/icons-vue - **HTTP 客户端**:Axios - **图表**:ECharts + vue-echarts - **路由**:Vue Router 4 - **端口**:5173(开发) ## 项目结构 ``` dengbaohegui/ ├── backend/ │ ├── data/ # SQLite 数据库文件 │ │ ├── dengbaohegui.db # 主数据库 │ │ ├── baseline/ # 通用基线数据 │ │ ├── baseline-institution/# 机构版基线数据 │ │ ├── baseline-linux/ # Linux 基线数据 │ │ └── baseline-win/ # Windows 基线数据 │ ├── scripts/ │ │ ├── 使用说明.md │ │ └── security-baseline.sh │ ├── src/ │ │ ├── index.js # 后端入口,Express 服务 │ │ ├── db.js # 数据库初始化与连接 │ │ ├── models/ # 数据模型 │ │ ├── routes/ # API 路由 │ │ │ ├── systems.js # 系统管理 │ │ │ ├── items.js # 检查项 │ │ │ ├── inspections.js # 现场检查 │ │ │ ├── reports.js # 报告生成 (PDF/Excel) │ │ │ └── checklist.js # 检查清单 PDF │ │ └── seed/ │ │ ├── import-baseline.js # 通用基线数据导入 │ │ ├── import-baseline-linux.js# Linux 基线导入 │ │ ├── import-baseline-win.js # Windows 基线导入 │ │ └── import-institution.js # 机构版基线导入 │ ├── package.json │ └── package-lock.json ├── frontend/ │ ├── src/ │ │ ├── main.js # Vue 入口 │ │ ├── App.vue # 根组件(布局) │ │ ├── router/ │ │ │ └── index.js # 路由配置 │ │ ├── api/ │ │ │ └── index.js # Axios API 封装 │ │ ├── assets/ │ │ │ └── design-tokens.css # 全局样式变量 │ │ ├── components/ # 公共组件 │ │ └── views/ │ │ ├── Dashboard.vue # 仪表盘 │ │ ├── Systems.vue # 系统管理 │ │ ├── Baseline.vue # 基线管理 │ │ ├── Inspection.vue # 现场检查 │ │ ├── Report.vue # 报告查看 │ │ ├── SystemDetail.vue # 系统详情 │ │ └── History.vue # 历史记录 │ ├── vite.config.js │ └── package.json └── README.md ``` ## 安装配置 ### 环境要求 | 依赖 | 最低版本 | 说明 | |------|----------|------| | Node.js | 18.x | 运行时(建议 20.x LTS) | | npm | 9.x | 包管理器 | | 操作系统 | Linux / macOS / Windows | 跨平台支持 | > **注意**:PDF 导出依赖 Puppeteer,首次运行会自动下载 Chromium(约 300MB)。若服务器无法访问外网,请参考[离线安装](#离线安装-puppeteer)章节。 ### 快速安装 #### 1. 克隆项目 ```bash git clone https://gitee.com/6912758/baselineSystem.git cd baselineSystem ``` #### 2. 安装后端依赖 ```bash cd backend npm install ``` #### 3. 安装前端依赖 ```bash cd ../frontend npm install ``` #### 4. 初始化数据库 导入通用等保基线数据: ```bash cd ../backend npm run seed ``` 可选的其他基线数据导入: ```bash # 导入机构版基线 node src/seed/import-institution.js # 导入 Linux 基线 node src/seed/import-baseline-linux.js # 导入 Windows 基线 node src/seed/import-baseline-win.js ``` #### 5. 启动服务 **启动后端**(终端 1): ```bash cd backend npm run dev ``` 后端服务运行在 `http://localhost:3001`。 **启动前端**(终端 2): ```bash cd frontend npm run dev ``` 前端开发服务器运行在 `http://localhost:5173`。 #### 6. 访问系统 打开浏览器访问 `http://localhost:5173`。 ### 生产部署 #### 构建前端 ```bash cd frontend npm run build ``` 构建产物输出到 `frontend/dist/` 目录。 #### 配置后端静态文件服务 后端 `src/index.js` 已内置生产模式支持。设置环境变量 `NODE_ENV=production` 后,后端会自动托管 `frontend/dist/` 下的静态文件: ```bash cd backend NODE_ENV=production PORT=3001 node src/index.js ``` 此时访问 `http://localhost:3001` 即可使用。 #### 使用 PM2 进程管理(推荐) ```bash # 安装 PM2 npm install -g pm2 # 启动后端 cd backend pm2 start src/index.js --name baseline-backend # 保存进程列表(开机自启) pm2 save pm2 startup ``` ### 离线安装 Puppeteer 若部署环境无法访问 Google 资源,可通过环境变量指定 Chromium 路径: ```bash # 1. 手动下载 Chromium(可在有网络的机器上下载) # 版本参考:https://download-chromium.appspot.com/ # 2. 指定 Chromium 可执行文件路径 export PUPPETEER_CHROMIUM_REVISION=1234567 export PUPPETEER_EXECUTABLE_PATH=/path/to/chromium/chrome # 3. 设置跳过下载 export PUPPETEER_SKIP_DOWNLOAD=true npm install puppeteer ``` ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/systems` | 获取系统列表 | | POST | `/api/systems` | 添加系统 | | PUT | `/api/systems/:id` | 编辑系统 | | DELETE | `/api/systems/:id` | 删除系统 | | GET | `/api/items?module=xxx` | 按模块获取检查项 | | POST | `/api/items` | 新增检查项 | | PUT | `/api/items/:id` | 编辑检查项 | | DELETE | `/api/items/:id` | 删除检查项 | | GET | `/api/inspections?systemId=xxx` | 获取检查记录 | | PUT | `/api/inspections/:id` | 更新检查结果 | | POST | `/api/inspections/submit` | 提交检查 | | GET | `/api/reports/:systemId/pdf` | 导出 PDF 报告 | | GET | `/api/reports/:systemId/excel` | 导出 Excel 报告 | | GET | `/api/checklist/:systemId/pdf` | 导出检查清单 PDF | | GET | `/api/systems/:id` | 获取系统详情 | | GET | `/api/dashboard/stats` | 获取仪表盘统计数据 | ## 模块说明 ### 通用等保三级(baseline) 涵盖 GB/T 22239-2019 三级通用安全要求,包括: - 安全物理环境 - 安全通信网络 - 安全区域边界 - 安全计算环境 - 安全管理中心 - 安全管理制度 - 安全管理机构 - 安全管理人员 - 安全建设管理 - 安全运维管理 ### 信创等保三级(baseline-linux / baseline-win) 在通用三级基础上,增加信创环境下 Linux/Windows 系统的特定检查项。 ### 机构版(baseline-institution) 针对特定行业机构定制的合规检查要求。 ## 检查状态说明 | 状态 | 标签颜色 | 含义 | |------|----------|------| | 符合 | 绿色 | 满足检查项要求 | | 部分符合 | 橙色 | 部分满足,需改进 | | 不符合 | 红色 | 不满足检查项要求 | | 不适用 | 灰色 | 当前环境不涉及 | ## 常见问题 ### 1. 数据库文件在哪? 数据库文件位于 `backend/data/dengbaohegui.db`。备份时只需备份此文件即可。 ### 2. 如何重置数据? ```bash # 删除数据库(数据将丢失) rm backend/data/dengbaohegui.db # 重新初始化 cd backend npm run seed ``` ### 3. PDF 导出乱码怎么办? 安装中文字体: ```bash # Ubuntu/Debian apt-get install fonts-noto-cjk fonts-wqy-zenhei # CentOS/RHEL yum install google-noto-cjk-fonts wqy-zenhei-fonts # macOS # 系统自带中文支持,无需额外安装 ``` ### 4. Puppeteer 启动失败? ```bash # 检查缺失的系统库 npx puppeteer browsers install chrome # Ubuntu/Debian 安装必要依赖 sudo apt-get install -y libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 \ libcups2 libdrm2 libdbus-1-3 libxkbcommon0 libxcomposite1 libxdamage1 \ libxfixes3 libxrandr2 libgbm1 libpango-1.0-0 libcairo2 libasound2 ``` ### 5. 跨域问题? 开发模式下,Vite 已配置代理转发 API 请求。生产模式下,前后端同域不存在跨域问题。 ## License MIT