chore(release): bump to v1.5.2
All checks were successful
Deploy to Production / Trigger production update (push) Successful in 8s

Update VERSION, README badge, CHANGELOG (en/ru) and WIKI for v1.5.2.
Covers: real-time disk/IOPS/network metrics, per-user language preference,
settings UX fixes (SMTP fields, Telegram Chat ID, Webhook URL removal).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-20 08:57:36 +05:00
parent 00cbe9716b
commit 9b4fbf13ba
5 changed files with 72 additions and 6 deletions

View File

@@ -4,6 +4,28 @@ All notable changes to PVEmanager will be documented in this file.
---
## [v1.5.2] - 2026-06-20
### 📊 Metrics
- **Real-time VM disk fill, IOPS and network I/O** — live per-disk usage, disk read/write and network in/out rates added to the instance Overview tab, instances list and dashboard top-loaded list
- Backend: `get_vm_fsinfo()` pulls per-filesystem usage via QEMU guest agent; `metrics_broadcaster` computes I/O rates (bytes/sec) from cumulative counters; instances-list loop now refreshes each running VM via `status/current` (1 s granularity) instead of `cluster/resources` (10 s pvestatd), with bounded concurrency and 1 s cadence
- Frontend: per-disk cards, Network I/O and I/O-rate cards on OverviewTab via WebSocket; Net and Disk I/O columns in InstancesPage; Disk% shown for LXC; realtime metrics overlay in DashboardPage top-loaded list
### ⚙️ Settings
- **Per-user language preference** — each user account now has its own `language` column (migration 26); the language selector moved from the Panel tab to the Profile tab; language is saved to DB and applied via `i18n.changeLanguage()` immediately on save
- **Panel tab improvements** — `panel_name` field is read-only in UI (falls back to env `PANEL_NAME`); `log_retention_days` field exposed; Panel API accepts `panel_name` in `PUT` to allow DB override without touching the env var
### 🐛 Bug Fixes
- **SMTP/security settings fields** — renamed SMTP request/response fields (`host`, `port`, `username`, `password`, `from_email`, `tls`) and pointed security settings hooks at `/admin/api/security/settings` with a typed `SecuritySettings` shape; added `minutes` / `security_saved` i18n keys
- **Notifications form UX** — added success/error toasts to SMTP and Telegram save buttons; Profile tab language selector wired up; password-change fields cleared only on success
- **Telegram admin section** — removed the Chat ID field from the global Telegram section (it was never persisted to DB); testing is now done via the personal "My notifications → Send test" flow
- **Webhook URL field** — removed the unimplemented Webhook URL field from the notifications settings to avoid misleading users
---
## [v1.5.1] - 2026-06-04
### 🐛 Bug Fixes

View File

@@ -4,6 +4,28 @@
---
## [v1.5.2] - 2026-06-20
### 📊 Метрики
- **Реальное время: заполнение дисков VM, IOPS и сетевой I/O** — живые данные по каждому диску, скорости чтения/записи и сетевого ввода/вывода добавлены на вкладку Overview инстанса, в список инстансов и виджет топ-нагруженных на дашборде
- Backend: `get_vm_fsinfo()` запрашивает данные файловых систем через QEMU guest agent; `metrics_broadcaster` вычисляет скорости I/O (байт/с) из накопленных счётчиков; цикл обновления списка инстансов теперь опрашивает каждую запущенную VM через `status/current` (гранулярность 1 с) вместо `cluster/resources` (10 с от pvestatd), с ограниченным параллелизмом и ритмом 1 с
- Frontend: карточки по каждому диску, карточки Network I/O и I/O-rate на OverviewTab через WebSocket; колонки Net и Disk I/O в InstancesPage; Disk% отображается только для LXC; метрики в реальном времени на виджете топ-нагруженных на DashboardPage
### ⚙️ Настройки
- **Язык интерфейса для каждого пользователя** — у каждого аккаунта теперь есть собственная колонка `language` (миграция 26); переключатель языка перенесён с вкладки «Панель» на вкладку «Профиль»; язык сохраняется в БД и применяется через `i18n.changeLanguage()` сразу при сохранении
- **Улучшения вкладки «Панель»** — поле `panel_name` только для чтения (берётся из env `PANEL_NAME`); поле `log_retention_days` доступно в UI; API панели принимает `panel_name` в `PUT`, что позволяет переопределить значение через БД без правки env
### 🐛 Исправления
- **Поля настроек SMTP/безопасности** — переименованы поля запроса/ответа SMTP (`host`, `port`, `username`, `password`, `from_email`, `tls`); хук настроек безопасности переведён на `/admin/api/security/settings` с типизированным `SecuritySettings`; добавлены i18n-ключи `minutes` / `security_saved`
- **UX формы уведомлений** — добавлены тосты успеха/ошибки для кнопок сохранения SMTP и Telegram; переключатель языка в «Профиле» подключён; поля смены пароля очищаются только при успешном сохранении
- **Telegram — раздел администратора** — убрано поле Chat ID из глобальных настроек Telegram (оно никогда не сохранялось в БД); проверка теперь выполняется через личный раздел «Мои уведомления → Отправить тест»
- **Поле Webhook URL** — убрано нереализованное поле Webhook URL из настроек уведомлений, чтобы не вводить пользователей в заблуждение
---
## [v1.5.1] - 2026-06-04
### 🐛 Исправления

View File

@@ -4,7 +4,7 @@
**Modern web panel for managing Proxmox servers, virtual machines and LXC containers**
[![Version](https://img.shields.io/badge/version-1.5.1-blue?style=flat-square)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-1.5.2-blue?style=flat-square)](CHANGELOG.md)
[![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
[![Docker](https://img.shields.io/badge/docker-ready-2496ED?style=flat-square&logo=docker&logoColor=white)](compose.yml)
[![Python](https://img.shields.io/badge/python-3.12-3776AB?style=flat-square&logo=python&logoColor=white)](backend/)

View File

@@ -1 +1 @@
1.5.1
1.5.2

30
WIKI.md
View File

@@ -1,6 +1,6 @@
# 📖 PVEmanager - Documentation
> Complete guide for installation, configuration and usage of PVEmanager v1.5.1
> Complete guide for installation, configuration and usage of PVEmanager v1.5.2
---
@@ -974,8 +974,27 @@ Download [virtio-win drivers](https://fedorapeople.org/groups/virt/virtio-win/di
- **CPU**: Total load + per core
- **RAM**: Used/Total
- **Disk**: Used/Total + I/O
- **Network**: In/Out traffic
- **Disk**: Used/Total + I/O (per-disk cards on Overview tab)
- **Network**: In/Out traffic (rates in bytes/sec)
- **Disk IOPS**: Read/write rates per disk via QEMU guest agent (`get_vm_fsinfo`)
- **Network I/O rates**: Live bytes/sec computed from cumulative counters in `metrics_broadcaster`
#### Data Granularity
| Source | Granularity | Used for |
|--------|-------------|---------|
| `cluster/resources` (pvestatd) | 10 s | Node and storage overview |
| `status/current` | 1 s | Running VM real-time metrics |
All running VMs are polled via `status/current` at a 1 s cadence with bounded concurrency. Results are broadcast via WebSocket.
#### Where Metrics Appear
| Location | Data shown |
|----------|-----------|
| Instance → Overview tab | Per-disk fill cards, Network I/O card, Disk I/O-rate card |
| Instances list | Net I/O and Disk I/O columns; Disk% for LXC |
| Dashboard top-loaded list | CPU, RAM, Disk, Net metrics overlay |
### Graph Periods
@@ -1497,6 +1516,7 @@ it up automatically on next startup (or call `I18nService.reload()` at runtime).
- Full name
- Email (for notifications)
- Password change
- **Language** — per-user UI language (stored in DB column `users.language`); applies immediately on save via `i18n.changeLanguage()`; each account keeps its own preference
- **SSH Public Key** — stored in user profile and automatically injected into VM/LXC during cloud-init deployment
### Panel Settings
@@ -1505,7 +1525,9 @@ it up automatically on next startup (or call `I18nService.reload()` at runtime).
|-----------|-------------|---------|
| Refresh interval | Data refresh frequency | 30 sec |
| Log retention | How many days to keep logs | 30 days |
| Language | Interface language | English |
| Panel name | Display name (read-only in UI, can be overridden in DB) | `PANEL_NAME` env |
> **Note:** The language setting was moved from the Panel tab to the Profile tab in v1.5.2 — each user now controls their own language independently.
### System Updates & Repository Selection