Your Name
|
18cefa6ded
|
feat(deploy): 目录自适应 + Celery 自动轮询接入 systemd
1. start.sh BASE_DIR 不再硬编码 /root/ipam,改为跟随脚本所在目录
(BASH_SOURCE 自动检测),无论部署在 /opt /usr/local /root 等
任意目录都能工作。
2. 运行 start.sh 时自动生成 3 个 systemd 单元并 enable 开机自启:
- ipam-backend (uvicorn :8008)
- ipam-celery-worker
- ipam-celery-beat (每60秒触发SNMP设备自动轮询)
均含 Restart=always 崩溃自动重启,日志写入 /var/log/ipam/。
3. 前端 vite dev server 保持 nohup 启动(不纳入 systemd)。
4. stop.sh 改为 systemctl stop 停止 systemd 服务,pkill 兜底。
5. .gitignore 忽略 celerybeat-schedule 运行期文件。
|
2026-08-12 11:05:18 +08:00 |
|
Your Name
|
05cd71ca1a
|
feat(mac-vendor): 本地 OUI 数据库替代在线查询,修复厂商识别失败
问题原因:
- mac_vendor_lookup 库依赖从 IEEE 官网在线下载 OUI 数据库
- 其他机器无网络或网络不通时,内置精简版数据库不全
- 导致 SNMP 扫描到 MAC 地址后无法识别厂商
解决方案:
1. 从 IEEE OUI 官方数据库下载完整数据 (39782 条记录)
保存为 backend/app/data/oui.txt 纳入版本管理
2. 修改 EnhancedScanService.get_mac_vendor(),查询顺序:
1️⃣ 本地 OUI 数据库(免网络、高性能)
2️⃣ mac_vendor_lookup 在线库(回退)
3️⃣ 硬编码常用厂商映射(最终回退)
3. start.sh 启动时检测 OUI 文件是否存在,不存在自动下载
4. 支持 AA:BB:CC、AABBCC、aa-bb-cc、001c.14aa.bbcc 多种 MAC 格式
|
2026-07-23 15:31:54 +08:00 |
|
Your Name
|
8b1df674ec
|
fix(frontend): 修复 element-plus 解析失败问题
问题原因:
- element-plus 2.14.x 的 package.json exports 包含 ./*: ./ 通配符
- Vite 5.x 的 import-analysis 在某些场景下无法解析该 exports 配置
- 新机器 git pull + npm install 后 Vite 缓存为空,首次预构建可能失败
- 报错: Failed to resolve entry for package 'element-plus'
解决方案:
1. vite.config.js resolve.alias 添加 element-plus 显式 fallback 路径
即使 exports 解析失败也能直接定位到 es/index.mjs
2. start.sh 启动前自动清理 .vite 缓存,避免过期缓存问题
3. start.sh 失败自动重试+清缓存机制,提高首次启动成功率
|
2026-07-23 14:49:54 +08:00 |
|
Your Name
|
6076e174d5
|
fix(frontend): 撤回 optimizeDeps.include 避免 element-plus 解析失败导致启动崩溃
问题原因:
- 上一次提交添加的 optimizeDeps.include 让 Vite 在启动阶段
就硬解析 element-plus, 包安装不完整时直接崩 (服务器起不来)
- predev 脚本每次清缓存, 如果源包有问题则重建必然失败
修正:
- 移除 optimizeDeps.include, Vite 自动发现预构建即可
- predev 改为可选的 dev:clean 脚本, 不影响正常启动
- start.sh 加固: 检查 element-plus/es/index.mjs 是否存在
不存在则自动 npm install
影响范围:
- 其他服务器 git pull 后, start.sh 会自动检测并安装缺失依赖
- 正常 npm run dev 不再每次清缓存, 启动更快
|
2026-07-23 14:35:17 +08:00 |
|
Your Name
|
1e1e5957e8
|
fix(ipam): 修复IP管理页面网段筛选不生效及下拉框过窄
- Ips.vue: el-select 添加 width: 280px,修复网段下拉框过窄
- Ips.vue: query 参数 networkId → network_id(与 FastAPI snake_case 一致)
- Scan.vue: el-select 用 network.id 代替整个 network 对象作为 value,修复切换网段不生效
- enhanced_scan_service.py: 替换失效的 scapy ARP 扫描为 arp-scan 命令;扫描结果自动创建缺失 IP 记录
|
2026-07-18 09:45:30 +08:00 |
|