# 系统架构 CLICD 由 Go 后端、React 前端和宿主机虚拟化能力组成。 ## 后端 后端入口在 `backend/main.go`,HTTP 服务路由集中在 `backend/internal/server/server.go`。主要模块: - `internal/api`:Web 面板和 `/api/v1` 的 HTTP 接口。 - `internal/config`:配置和 SQLite 存储。 - `internal/lxc`:LXC 容器管理。 - `internal/kvm`:KVM/libvirt 虚拟机管理。 - `internal/cli`:命令行管理入口。 - `internal/server`:静态前端嵌入和 HTTP 服务。 - `internal/version`:版本号。 ## 前端 前端入口在 `frontend/src/main.tsx`,页面位于 `frontend/src/pages`,通用组件位于 `frontend/src/components`。 主要页面: - 控制面板:`Dashboard.tsx` - 容器列表:`Containers.tsx` - 容器详情:`ContainerDetail.tsx` - 镜像管理:`ImageManagement.tsx` - 安全告警:`Security.tsx` - 快照管理:`Snapshots.tsx` - 路由管理:`Routing.tsx` - API 集成:`ApiIntegration.tsx` - 主机报告:`HostReport.tsx` - 子用户管理:`SubUserManagement.tsx` ## 前端嵌入 生产构建时,前端产物会放入 `backend/internal/server/web`,后端通过 Go embed 提供静态文件,并对非 API 路由返回 SPA 入口。 ## 接口分层 - `/api/*`:Web 面板和兼容接口。 - `/api/v1/*`:推荐给外部自动化系统使用的版本化接口。 - WebSSH 和 WebVNC 使用短期票据后建立 WebSocket 连接。