1.3 KiB
Architecture
Overview
htop-web is designed as a single deployable application containing an Angular frontend and a Spring Boot backend.
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.