Files
htop-web/docs/ARCHITECTURE.md
T

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.