Unmanaged-Bytes/bc-vigil

GitHub: Unmanaged-Bytes/bc-vigil

一个基于 Python 与 bc-hash 的计划任务文件完整性监控系统,提供 Web UI 与存储管理,解决基线比对与变更告警问题。

Stars: 0 | Forks: 0

# BitCrafts Vigil Web 前端用于 [`bc-hash`](https://github.com/unmanaged-bytes/bc-hash)。注册文件树以 监控,调度周期性扫描,并检测与参考基线的完整性偏差 (`added` / `removed` / `modified`)。 同时提供一个 **Storage** 模块,展示每个挂载点的磁盘使用情况、数据库 备份/恢复/重置功能、FR/EN 界面切换,以及 100% 测试覆盖率保障。 ## 要求 - Python 3.11+ - `bc-hash`(>= 1.0.0,且包含 `diff` 子命令)需在 `PATH` 中可用 ## 安装(Debian 13 trixie — 生产环境) 从 GitHub Releases 页面下载最新的 `.deb` 包,然后执行: ``` sudo apt install ./bc-vigil_X.Y.Z-1_amd64.deb systemctl status bc-vigil curl http://127.0.0.1:8080/ ``` 该软件包会: - 在 `/opt/venvs/bc-vigil/` 下安装一个嵌入式虚拟环境(支持离线使用) - 创建一个 `bc-vigil` 系统用户 - 安装一个沙箱化的 systemd 服务单元,并启用及启动它 - 默认监听 `0.0.0.0:8080`(可通过 `/etc/bc-vigil/bc-vigil.env` 调整) 完整的部署、升级与回滚流程请参见 [packaging/README.md](packaging/README.md)。 ## 开发 ``` git clone https://github.com/unmanaged-bytes/bc-vigil.git cd bc-vigil python3 -m venv .venv source .venv/bin/activate pip install -e '.[dev]' pytest # full test suite (190 tests, 100 % coverage gate) bc-vigil --reload # dev server on http://127.0.0.1:8080 ``` ## 配置 环境变量(全部以 `BC_VIGIL_` 为前缀): | 变量 | 默认值 | 用途 | |---|---|---| | `BC_VIGIL_HOST` | `127.0.0.1` | 监听地址(`.deb` 包使用 `0.0.0.0`) | | `BC_VIGIL_PORT` | `8080` | 监听端口 | | `BC_VIGIL_DATA_DIR` | `./var` | SQLite 数据库与摘要目录 | | `BC_VIGIL_BC_HASH_BINARY` | `bc-hash` | `bc-hash` 二进制文件路径或名称 | | `BC_VIGIL_DEFAULT_ALGORITHM` | `sha256` | `crc32`、`sha256`、`xxh3`、`xxh128` | | `BC_VIGIL_DEFAULT_THREADS` | `auto` | `auto`、`0` 或整数 | | `BC_VIGIL_MAX_PARALLEL_SCANS` | `2` | 最大并发扫描数 | | `BC_VIGIL_DISPLAY_TZ` | `UTC` | 显示时区(例如 `Europe/Paris`)— 数据库始终使用 UTC | | `BC_VIGIL_SCAN_RETENTION_DAYS` | `0` | 自动清理超过 N 天的已完成扫描(0 表示关闭) | ## 数据模型 - **Target** — 名称 + 路径 + 算法 + 线程数 + 包含/排除规则 - **Schedule** — 附加到目标的 UTC cron 表达式 - **Scan** — 执行:`bc-hash hash` 生成摘要,`bc-hash diff` 与基线比较 - **Baseline** — 首次成功的扫描会自动成为基线; 在任意一次成功的扫描中点击“提升基线”按钮可采纳新的参考 - **IntegrityEvent** — 每行一条变更文件记录:`added` / `removed` / `modified` ## 架构 ``` src/bc_vigil/ ├── app.py, config.py, db.py, models.py, i18n.py # infra ├── core/ # dashboard, admin (backup/restore/reset), help, lang switch ├── integrity/ # bc-hash orchestration: targets, scans, schedules └── storage/ # disk usage module (psutil) ``` `src/bc_vigil/templates/` 下的模板(FR 与 EN 字符串位于 `i18n.py`, 通过 Cookie 与 `/lang/` 路由切换)。 ## 许可证 MIT — 参见 [LICENSE](LICENSE)。
标签:bc-hash, Debian, Python, SQLite, systemd, UI多语言, Web前端, x64dbg, 前端界面, 后台服务, 周期性扫描, 基线比对, 备份还原, 多语言支持, 存储管理, 安全测试框架, 定时任务, 嵌入式虚拟环境, 开发环境, 性能监控, 数据库备份, 文件修改, 文件删除, 文件哈希, 文件新增, 无后门, 沙箱, 测试覆盖, 生产部署, 磁盘用量, 系统健康检查, 系统打包, 系统服务, 系统服务管理, 系统用户管理, 网络监听, 覆盖率门控, 运维工具, 逆向工具, 重置数据库