5f688abff32b06a23784c54fc6a00dd84f9cd1cb
Encrypt Proxmox server passwords and VM cloud-init passwords in the database: - Add backend/app/crypto.py: Fernet-based encrypt/decrypt helpers + EncryptedString SQLAlchemy TypeDecorator (transparent to all existing code, no API changes) - Add FERNET_KEY config field (env var); without it values stay plaintext for backward compatibility, with a logged warning - Update models.py: ProxmoxServer.password and VMInstance.cloud_init_password now use EncryptedString(255) instead of String(255) - Add migration 14 in migrations/migrations.py: idempotent re-encryption of existing plaintext rows (skipped when FERNET_KEY is not set) CSRF analysis: - /api/auth/change-password is protected by JWT Bearer token (Authorization header) - Browsers cannot auto-include Authorization headers cross-site → CSRF is not applicable here; added explanatory comment Improve migration loading: - Add migrations/__init__.py to make it a proper Python package - Replace fragile importlib dynamic loading in main.py with a standard import 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