mirror of
https://github.com/MengMengCode/CLICD.git
synced 2026-08-07 06:14:42 +08:00
a45e063fc2
- Introduced Container Management documentation covering lifecycle operations, resource management, and console access. - Added Dashboard documentation detailing metrics and related APIs. - Created Host Report documentation summarizing host environment and resource status. - Included Image Management documentation for template handling and management actions. - Documented Networking and Routing features including NAT4 and IPv6 management. - Added Security Alerts documentation outlining alert scenarios and API usage. - Created Snapshot Management documentation for snapshot operations and scheduling. - Documented Sub-user management for granting access to specific containers. - Added Configuration guide detailing runtime settings and security recommendations. - Created Installation guide for setting up CLICD with requirements and steps. - Added Introduction and Quick Start guides for new users. - Documented Upgrade process with version checking and pre-upgrade checklist. - Created Deployment guide for service exposure and firewall recommendations. - Added FAQ section addressing common questions and concerns. - Documented Troubleshooting steps for common issues encountered.
43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# Architecture
|
|
|
|
CLICD consists of a Go backend, a React frontend, and host virtualization capabilities.
|
|
|
|
## Backend
|
|
|
|
The backend entry point is `backend/main.go`, and HTTP routes are centralized in `backend/internal/server/server.go`. Main modules:
|
|
|
|
- `internal/api`: HTTP APIs for the web panel and `/api/v1`.
|
|
- `internal/config`: configuration and SQLite storage.
|
|
- `internal/lxc`: LXC container management.
|
|
- `internal/kvm`: KVM/libvirt virtual machine management.
|
|
- `internal/cli`: command-line management entry point.
|
|
- `internal/server`: embedded frontend assets and HTTP service.
|
|
- `internal/version`: version number.
|
|
|
|
## Frontend
|
|
|
|
The frontend entry point is `frontend/src/main.tsx`. Pages live in `frontend/src/pages`, and shared components live in `frontend/src/components`.
|
|
|
|
Main pages:
|
|
|
|
- Dashboard: `Dashboard.tsx`
|
|
- Container list: `Containers.tsx`
|
|
- Container details: `ContainerDetail.tsx`
|
|
- Image Management: `ImageManagement.tsx`
|
|
- Security Alerts: `Security.tsx`
|
|
- Snapshot Management: `Snapshots.tsx`
|
|
- Routing Management: `Routing.tsx`
|
|
- API Integration: `ApiIntegration.tsx`
|
|
- Host Report: `HostReport.tsx`
|
|
- Sub-user Management: `SubUserManagement.tsx`
|
|
|
|
## Frontend Embedding
|
|
|
|
For production builds, frontend artifacts are placed in `backend/internal/server/web`. The backend serves them through Go embed and returns the SPA entry for non-API routes.
|
|
|
|
## API Layers
|
|
|
|
- `/api/*`: web panel and compatibility APIs.
|
|
- `/api/v1/*`: versioned APIs recommended for external automation.
|
|
- WebSSH and WebVNC use short-lived tickets before opening WebSocket connections.
|