Skip to content

jenvenson/ops-platform

Repository files navigation

OPS Platform

运维管理平台 — CMDB、CI/CD、安全扫描、告警监控一体化

License CI Go React TypeScript Docker

中文 | English


功能概览

模块 说明
CMDB 项目、环境、服务器、应用资产管理
CI/CD Jenkins 集成,应用部署与归档发布
聚合打包 多应用聚合打包,Consul 配置驱动
Consul 管理 配置管理、批量复制、管道替换
告警中心 规则管理、联系人、渠道、模板、Webhook
监控大屏 Grafana 仪表盘代理、健康检查、Prometheus 集成
安全扫描 主机扫描、Web 扫描、漏洞管理、FIM 文件完整性监控
运维小助手 AI 对话助手,支持 Ollama 本地模型及主流第三方模型,回答语言跟随界面语言
国际化 中英文界面一键切换,浏览器标题与系统名称同步翻译(自定义站点名保持原样)
权限管理 JWT 认证、RBAC 角色权限、菜单控制
审计日志 操作审计、平台事件流

界面预览

工作台 CMDB 项目管理
工作台 CMDB
工作台(English) 安全扫描
工作台英文 安全
部署发布 告警模板(English) 运维小助手
部署 告警模板英文 AI助手

技术栈

后端: Go 1.25 · Gin · GORM · MySQL 8.0 · Redis 7.4 · Zap

前端: React 18 · TypeScript · Vite · Ant Design 5 · Axios

基础设施: Docker Compose · Nginx · Ollama (可选)

快速开始

1. 克隆项目

git clone git@github.com:jenvenson/ops-platform.git //若失败,使用git clone https://github.com/jenvenson/ops-platform.git
cd ops-platform

2. 配置环境变量

cp deploy/.env.example deploy/.env

编辑 deploy/.env至少修改以下三项

DB_PASSWORD=your_secure_mysql_password
REDIS_PASSWORD=your_secure_redis_password
JWT_SECRET=your_jwt_secret_key_change_in_production

3. 构建开发 Base 镜像(首次必做)

开发环境使用预置扫描工具的 base 镜像,首次需构建一次,后续重启无需重复:

docker build -f deploy/Dockerfile.backend-dev-base -t ops-backend-dev-base .

构建过程会编译 nuclei 等工具,约需 5–10 分钟(取决于网络)。构建完成后永久缓存,重启容器约 1 分钟即可就绪。

4. 启动服务

docker compose -f deploy/docker-compose.dev.yml -p ops-dev up -d

5. 验证

curl http://localhost:28080/health
# {"status":"ok","checks":{"database":"ok"}}

浏览器打开 **http://localhost:18890**,使用默认账号登录。

访问地址

服务 地址 说明
前端入口 http://localhost:18890 Web 管理界面
后端 API http://localhost:28080 REST API
MySQL localhost:23306 数据库直连
Redis localhost:16379 缓存直连

默认账号

字段
用户名 admin
密码 admin123

首次登录后请在「个人中心」修改密码。

开发模式说明(全部服务均在 Docker 中运行)

docker-compose.dev.yml 会启动全部服务:MySQL、Redis、后端(golang 容器内 go run)、前端(node 容器内 Vite)、Nginx。源码目录挂载进容器,无需本地安装 Go / Node。

后端基于 ops-backend-dev-base 镜像(已预装 nmap、mariadb-client、nuclei 等扫描工具),容器启动时跳过工具安装,直接编译运行,重启时间约 1 分钟:

# 前端:Vite 热更新,改完代码自动生效
# 后端:无热重载,修改代码后重启容器
docker restart ops-backend-dev

# 查看日志
docker logs -f ops-backend-dev
docker logs -f ops-frontend-dev

常见问题

MySQL 连接失败 / Authentication plugin 错误

部分客户端不支持 MySQL 8.0 的 caching_sha2_password

docker exec ops-mysql mysql -uroot -p -e \
  "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;"
前端无法连接后端

确认 deploy/.envJWT_SECRET 已设置,且后端容器 ops-backend-dev 已启动:

docker logs ops-backend-dev --tail 20
端口冲突

修改 deploy/.env 中的端口变量或直接编辑 deploy/docker-compose.dev.ymlports 映射。

国内网络慢 / 依赖下载失败

deploy/.env 中设置 Go 模块代理:

GOPROXY=https://goproxy.cn,direct

项目结构

├── backend/                # Go 后端
│   ├── cmd/server/         # 入口
│   ├── internal/           # 业务模块 (cmdb/security/alert/assistant/...)
│   ├── pkg/                # 公共工具包 (config/logger/jenkins/consul)
│   ├── configs/            # 配置文件
│   ├── migrations/         # 数据库迁移
│   └── scripts/            # 初始化脚本
├── frontend/               # React 前端
│   └── src/
│       ├── api/            # API 客户端
│       ├── components/     # 公共组件 (MainLayout, AIChatbot)
│       ├── pages/          # 页面 (cmdb/security/alarm/deploy/...)
│       └── styles/         # 主题样式
├── deploy/                 # 部署配置
│   ├── docker-compose.yml              # 生产环境
│   ├── docker-compose.dev.yml          # 开发环境
│   ├── Dockerfile.backend              # 后端生产镜像
│   ├── Dockerfile.backend-dev-base     # 后端开发 base 镜像(预装扫描工具)
│   ├── Dockerfile.frontend             # 前端镜像
│   ├── nginx.conf.template       # Nginx 模板
│   ├── .env.example              # 环境变量示例
│   ├── deploy-init.sh            # 首次部署
│   └── deploy-update.sh          # 迭代更新
├── docs/                   # 文档与截图
└── migrations/             # 历史补充迁移

架构

Browser → Nginx (:80)
            ├── /api/*        → Backend (:8080) → MySQL + Redis
            ├── /grafana-proxy → Grafana
            └── /*            → Frontend static files

后端模块依赖:

auth → cmdb / security / alert / consul / cicd / assistant
                   ↓
            platformevent / platformobject
                   ↓
              database (MySQL + Redis)

运维小助手

内置 AI 对话助手,支持通过 Ollama 运行本地模型,也可接入第三方模型 API:

# 本地 Ollama
ASSISTANT_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_CHAT_MODEL=qwen3:8b

# 第三方模型 (DeepSeek / 通义千问 / GLM / Kimi / MiniMax / 豆包 等)
ASSISTANT_PROVIDER=deepseek
ASSISTANT_API_KEY=sk-your-api-key

支持的工具调用:CMDB 查询、告警管理、部署操作、安全扫描。

文档

社区

License

本项目采用 MIT License,可自由使用、修改和分发。

About

IT Operations Management Platform

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors