docs: bump version to 1.5.0, update CHANGELOG, README, WIKI
This commit is contained in:
44
CHANGELOG.md
44
CHANGELOG.md
@@ -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
|
||||
|
||||
@@ -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 и интерфейсы узлов
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
**Modern web panel for managing Proxmox servers, virtual machines and LXC containers**
|
||||
|
||||
[](CHANGELOG.md)
|
||||
[](CHANGELOG.md)
|
||||
[](LICENSE)
|
||||
[](compose.yml)
|
||||
[](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
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
**Современная веб-панель для управления серверами Proxmox, виртуальными машинами и контейнерами LXC**
|
||||
|
||||
[](CHANGELOG.md)
|
||||
[](CHANGELOG.md)
|
||||
[](LICENSE)
|
||||
[](compose.yml)
|
||||
[](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
|
||||
- **Управление сессиями** — список активных сессий, отзыв удаленных сессий, защита входа
|
||||
|
||||
148
WIKI.md
148
WIKI.md
@@ -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*
|
||||
|
||||
Reference in New Issue
Block a user