О проекте
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, Типы оборудования, Оборудование, Типы стоек.
- Настройки синхронизации — расписание автосинхронизации, логи запусков.