From 597d8f380a0179a9785aa5e321e363af3b4d0327 Mon Sep 17 00:00:00 2001 From: Liosha84 Date: Wed, 28 Oct 2026 23:18:01 +0100 Subject: [PATCH] Major improvements: multi-stage Docker, security hardening, host metrics, tests - Multi-stage Docker build: Dockerfile compiles frontend (Node.js) and backend (Gradle) inside Docker; no local Java/Node.js required - Security hardening: replaced full host root mount with specific directory mounts (/proc, /sys, /etc, /var, /home, /opt, /tmp, /srv, /usr) - Host metrics consistency: LinuxMemoryService and CpuDetailsService now read from /host/proc instead of container OSHI - Concurrency: replaced synchronized with AtomicReference in 3 services - Global error handling: added @RestControllerAdvice for JSON error responses - Unit tests: added 32 tests for /proc parsers, CPU usage, process uptime - Docker security: non-root user, read-only FS, no-new-privileges, healthcheck - Debug logging: added log.debug() in silent catch blocks - Documentation: updated README, INSTALLATION, DEVELOPMENT, CONFIGURATION, ARCHITECTURE, CHANGELOG Co-authored-by: Junie --- .idea/compiler.xml | 7 + CHANGELOG.md | 10 +- Dockerfile | 30 +++- README.md | 50 ++++-- backend/build.gradle | 4 + .../system/GlobalExceptionHandler.java | 40 +++++ .../htopweb/system/SystemMetricsService.java | 40 +++-- .../system/SystemProcessesService.java | 35 ++-- .../system/linux/CpuDetailsService.java | 133 ++++++++++---- .../system/linux/LinuxDiskService.java | 6 +- .../system/linux/LinuxMemoryService.java | 109 ++++++++++-- .../system/linux/LinuxNetworkService.java | 7 +- backend/src/main/resources/static/index.html | 2 +- .../system/SystemMetricsServiceTest.java | 147 ++++++++++++++++ .../system/SystemProcessesServiceTest.java | 152 ++++++++++++++++ .../system/linux/CpuDetailsServiceTest.java | 166 ++++++++++++++++++ .../system/linux/LinuxMemoryServiceTest.java | 140 +++++++++++++++ docker-compose.yml | 15 +- docs/ARCHITECTURE.md | 16 +- docs/CONFIGURATION.md | 36 ++++ docs/DEVELOPMENT.md | 48 ++++- docs/INSTALLATION.md | 59 +++++-- .../core/services/system-metrics.service.ts | 7 +- 23 files changed, 1122 insertions(+), 137 deletions(-) create mode 100644 backend/src/main/java/com/htopweb/system/GlobalExceptionHandler.java create mode 100644 backend/src/test/java/com/htopweb/system/SystemMetricsServiceTest.java create mode 100644 backend/src/test/java/com/htopweb/system/SystemProcessesServiceTest.java create mode 100644 backend/src/test/java/com/htopweb/system/linux/CpuDetailsServiceTest.java create mode 100644 backend/src/test/java/com/htopweb/system/linux/LinuxMemoryServiceTest.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index fea4714..802f543 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,5 +1,12 @@ + + + + + + +