DEV Community

Дилшод Расулов
Дилшод Расулов

Posted on • Originally published at github.com

PVEmanager: Self-hosted панель для управления Proxmox кластерами

PVEmanager: Self-hosted панель для управления Proxmox кластерами

Если вы управляете несколькими Proxmox VE серверами, то знаете, что родной интерфейс не предназначен для мульти-кластерного управления. Каждый сервер — отдельная вкладка, нет единой картины, аудит логирование ограничено.

Я разработал PVEmanager — панель, которая закрывает эти проблемы.

Что умеет PVEmanager

Дашборд

PVEmanager Dashboard

Главная панель показывает сводку по всем подключённым Proxmox кластерам:

  • Статус узлов (онлайн/офлайн)
  • Быстрые метрики CPU/RAM
  • Активные сессии пользователей

Управление VM

Список виртуальных машин

Полный жизненный цикл VM:

  • Создание из шаблонов
  • Старт / стоп / рестарт
  • Resize дисков и памяти
  • Удаление с подтверждением
  • Bulk операции над группой машин

LXC контейнеры

Список LXC контейнеров

Аналогичные операции для LXC контейнеров + прямой доступ в терминал.

VNC консоль

VNC консоль

Встроенный noVNC для доступа к VM прямо из браузера — не нужен отдельный клиент.

xterm.js терминал

Терминал для LXC

Полноценный shell для LXC контейнеров через xterm.js. Работает даже без QEMU Guest Agent.

Безопасность и доступ

RBAC v2

Управление ролями

Гранулярные роли с правами на ресурсы:

  • Создание кастомных ролей
  • Привязка к конкретным VM/LXC
  • Запрет конфликтов workspace

Нотификации

Настройка уведомлений

Три канала уведомлений:

  • In-App — колокольчик в интерфейсе
  • Email — SMTP (Yandex, Gmail, Mail.ru)
  • Telegram — Bot API через @botfather

Мониторинг

Метрики в реальном времени

Графики CPU/RAM

Chart.js отображает:

  • CPU загрузку по ядрам
  • Использование RAM
  • Disk I/O
  • Network трафик

Графики доступны как на уровне узла, так и на уровне отдельной VM.

Управление сетью

IPAM (IP Address Management)

Управление IP адресами

  • Аллокация IP адресов
  • История выделений
  • Детекция orphan адресов
  • Экспорт списков

Аудит

Лог действий

Аудит лог

Полная история действий:

  • Кто выполнил (пользователь)
  • Что сделал (операция)
  • Когда (таймстемп)
  • На каком ресурсе (VM/LXC/узел)

Настройки

Настройки системы

Глобальные настройки:

  • Таймзона
  • Проверка обновлений
  • GitHub токен для приватных репо
  • SMTP конфигурация
  • Telegram бот токен

Архитектура

Слой Технология
Backend Python 3.12, FastAPI, SQLAlchemy
Frontend Jinja2, Vanilla JS, Bootstrap 5
Database PostgreSQL 16
Containers Docker, Alpine Linux
Proxmox API proxmoxer
VNC noVNC
Графики Chart.js
Терминал xterm.js

Быстрый старт

1. Клонирование

git clone https://github.com/markmorado/pvemanager.git
cd pvemanager
Enter fullscreen mode Exit fullscreen mode

2. Конфигурация

cp .env.example .env
cp backend/.env.example backend/.env
# Редактируйте .env — установите POSTGRES_PASSWORD и TZ
Enter fullscreen mode Exit fullscreen mode

3. Запуск

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

4. Доступ

Откройте http://localhost:8000

Логин по умолчанию: admin / admin123

Важно: Смените пароль после первого входа!

Конфигурация .env

# Database
POSTGRES_PASSWORD=your_secure_password

# Timezone (IANA format)
TZ=Europe/Tashkent

# Update checks (для приватных репо — отключите или укажите токен)
DISABLE_UPDATE_CHECK=false
GITHUB_TOKEN= # опционально
Enter fullscreen mode Exit fullscreen mode

Для кого этот проект

  • Сисадмины с парком Proxmox серверов
  • Хостинг провайдеры (Eskiz, например 😄)
  • Команды DevOps needing RBAC и аудит
  • Лаборатории с тестовыми кластерами

Что дальше

Roadmap:

  • [ ] Интеграция с Proxmox Backup Server
  • [ ] Автоматические бэкапы по расписанию
  • [ ] Мониторинг template deployment
  • [ ] API для внешнего orchestration

Документация:

Contributing

# Fork репозиторий
# Создайте feature branch
git checkout -b feature/my-feature

# Коммит
git commit -m 'feat: add my feature'

# Push
git push origin feature/my-feature

# Pull Request
Enter fullscreen mode Exit fullscreen mode

License

MIT — свободно для использования, модификации и распространения.


GitHub: markmorado/pvemanager

Вопросы? Открывайте issues или пишите в Telegram.

Top comments (0)