RackOps CMDB 是一个面向机房运维场景的配置管理平台,覆盖机房、机柜、在用设备、下架设备、仓库设备、事件流转、值班人员、PDU 弱电数据与报表输出等核心能力。
项目当前采用前后端分离架构:
frontend/:React 18 + Ant Design 前端backend/:Django 4 + Django REST Framework 后端
- 机房、机柜、设备、仓库设备的全生命周期管理
- 事件管理与进场人员、客户、授权单位、值班人员联动
- 设备下架、仓库入库、上架、出库等业务闭环
- PDU 端口与弱电数据采集、导入、聚合查询
- 模型变更历史、消息通知、系统配置管理
- 运营日报 / 月报 / 年报、客户报表、弱电报表生成与导出
- React 18
- React Router 6
- Ant Design 5
- Axios
- ECharts / Recharts
- Django 4.2
- Django REST Framework
- Simple JWT
- PostgreSQL
- OpenPyXL / ReportLab
rackops-cmdb/
├── backend/ Django 后端
│ ├── cmdb_project/ 项目配置、路由、分页、数据库路由
│ ├── common/ 公共主数据、系统配置、历史、通知
│ ├── devices/ 机房/机柜/设备/PDU/仓库设备
│ ├── events/ 事件、进场人员、导入导出
│ ├── report/ 报表生成与导出
│ └── users/ 用户与认证
├── frontend/ React 前端
└── docs/ 项目文档
cd backend
cp .env.example .env
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python manage.py runserver后端默认地址:http://127.0.0.1:8000
cd frontend
cp .env.example .env
npm install
npm start前端默认地址:http://127.0.0.1:3000
后端需要重点配置:
SECRET_KEYDEBUGALLOWED_HOSTSDB_DEFAULT_*DB_PDU_*PDU_API_BASE_URLPDU_API_USERNAMEPDU_API_PASSWORD
前端常用配置:
REACT_APP_API_BASE_URLREACT_APP_ENVREACT_APP_CACHE_TIME
参考文件:
项目使用双数据库设计:
default:承载用户、事件、机房、机柜、设备、仓库、消息、配置等核心业务数据pdu:承载PDUDevice、PDUPort、CabinetPDUData三张弱电数据表
PDU 相关模型通过数据库路由自动读写到 pdu 数据库,和主业务库之间通过 room_id、cabinet_id 等逻辑字段关联,而不是直接建跨库外键。
后端统一以 /api/ 为前缀,典型能力包括:
- 认证:
/api/auth/login/、/api/auth/register/、/api/auth/me/ - 基础资源:
/api/rooms/、/api/cabinets/、/api/devices/、/api/events/ - PDU:
/api/pdu-devices/、/api/pdu-ports/、/api/cabinet-pdu-data/ - 报表:
/api/reports/generate/ - 导入导出:
/api/operation-story-import/*、/api/data-export/*
详细参数、权限和示例见 API说明。
- 大部分基础资源接口支持匿名读取,写操作需要登录
- 默认分页每页
20条,可通过?page_size=调整,最大200 - 超出页码范围时返回
200 + 空 results,便于前端筛选联动 - 报表生成、历史回退、运维故事导入导出等能力带有更严格的权限要求
- 检查
backend/.env是否已经替换为真实配置。 - 确认没有将数据库备份、Excel 临时文件、导入记录等本地数据放入仓库。
- 在仓库根目录执行:
git init
git add .
git commit -m "Initial import"