О проекте

ProxBoard - система для сбора информации о ресурсах Proxmox-кластеров, автоматической синхронизации инвентаря (VM, узлы, хранилища, Ceph, GPU), расчёта загрузки и рисков, планирования новых ЦОД (Greenfield Planning) и ведения справочников. Поддерживается импорт из Netbox, карта стоек, отчёты и экспорт данных.

1. Назначение

ProxBoard — веб-приложение для учёта и планирования ресурсов инфраструктуры на базе Proxmox VE:

  • Сбор данных — подключение к одному или нескольким Proxmox-кластерам (ЦОДам), синхронизация узлов, виртуальных машин (QEMU/LXC), хранилищ (ZFS, LVM, Ceph, сетевые), GPU; при необходимости — сбор realtime-метрик ВМ и GPU по SSH.
  • Учёт и расчёт — маппинг узлов Proxmox на физические серверы, расчёт загрузки по vCPU/HostCPU, RAM, дискам, Ceph, GPU; пороги риска (жёлтый/красный).
  • Планирование — моделирование новых ЦОД (Greenfield): плановые серверы, хранилище, запросы на ВМ; симуляция размещения (алгоритм BFD), сравнение запусков, экспорт.
  • Справочники — технологии, профили нагрузки, приоритеты резервов, спецификации GPU, типы оборудования и стоек.
  • ЦОД и стойки — локации, стойки, карта размещения оборудования; импорт из Netbox (JSON).
  • Отчёты и экспорт — отчёты по серверам/кластерам/Ceph/DevOps Plan; экспорт в CSV; полный экспорт/импорт БД.

Производственные данные Proxmox не изменяются; изменение данных (VM, серверы, маппинг) выполняется только внутри ProxBoard.

2. Архитектура

  • Backend: FastAPI (Python 3.12), асинхронный код, работа с PostgreSQL через asyncpg (без SQLAlchemy).
  • Frontend: серверный рендеринг (Jinja2) + HTMX для частичных обновлений и форм; Bootstrap 5, Font Awesome.
  • БД: PostgreSQL; миграции в app/db/migrations/ (нумерованные SQL-файлы).
  • Интеграции: Proxmox REST API (токен или логин/пароль), опционально SSH для realtime-метрик ВМ и GPU (nvidia-smi/rocm-smi).

3. Навигация (основные разделы)

  • Дашборд (/) — сводные метрики по выбранному ЦОД или всем: CPU, RAM, GPU, HDD/SSD, Ceph, VM; realtime-карточки (при включённой синхронизации realtime).
  • ЦОДы (/proxmox-endpoints/) — список подключений к Proxmox, создание/редактирование, проверка подключения, ручная и автоматическая синхронизация.
  • Стойки (/rack-overview/) — обзор локаций и стоек ЦОД.
  • Сервера (/physical-servers/) — физические серверы, привязка к ЦОДу, CPU/RAM/диски.
  • Виртуалки (/vm-instances/) — учёт VM (планируемые и синхронизированные), назначение на сервер, профиль приоритета, кластер приложения.
  • CEPH (/ceph-clusters/, /ceph-pools/) — кластеры и пулы Ceph.
  • Хранилища (/storages/) — хранилища Proxmox по узлам.
  • Видеокарты (/gpus) — GPU по узлам, привязка к VM.
  • Приложения (/app-clusters/) — кластеры приложений и политики размещения.
  • Планирование — подменю: Планы (Greenfield), Создать план, Профили нагрузки, Приоритеты.
  • Админка (только admin) — SSH-доступы (список адресов, по которым приложение подключается по SSH при синхронизации; статус OK / нет доступа для сетевого инженера), Обзор Proxmox API, Настройки дашборда (подкрутка realtime).
  • Справочники (только admin) — Технологии, Спецификации GPU, Типы оборудования, Оборудование, Типы стоек.
  • Настройки синхронизации — расписание автосинхронизации, логи запусков.