docs: add project documentation
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Architecture
|
||||
|
||||
## Overview
|
||||
|
||||
htop-web is designed as a single deployable application containing an Angular frontend and a Spring Boot backend.
|
||||
|
||||
```text
|
||||
Web browser
|
||||
|
|
||||
| HTTP
|
||||
v
|
||||
Spring Boot application
|
||||
|
|
||||
+-- Angular production assets
|
||||
|
|
||||
+-- WebFlux REST controllers
|
||||
|
|
||||
+-- System information services
|
||||
|
|
||||
+-- OSHI
|
||||
+-- Operating-system information
|
||||
```
|
||||
|
||||
## Frontend
|
||||
|
||||
The frontend is implemented with Angular and TypeScript. Its source code is located in `frontend/src/`.
|
||||
|
||||
The production build is generated during the Gradle build and copied into the backend's static resources.
|
||||
|
||||
## Backend
|
||||
|
||||
The backend uses Java, Spring Boot and Spring WebFlux. Backend source code is located in `backend/src/main/java/com/htopweb/`.
|
||||
|
||||
Controllers expose system information to the frontend, while service classes collect and prepare the relevant data.
|
||||
|
||||
## System information
|
||||
|
||||
OSHI is used to obtain operating-system and hardware information. The data available depends on the runtime environment and permissions.
|
||||
|
||||
## Packaging
|
||||
|
||||
The Gradle build combines the frontend production assets with the Spring Boot application. Docker packages the resulting JAR into a single application container.
|
||||
|
||||
See the root `Dockerfile` and `docker-compose.yml` for the current container setup.
|
||||
Reference in New Issue
Block a user