docs: bump version to 1.5.0, update CHANGELOG, README, WIKI

This commit is contained in:
markmorado
2026-05-07 00:40:27 +02:00
parent 323d1e57fa
commit 0743dee005
7 changed files with 222 additions and 30 deletions

View File

View File

@@ -4,6 +4,50 @@ All notable changes to PVEmanager will be documented in this file.
---
## [v1.5.0] - 2026-05-07
### 🐧 LXC — CT Template Deployment
- **Create LXC from CT templates** — full deployment workflow for creating LXC containers directly from Proxmox CT template files (`.tar.zst`, `.tar.gz`); node/storage selection, IPAM integration, SSH keys support
- **Unified Create Instance Wizard** — redesigned wizard (`CreateInstanceWizard`) supports both VM templates (QEMU) and CT templates (LXC) in a single multi-step flow with type selector, template browser, config step, and confirmation
- **Reinstall LXC from CT template** — reinstall support for containers created from CT templates; hostname, password, SSH keys, and IP address are preserved across reinstall
- **Preserve credentials/IP across LXC reinstall** — root password, SSH keys, IP configuration, and gateway are carried over automatically when reinstalling an LXC container
- **nesting=1 by default** — all newly created LXC containers get `nesting=1` enabled to ensure compatibility with systemd 255+ (cgroup v2)
- **Fix: double URL-encoding of SSH public keys** — SSH keys passed to Proxmox API during LXC creation no longer get double-encoded
### 🔑 SSH Keys Management
- **SSH Keys API** — full CRUD for user SSH key library: `GET /api/ssh-keys`, `POST /api/ssh-keys`, `PUT /api/ssh-keys/{id}`, `DELETE /api/ssh-keys/{id}`
- **Admin key management** — `GET /api/ssh-keys/user/{user_id}` — admins can view and manage SSH keys of any user
- **Key fingerprint** — SHA-256 fingerprint is computed and stored automatically on key creation/update
- **Private key storage** — optional encrypted private key storage alongside the public key
- **SSH Keys Manager UI** — new tab in Settings page for adding, editing, and deleting SSH keys; shows key name, fingerprint, comment, and creation date
- **Key selector in wizard** — when deploying a VM or LXC, SSH keys can be selected from the personal library; admins deploying on behalf of another user can pick from that user's keys
- **Per-user isolation** — regular users manage only their own keys; users with `users.manage` permission can manage keys for any account
### 🗑️ VM/LXC Operations
- **Auto-stop before destroy** — if a VM or LXC container is running when a delete request is issued, it is automatically stopped first; prevents Proxmox `can't lock file` errors on destruction
### 🖥️ Frontend Improvements
- **InstancesPage** — refreshed layout, improved status badges and action menus
- **NodesPage** — updated node cards with cleaner metrics display
- **TemplatesPage** — improved template list with better filtering and group management
- **BackupsPage** — fixed several edge-cases in backup listing, restore dialog, and job scheduling UI
- **UsersPage** — improved user table with better role display and server assignment indicators
- **SettingsPage** — added SSH Keys Manager section; general UX polish
- **`api-client.ts`** — added SSH keys API methods and LXC template endpoints
- **`websocket.ts`** — connection stability improvements
- **`types/index.ts`** — added `SSHKey`, `LXCTemplate`, `LXCDeployRequest` types
### 🛠️ Developer Experience
- **Dev mode** — new `compose.dev.yml` override for Vite HMR (hot module replacement); use `pve dev` or `docker compose -f compose.yml -f compose.dev.yml up -d frontend`; source files are mounted as volumes so changes apply instantly without rebuilding
- **`.dev-mode` marker** — signals to the `pve` CLI that the frontend is running in dev mode
---
## [v1.4.0] - 2026-04-06
### 🌐 Networks — SDN Management & Node Interfaces

View File

@@ -4,6 +4,50 @@
---
## [v1.5.0] - 2026-05-07
### 🐧 LXC — развёртывание из CT-шаблонов
- **Создание LXC из CT-шаблонов** — полный рабочий процесс создания LXC-контейнеров напрямую из CT-файлов Proxmox (`.tar.zst`, `.tar.gz`); выбор узла/хранилища, интеграция с IPAM, поддержка SSH-ключей
- **Единый мастер создания инстансов** — переработанный мастер (`CreateInstanceWizard`) поддерживает как VM-шаблоны (QEMU), так и CT-шаблоны (LXC) в едином многошаговом потоке: выбор типа, браузер шаблонов, конфигурация, подтверждение
- **Переустановка LXC из CT-шаблона** — поддержка переустановки контейнеров, созданных из CT-шаблонов; имя хоста, пароль, SSH-ключи и IP-адрес сохраняются при переустановке
- **Сохранение учётных данных и IP при переустановке LXC** — пароль root, SSH-ключи, IP-конфигурация и шлюз переносятся автоматически при переустановке контейнера
- **nesting=1 по умолчанию** — все новые LXC-контейнеры создаются с включённым `nesting=1` для обеспечения совместимости с systemd 255+ (cgroup v2)
- **Исправлено: двойное URL-кодирование SSH-ключей** — SSH-ключи, передаваемые в API Proxmox при создании LXC, больше не кодируются дважды
### 🔑 Управление SSH-ключами
- **API SSH-ключей** — полный CRUD для библиотеки SSH-ключей пользователя: `GET /api/ssh-keys`, `POST /api/ssh-keys`, `PUT /api/ssh-keys/{id}`, `DELETE /api/ssh-keys/{id}`
- **Управление ключами администратором** — `GET /api/ssh-keys/user/{user_id}` — администраторы могут просматривать и управлять SSH-ключами любого пользователя
- **Отпечаток ключа** — SHA-256 отпечаток вычисляется и сохраняется автоматически при создании/обновлении ключа
- **Хранение приватного ключа** — опциональное зашифрованное хранение приватного ключа рядом с публичным
- **UI управления SSH-ключами** — новая вкладка на странице настроек для добавления, редактирования и удаления SSH-ключей; отображает имя, отпечаток, комментарий и дату создания
- **Выбор ключа в мастере** — при развёртывании VM или LXC можно выбрать SSH-ключи из личной библиотеки; администраторы, создающие инстанс от имени другого пользователя, могут выбирать из ключей этого пользователя
- **Изоляция по пользователю** — обычные пользователи управляют только своими ключами; пользователи с разрешением `users.manage` могут управлять ключами любого аккаунта
### 🗑️ Операции с VM/LXC
- **Автоматическая остановка перед удалением** — если VM или LXC-контейнер запущен в момент запроса удаления, он автоматически останавливается; предотвращает ошибку Proxmox `can't lock file` при уничтожении
### 🖥️ Улучшения фронтенда
- **InstancesPage** — обновлённый макет, улучшенные бейджи статусов и меню действий
- **NodesPage** — обновлённые карточки узлов с более чистым отображением метрик
- **TemplatesPage** — улучшенный список шаблонов с лучшей фильтрацией и управлением группами
- **BackupsPage** — исправлены граничные случаи в списке резервных копий, диалоге восстановления и UI планировщика заданий
- **UsersPage** — улучшенная таблица пользователей с лучшим отображением ролей и индикаторами назначения серверов
- **SettingsPage** — добавлен раздел SSH Keys Manager; общая полировка UX
- **`api-client.ts`** — добавлены методы API SSH-ключей и эндпоинты CT-шаблонов
- **`websocket.ts`** — улучшение стабильности соединения
- **`types/index.ts`** — добавлены типы `SSHKey`, `LXCTemplate`, `LXCDeployRequest`
### 🛠️ Режим разработки
- **Dev mode** — новый оверрайд `compose.dev.yml` для Vite HMR (горячая замена модулей); использовать `pve dev` или `docker compose -f compose.yml -f compose.dev.yml up -d frontend`; исходные файлы монтируются как тома, изменения применяются мгновенно без пересборки
- **Маркер `.dev-mode`** — сигнализирует CLI `pve` о том, что фронтенд запущен в режиме разработки
---
## [v1.4.0] - 2026-04-06
### 🌐 Сети — управление SDN и интерфейсы узлов

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.4.0-blue?style=flat-square)](CHANGELOG.md)
[![Version](https://img.shields.io/badge/version-1.5.0-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/)
@@ -27,6 +27,8 @@ PVEmanager is a self-hosted web panel that provides a unified interface for mana
- **Bulk operations** — mass start / stop / restart / delete with queue and progress tracking
- **Snapshot management** — create, rollback, delete snapshots with an async queue system
- **OS templates** — deploy VMs from templates; cross-node replication handled automatically
- **CT template deployment** — create LXC containers directly from Proxmox CT template files (`.tar.zst`, `.tar.gz`) with full IPAM and SSH key integration
- **Unified Create Instance Wizard** — multi-step wizard supporting both QEMU VM templates and LXC CT templates in a single flow
- **SDN support** — manage Software-Defined Networking zones, VNets, and subnets; edit zones and VNets; auto-create IPAM networks for subnets
- **Node networking** — manage node-level network interfaces (bridges, bonds, VLANs); apply/revert pending config
- **Networks page** — unified UI for SDN and node interface management
@@ -35,6 +37,7 @@ PVEmanager is a self-hosted web panel that provides a unified interface for mana
- **VNC console** — in-browser console via noVNC, no client software required
- **xterm.js terminal** — full interactive shell directly in the browser for LXC containers
- **Remote commands** — execute bash commands via QEMU Guest Agent
- **SSH Keys Management** — personal SSH key library per user; keys selectable when deploying VMs/LXC; admin can manage keys for any user
- **RBAC v2** — granular role-based access control with per-resource permissions
- **Server assignment** — directly assign specific Proxmox servers to users with workspace-conflict validation
- **VM/LXC ownership** — assign an owner user to any VM or LXC container

View File

@@ -4,7 +4,7 @@
**Современная веб-панель для управления серверами Proxmox, виртуальными машинами и контейнерами LXC**
[![Версия](https://img.shields.io/badge/версия-1.4.0-blue?style=flat-square)](CHANGELOG.md)
[![Версия](https://img.shields.io/badge/версия-1.5.0-blue?style=flat-square)](CHANGELOG.md)
[![Лицензия](https://img.shields.io/badge/лицензия-MIT-green?style=flat-square)](LICENSE)
[![Docker](https://img.shields.io/badge/docker-готов-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/)
@@ -26,16 +26,15 @@ PVEmanager — это самостоятельно размещаемая веб
- **Жизненный цикл ВМ и LXC** — создавайте, запускайте, останавливайте, перезагружайте, изменяйте размер, удаляйте виртуальные машины и контейнеры
- **Массовые операции** — массовый запуск/остановка/перезагрузка/удаление с очередью и отслеживанием прогресса
- **Управление снимками** — создавайте, откатывайте, удаляйте снимки с помощью асинхронной системы очередей
- **Шаблоны ОС** — развертывайте ВМ из шаблонов; автоматическая репликация между узлами
- **Поддержка SDN** — управляйте зонами Software-Defined Networking, VNet и подсетями; редактируйте зоны и VNet; автоматическое создание сетей IPAM для подсетей
- **Шаблоны ОС** — развертывайте ВМ из шаблонов; автоматическая репликация между узлами- **Развёртывание CT-шаблонов** — создавайте LXC-контейнеры напрямую из CT-файлов Proxmox (`.tar.zst`, `.tar.gz`) с интеграцией IPAM и SSH-ключей
- **Единый мастер создания инстансов** — многошаговый мастер для создания как VM-шаблонов QEMU, так и LXC CT-шаблонов- **Поддержка SDN** — управляйте зонами Software-Defined Networking, VNet и подсетями; редактируйте зоны и VNet; автоматическое создание сетей IPAM для подсетей
- **Сетевые интерфейсы узлов** — управляйте сетевыми интерфейсами на уровне узла (мосты, связки, VLAN); применяйте/откатывайте ожидающую конфигурацию
- **Страница сетей** — унифицированный интерфейс для управления SDN и сетевыми интерфейсами узлов
### Доступ и консоль
- **Консоль VNC** — консоль в браузере через noVNC, не требуется клиентское ПО
- **Терминал xterm.js** — полностью интерактивный shell непосредственно в браузере для контейнеров LXC
- **Удаленные команды** — выполняйте команды bash через QEMU Guest Agent
- **RBAC v2** — детальный контроль доступа на основе ролей с разрешениями для каждого ресурса
- **Удаленные команды** — выполняйте команды bash через QEMU Guest Agent- **Управление SSH-ключами** — личная библиотека SSH-ключей для каждого пользователя; ключи можно выбирать при развёртывании VM/LXC; админ может управлять ключами любого пользователя- **RBAC v2** — детальный контроль доступа на основе ролей с разрешениями для каждого ресурса
- **Назначение серверов** — напрямую назначайте конкретные серверы Proxmox пользователям с проверкой конфликтов рабочих областей
- **Владелец ВМ/LXC** — назначайте пользователя-владельца любой ВМ или контейнеру LXC
- **Управление сессиями** — список активных сессий, отзыв удаленных сессий, защита входа

View File

@@ -1 +1 @@
1.4.0
1.5.0

148
WIKI.md
View File

@@ -1,6 +1,6 @@
# 📖 PVEmanager - Documentation
> Complete guide for installation, configuration and usage of PVEmanager v1.4.0
> Complete guide for installation, configuration and usage of PVEmanager v1.5.0
---
@@ -13,25 +13,26 @@
5. [VM and Container Management](#-vm-and-container-management)
6. [Bulk Operations](#-bulk-operations)
7. [OS Templates](#-os-templates)
8. [Proxmox Clusters](#-proxmox-clusters)
9. [Snapshots](#-snapshots)
10. [Backups](#-backups)
11. [IPAM](#-ipam)
12. [Remote Command Execution](#-remote-command-execution)
13. [Monitoring](#-monitoring)
14. [Security (RBAC v2)](#-security)
15. [Localization](#-localization)
16. [Settings](#-settings)
17. [Networks (SDN & Node Interfaces)](#node-network-interfaces)
18. [pve CLI Tool](#-pve-cli-tool)
18. [API Reference](#-api-reference)
19. [Workspaces](#-workspaces)
20. [User → Server Assignment](#-user--server-assignment)
21. [VM / LXC Ownership](#-vm--lxc-ownership)
22. [Deployment Guide](#-installation-and-deployment)
23. [Private Repo Updates](#-settings)
24. [Troubleshooting](#-troubleshooting)
25. [FAQ](#-faq)
8. [LXC CT Template Deployment](#-lxc-ct-template-deployment)
9. [Proxmox Clusters](#-proxmox-clusters)
10. [Snapshots](#-snapshots)
11. [Backups](#-backups)
12. [IPAM](#-ipam)
13. [Remote Command Execution](#-remote-command-execution)
14. [Monitoring](#-monitoring)
15. [Security (RBAC v2)](#-security)
16. [Localization](#-localization)
17. [Settings](#-settings)
18. [SSH Keys Management](#-ssh-keys-management)
19. [Networks (SDN & Node Interfaces)](#node-network-interfaces)
20. [pve CLI Tool](#-pve-cli-tool)
21. [API Reference](#-api-reference)
22. [Workspaces](#-workspaces)
23. [User → Server Assignment](#-user--server-assignment)
24. [VM / LXC Ownership](#-vm--lxc-ownership)
25. [Deployment Guide](#-installation-and-deployment)
26. [Troubleshooting](#-troubleshooting)
27. [FAQ](#-faq)
---
@@ -629,7 +630,61 @@ Next deploy to pve2: Uses replicated template (fast)
---
## 🔗 Proxmox Clusters
## <EFBFBD> LXC CT Template Deployment
### Overview
Starting from v1.5.0, LXC containers can be created directly from Proxmox CT template files (`.tar.zst`, `.tar.gz`) without needing a pre-configured OS Template entry. This is the standard way to deploy Debian, Ubuntu, Alpine, and other distros from the Proxmox download list.
### Browsing Available CT Templates
CT templates are fetched directly from the Proxmox server storage:
1. Go to **Instances** → **Create Instance**
2. Select the target Proxmox server
3. Choose type **LXC Container**
4. The wizard fetches available `.tar.zst` / `.tar.gz` files from all storages on the selected server
### Deploying an LXC Container
1. **Server** step — select Proxmox server
2. **Type** step — select **LXC Container**
3. **Template** step — select a CT template from the list
4. **Config** step — fill in:
- Container name (hostname)
- CPU cores, RAM (MB), Swap (MB), Disk (GB)
- Storage, network bridge
- IP address / gateway (manual or from IPAM)
- Root password and/or SSH keys
- Owner (admin only)
- Start after create / On-boot options
5. **Confirm** step — review and click **Deploy**
Deployment runs asynchronously; progress is tracked in the Task Drawer.
### SSH Keys in LXC Deployment
- Select one or more keys from the personal SSH key library (see [SSH Keys Management](#-ssh-keys-management))
- Admins deploying on behalf of another user can pick from that user's key library
- Keys are injected into the container's `authorized_keys` during provisioning
### Reinstalling an LXC Container (CT template)
Containers created from CT templates support reinstall:
1. Open the container's action menu → **Reinstall**
2. Optionally select a different CT template
3. The following are preserved automatically:
- Root password
- SSH keys
- IP address and gateway
4. The old container is destroyed and a new one is created with the same VMID
> **Note:** `nesting=1` is enabled by default on all new LXC containers for systemd 255+ (cgroup v2) compatibility.
---
## <20>🔗 Proxmox Clusters
### Overview
@@ -1279,6 +1334,51 @@ Access via **Settings → Security**:
---
## 🔑 SSH Keys Management
### Overview
Every user has a personal SSH key library. Keys stored in the library can be selected when deploying VMs or LXC containers, eliminating the need to paste the public key manually each time.
### Managing SSH Keys
1. Go to **Settings** → **SSH Keys**
2. Click **Add Key**
3. Fill in:
- **Name** — a human-readable label (e.g., `Work laptop`)
- **Public Key** — paste the full public key (`ssh-rsa ...`, `ssh-ed25519 ...`, etc.)
- **Private Key** *(optional)* — stored encrypted in the database
- **Comment** *(optional)* — free-form note
4. Click **Save**
The SHA-256 fingerprint is computed and displayed automatically.
### Using Keys When Deploying
- In the **Create Instance Wizard**, the **Config** step shows a key selector
- Regular users see their own keys
- Admins selecting an owner see the owner's keys in addition to their own
### Admin Key Management
Admins (users with `users.manage` permission) can view and manage SSH keys for any user:
```
GET /api/ssh-keys/user/{user_id} — list keys for a specific user
```
### API Reference
| Method | Endpoint | Description |
|--------|----------|-------------|
| `GET` | `/api/ssh-keys` | List own SSH keys |
| `POST` | `/api/ssh-keys` | Add a new key |
| `PUT` | `/api/ssh-keys/{id}` | Update a key |
| `DELETE` | `/api/ssh-keys/{id}` | Delete a key |
| `GET` | `/api/ssh-keys/user/{user_id}` | List keys for any user (admin) |
---
## 🌍 Localization
### Supported Languages
@@ -1424,6 +1524,8 @@ pve restart # Restart all containers
pve update # Trigger panel update (via watchdog)
pve exec <cmd> # Execute command inside app container
pve status # Show docker compose status
pve dev # Start frontend in dev mode (Vite HMR)
pve dev stop # Stop dev mode, switch back to production frontend
```
### How It Works
@@ -1851,5 +1953,5 @@ A: Not yet, but planned for future versions.
---
*Last updated: March 16, 2026*
*Version: 1.1.8*
*Last updated: May 7, 2026*
*Version: 1.5.0*