diff --git a/README.md b/README.md index 7f18909..b887a3e 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,10 @@ ![htop-web](htop-web.gif) -**A self-hosted, browser-based system monitoring dashboard powered by Angular and Spring Boot.** +**Пользовательский веб-дашборд для мониторинга системы на базе Angular и 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. -

Java 21 Spring Boot @@ -13,55 +13,55 @@ htop-web packages its Angular frontend and Spring Boot WebFlux backend into a si Docker

-## Demo +## Демо https://htop-web.jambotron.com/ -## Features +## Возможности -- **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. +- **Системный дашборд** — просмотр информации о системе через браузер. +- **Метрики CPU и памяти** — просмотр показателей использования ресурсов. +- **Информация о процессах** — просмотр деталей системных процессов. +- **Информация о Linux-системе** — дополнительные метрики операционной системы. +- **Реактивный бэкенд** — реализован на Spring WebFlux. +- **Архитектура одного контейнера** — статические файлы Angular обслуживаются Spring Boot. +- **Развёртывание через Docker Compose** — сборка, запуск, просмотр и остановка приложения стандартными командами Docker. -> **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. +> **Область мониторинга:** метрики зависят от операционной системы, среды контейнера и предоставленных прав. Docker Desktop на Windows запускает Linux-контейнеры в виртуальной среде; метрики из контейнера не обязательно отражают полную картину Windows-хоста. -## Technology Stack +## Технологический стек -| Layer | Technology | +| Слой | Технология | |---|---| -| Frontend | Angular 22, TypeScript, RxJS | -| Backend | Java 21, Spring Boot, Spring WebFlux | -| System inspection | OSHI | -| Build | Gradle, npm | -| Deployment | Docker, Docker Compose | +| Фронтенд | Angular 22, TypeScript, RxJS | +| Бэкенд | Java 21, Spring Boot, Spring WebFlux | +| Сбор метрик | OSHI | +| Сборка | Gradle, npm | +| Развёртывание | Docker, Docker Compose | -## Architecture +## Архитектура ```text - Browser + Браузер | v +----------------------+ - | htop-web container | + | контейнер htop-web | | | | Spring Boot | | WebFlux | | | | | +-- REST API | - | +-- System data | - | +-- Process data | + | +-- Метрики | + | +-- Процессы | | | - | Angular assets | + | Angular (статика) | +----------------------+ ``` -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. +Фронтенд на Angular собирается в production-режиме и упаковывается в статические ресурсы Spring Boot. Обе части развёртываются вместе как один контейнер. -## Simple Scenario of using +## Пример использования ```yaml services: @@ -101,33 +101,32 @@ networks: docker compose up -d ``` +## Быстрый старт -## Quick Start +### Требования -### Requirements - -- Docker Engine or Docker Desktop. +- Docker Engine или Docker Desktop. - Docker Compose. -No local Java or Node.js is required — the Dockerfile uses multi-stage build to compile everything inside Docker. +Локальная установка Java или Node.js не требуется — Dockerfile использует multi-stage сборку, которая компилирует всё внутри Docker. -### 1. Build and start the container +### 1. Сборка и запуск контейнера -From the repository root, run a single command: +Из корня репозитория выполните одну команду: ```bash docker compose up -d --build ``` -The `--build` flag triggers the multi-stage Docker build that compiles both the Angular frontend and the Spring Boot backend inside Docker. +Флаг `--build` запускает multi-stage сборку Docker, которая компилирует фронтенд на Angular и бэкенд на Spring Boot внутри Docker. -The default Compose configuration maps host port `8088` to container port `8080`. +По умолчанию конфигурация Compose маппит порт `8088` хоста на порт `8080` контейнера. -Open [http://localhost:8088](http://localhost:8088). +Откройте [http://localhost:8088](http://localhost:8088). -### Alternative: Local Gradle build (requires Java 21 and Node.js) +### Альтернатива: локальная сборка через Gradle (требуется Java 21 и Node.js) -If you need to build locally (for example, to run tests): +Если нужно собрать локально (например, для запуска тестов): **Linux:** @@ -145,22 +144,22 @@ cd backend cd .. ``` -The configured Gradle build builds the frontend and packages its production assets with the backend. +Настроенная сборка Gradle собирает фронтенд и упаковывает его production-активы вместе с бэкендом. -### 3. Inspect logs +### 3. Просмотр логов ```bash docker compose ps docker compose logs -f htop-web ``` -### 4. Stop the application +### 4. Остановка приложения ```bash docker compose down ``` -## Project Structure +## Структура проекта ```text htop-web/ @@ -184,24 +183,24 @@ htop-web/ └── README.md ``` -## Documentation +## Документация -- [Installation](docs/INSTALLATION.md) -- [Configuration](docs/CONFIGURATION.md) -- [Architecture](docs/ARCHITECTURE.md) -- [Development](docs/DEVELOPMENT.md) -- [Changelog](CHANGELOG.md) -- [Contributing](CONTRIBUTING.md) +- [Установка](docs/INSTALLATION.md) +- [Конфигурация](docs/CONFIGURATION.md) +- [Архитектура](docs/ARCHITECTURE.md) +- [Разработка](docs/DEVELOPMENT.md) +- [Список изменений](CHANGELOG.md) +- [Участие в проекте](CONTRIBUTING.md) -## Security +## Безопасность -System monitoring data can reveal sensitive information about the environment. Before exposing htop-web beyond a trusted network: +Данные мониторинга системы могут раскрыть конфиденциальную информацию об окружении. Перед тем как сделать htop-web доступным за пределами доверенной сети: -- 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. +- Разместите его за аутентификацией и контролем доступа. +- Используйте HTTPS при доступе через недоверенную сеть. +- Предоставляйте контейнеру только те права и доступ к хосту, которые действительно нужны. +- Избегайте публикации учётных данных, приватных ключей или конфиденциальной конфигурации окружения. -## 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. +Лицензия ещё не указана. Пока лицензия не добавлена, не считайте исходный код доступным для неограниченного повторного использования или распространения.