Files
CLICD/docs/en/developer/architecture.md
T
MengMengCode a45e063fc2 Add comprehensive documentation for CLICD features and operations
- 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.
2026-06-10 00:42:06 +08:00

1.5 KiB

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.