e05650cc9bedcf1a4d358cf981f10f394dd3c157
- proxmox_client.py: add ThreadPoolExecutor(max_workers=20) + async wrapper methods (async_get_nodes, async_get_vms, async_get_containers, async_get_node_status, async_get_vm_status, async_get_container_status, async_get_storages, async_get_all_resources) to avoid blocking event loop - ipam_service.py: replace full-network allocation scan + Python IP loop with per-pool targeted SQL query — only loads IPs for the specific pool being searched - api/ipam.py: fix N+1 full-table scans on GET /api/allocations — use IN-filtered queries on only the network/pool IDs present in the result set - monitoring_worker.py: wire LoggingService.cleanup_old_logs(days=30) into the existing run_cleanup_expired() job so audit logs don't grow unboundedly - api/templates.py: convert auto_import_templates to async endpoint using BackgroundTasks — returns immediately, heavy Proxmox I/O runs in background https://claude.ai/code/session_019rK2wvaWg5zXFwmAPPEB7R
🖥️ PVEmanager
Modern web panel for managing Proxmox servers, virtual machines and LXC containers.
✨ Key Features
- 🖥️ Proxmox Integration — Manage multiple servers and clusters
- 🎛️ VM/LXC Management — Start, Stop, Restart, Delete, Resize
- ⚡ Bulk Operations — Mass start/stop/restart/delete VMs and containers
- 🖵 VNC Console — Built-in console via noVNC
- ⌨️ Remote Commands — Bash via QEMU Guest Agent
- 📸 Snapshots — Create, delete, rollback VM/LXC snapshots with queue system
- 📋 OS Templates — Quick VM deployment from templates
- 🔄 Cross-Node Templates — Deploy templates to any cluster node with auto-replication
- 📦 Smart LXC Creation — Create containers from templates on any node with auto-migration
- 🌐 IPAM — IP Address Management
- 🔔 Notifications — Email, Telegram, In-App
- 📊 Monitoring — CPU, RAM, Disk, Network in real-time
- 🔒 Security — RBAC v2, IP blocking, session management, login protection
- 🌍 Multilingual — Russian and English
🚀 Quick Start
# Clone repository
git clone https://github.com/your-repo/pvemanager.git
cd pvemanager
# Copy configuration
cp .env.example .env
cp backend/.env.example backend/.env
# Start
docker compose up -d
# Open http://localhost:8000
# Login: admin / Password: admin123
⚠️ Make sure to change password after first login!
📖 Documentation
| Document | Description |
|---|---|
| 📖 WIKI.md | Complete User & Admin Guide |
| 📝 CHANGELOG.md | Change History |
🔔 Notifications
Notification system supports:
- In-App — Bell icon with badge in UI
- Email — SMTP (Yandex, Gmail, Mail.ru)
- Telegram — Via Bot API
Settings: Settings → Notifications
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Backend | FastAPI + Python 3.12 |
| Frontend | Jinja2 + Vanilla JS |
| Database | PostgreSQL 16 |
| Container | Docker + Alpine |
| Proxmox API | proxmoxer |
| VNC | noVNC |
📋 Requirements
- Docker & Docker Compose
- 2GB RAM minimum
- Proxmox VE 7.x / 8.x / 9.x
🔧 Configuration
Main Variables (.env)
POSTGRES_PASSWORD=your_secure_password
TZ=Your/Timezone
Private Repository Configuration
For private repositories, update checks need to be configured:
# Disable update checks completely
DISABLE_UPDATE_CHECK=true
# OR use GitHub token for access
GITHUB_TOKEN=your_github_personal_access_token
To create GitHub token: https://github.com/settings/tokens (needs 'repo' scope)
Notifications (SMTP and Telegram)
Email and Telegram notification settings are now managed via web interface:
- Open Settings → Notifications
- Fill in SMTP server details for email notifications
- Enter Telegram bot token for Telegram notifications
🤝 Contributing
- Fork the repository
- Create feature branch
- Commit changes
- Push and create Pull Request
📜 License
MIT License — see LICENSE
📞 Support
Made with ❤️ for Proxmox users
Description
PVEmanager is a self-hosted platform for managing multiple Proxmox servers and clusters: VM, LXC, CT templates, SSH keys, backups, SDN networks, IPAM, RBAC v2, monitoring, and console access — all in one interface.
https://pvemanager.uz