Develop #3
@@ -2,9 +2,9 @@
|
||||
|
||||

|
||||
|
||||
**Пользовательский веб-дашборд для мониторинга системы на базе Angular и Spring Boot.**
|
||||
**A self-hosted, browser-based system monitoring dashboard powered by Angular and Spring Boot.**
|
||||
|
||||
htop-web объединяет фронтенд на Angular и бэкенд на Spring Boot WebFlux в одном Docker-контейнере, предоставляя веб-интерфейс для просмотра метрик системы и информации о процессах.
|
||||
htop-web packages its Angular frontend and Spring Boot WebFlux backend into a single Docker container, providing a web interface for viewing system metrics and process information.
|
||||
|
||||
<p align="center">
|
||||
<img alt="Java 21" src="https://img.shields.io/badge/Java-21-orange?logo=openjdk&logoColor=white">
|
||||
@@ -13,55 +13,55 @@ htop-web объединяет фронтенд на Angular и бэкенд на
|
||||
<img alt="Docker" src="https://img.shields.io/badge/Docker-Compose-2496ED?logo=docker&logoColor=white">
|
||||
</p>
|
||||
|
||||
## Демо
|
||||
## Demo
|
||||
|
||||
https://htop-web.jambotron.com/
|
||||
|
||||
## Возможности
|
||||
## Features
|
||||
|
||||
- **Системный дашборд** — просмотр информации о системе через браузер.
|
||||
- **Метрики CPU и памяти** — просмотр показателей использования ресурсов.
|
||||
- **Информация о процессах** — просмотр деталей системных процессов.
|
||||
- **Информация о Linux-системе** — дополнительные метрики операционной системы.
|
||||
- **Реактивный бэкенд** — реализован на Spring WebFlux.
|
||||
- **Архитектура одного контейнера** — статические файлы Angular обслуживаются Spring Boot.
|
||||
- **Развёртывание через Docker Compose** — сборка, запуск, просмотр и остановка приложения стандартными командами Docker.
|
||||
- **System dashboard** — inspect system information through a browser.
|
||||
- **CPU and memory metrics** — view resource measurements exposed by the backend.
|
||||
- **Process information** — inspect available system process details.
|
||||
- **Linux system information** — collect additional operating-system metrics.
|
||||
- **Reactive backend** — built with Spring WebFlux.
|
||||
- **Single-container architecture** — Angular production assets are served by Spring Boot.
|
||||
- **Docker Compose deployment** — build, start, inspect and stop the application with standard Docker commands.
|
||||
|
||||
> **Область мониторинга:** метрики зависят от операционной системы, среды контейнера и предоставленных прав. Docker Desktop на Windows запускает Linux-контейнеры в виртуальной среде; метрики из контейнера не обязательно отражают полную картину Windows-хоста.
|
||||
> **Monitoring scope:** metrics depend on the operating system, container runtime and granted permissions. Docker Desktop on Windows runs Linux containers in a virtualized environment; metrics from a container should not be assumed to represent the complete Windows host.
|
||||
|
||||
## Технологический стек
|
||||
## Technology Stack
|
||||
|
||||
| Слой | Технология |
|
||||
| Layer | Technology |
|
||||
|---|---|
|
||||
| Фронтенд | Angular 22, TypeScript, RxJS |
|
||||
| Бэкенд | Java 21, Spring Boot, Spring WebFlux |
|
||||
| Сбор метрик | OSHI |
|
||||
| Сборка | Gradle, npm |
|
||||
| Развёртывание | Docker, Docker Compose |
|
||||
| Frontend | Angular 22, TypeScript, RxJS |
|
||||
| Backend | Java 21, Spring Boot, Spring WebFlux |
|
||||
| System inspection | OSHI |
|
||||
| Build | Gradle, npm |
|
||||
| Deployment | Docker, Docker Compose |
|
||||
|
||||
## Архитектура
|
||||
## Architecture
|
||||
|
||||
```text
|
||||
Браузер
|
||||
Browser
|
||||
|
|
||||
v
|
||||
+----------------------+
|
||||
| контейнер htop-web |
|
||||
| htop-web container |
|
||||
| |
|
||||
| Spring Boot |
|
||||
| WebFlux |
|
||||
| | |
|
||||
| +-- REST API |
|
||||
| +-- Метрики |
|
||||
| +-- Процессы |
|
||||
| +-- System data |
|
||||
| +-- Process data |
|
||||
| |
|
||||
| Angular (статика) |
|
||||
| Angular assets |
|
||||
+----------------------+
|
||||
```
|
||||
|
||||
Фронтенд на Angular собирается в production-режиме и упаковывается в статические ресурсы Spring Boot. Обе части развёртываются вместе как один контейнер.
|
||||
The Angular frontend is built for production and packaged into the Spring Boot application's static resources. Both parts are deployed together as one application container.
|
||||
|
||||
## Пример использования
|
||||
## Simple Scenario of using
|
||||
|
||||
```yaml
|
||||
services:
|
||||
@@ -101,32 +101,33 @@ networks:
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### Требования
|
||||
## Quick Start
|
||||
|
||||
- Docker Engine или Docker Desktop.
|
||||
### Requirements
|
||||
|
||||
- Docker Engine or Docker Desktop.
|
||||
- Docker Compose.
|
||||
|
||||
Локальная установка Java или Node.js не требуется — Dockerfile использует multi-stage сборку, которая компилирует всё внутри Docker.
|
||||
No local Java or Node.js is required — the Dockerfile uses multi-stage build to compile everything inside Docker.
|
||||
|
||||
### 1. Сборка и запуск контейнера
|
||||
### 1. Build and start the container
|
||||
|
||||
Из корня репозитория выполните одну команду:
|
||||
From the repository root, run a single command:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Флаг `--build` запускает multi-stage сборку Docker, которая компилирует фронтенд на Angular и бэкенд на Spring Boot внутри Docker.
|
||||
The `--build` flag triggers the multi-stage Docker build that compiles both the Angular frontend and the Spring Boot backend inside Docker.
|
||||
|
||||
По умолчанию конфигурация Compose маппит порт `8088` хоста на порт `8080` контейнера.
|
||||
The default Compose configuration maps host port `8088` to container port `8080`.
|
||||
|
||||
Откройте [http://localhost:8088](http://localhost:8088).
|
||||
Open [http://localhost:8088](http://localhost:8088).
|
||||
|
||||
### Альтернатива: локальная сборка через Gradle (требуется Java 21 и Node.js)
|
||||
### Alternative: Local Gradle build (requires Java 21 and Node.js)
|
||||
|
||||
Если нужно собрать локально (например, для запуска тестов):
|
||||
If you need to build locally (for example, to run tests):
|
||||
|
||||
**Linux:**
|
||||
|
||||
@@ -144,22 +145,22 @@ cd backend
|
||||
cd ..
|
||||
```
|
||||
|
||||
Настроенная сборка Gradle собирает фронтенд и упаковывает его production-активы вместе с бэкендом.
|
||||
The configured Gradle build builds the frontend and packages its production assets with the backend.
|
||||
|
||||
### 3. Просмотр логов
|
||||
### 3. Inspect logs
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
docker compose logs -f htop-web
|
||||
```
|
||||
|
||||
### 4. Остановка приложения
|
||||
### 4. Stop the application
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
```
|
||||
|
||||
## Структура проекта
|
||||
## Project Structure
|
||||
|
||||
```text
|
||||
htop-web/
|
||||
@@ -183,24 +184,24 @@ htop-web/
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Документация
|
||||
## Documentation
|
||||
|
||||
- [Установка](docs/INSTALLATION.md)
|
||||
- [Конфигурация](docs/CONFIGURATION.md)
|
||||
- [Архитектура](docs/ARCHITECTURE.md)
|
||||
- [Разработка](docs/DEVELOPMENT.md)
|
||||
- [Список изменений](CHANGELOG.md)
|
||||
- [Участие в проекте](CONTRIBUTING.md)
|
||||
- [Installation](docs/INSTALLATION.md)
|
||||
- [Configuration](docs/CONFIGURATION.md)
|
||||
- [Architecture](docs/ARCHITECTURE.md)
|
||||
- [Development](docs/DEVELOPMENT.md)
|
||||
- [Changelog](CHANGELOG.md)
|
||||
- [Contributing](CONTRIBUTING.md)
|
||||
|
||||
## Безопасность
|
||||
## Security
|
||||
|
||||
Данные мониторинга системы могут раскрыть конфиденциальную информацию об окружении. Перед тем как сделать htop-web доступным за пределами доверенной сети:
|
||||
System monitoring data can reveal sensitive information about the environment. Before exposing htop-web beyond a trusted network:
|
||||
|
||||
- Разместите его за аутентификацией и контролем доступа.
|
||||
- Используйте HTTPS при доступе через недоверенную сеть.
|
||||
- Предоставляйте контейнеру только те права и доступ к хосту, которые действительно нужны.
|
||||
- Избегайте публикации учётных данных, приватных ключей или конфиденциальной конфигурации окружения.
|
||||
- Put it behind appropriate authentication and access controls.
|
||||
- Use HTTPS when accessed over an untrusted network.
|
||||
- Grant the container only the permissions and host access it actually needs.
|
||||
- Avoid publishing credentials, private keys or sensitive environment configuration.
|
||||
|
||||
## Лицензия
|
||||
## License
|
||||
|
||||
Лицензия ещё не указана. Пока лицензия не добавлена, не считайте исходный код доступным для неограниченного повторного использования или распространения.
|
||||
No license has been declared yet. Until a license is added, do not assume that the source code is available for unrestricted reuse or redistribution.
|
||||
|
||||
Reference in New Issue
Block a user