Claude 5f688abff3 security: encrypt sensitive DB fields, clean up dynamic import
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
2026-03-06 16:17:45 +00:00
2026-03-02 14:54:42 +00:00
2025-12-15 12:36:10 +05:00
2025-12-29 11:29:10 +05:00

🖥️ PVEmanager

Modern web panel for managing Proxmox servers, virtual machines and LXC containers.

Version License Docker

✨ 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:

  1. Open Settings → Notifications
  2. Fill in SMTP server details for email notifications
  3. Enter Telegram bot token for Telegram notifications

🤝 Contributing

  1. Fork the repository
  2. Create feature branch
  3. Commit changes
  4. 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
Readme MIT 21 MiB
v1.17.0 Latest
2026-08-20 05:46:58 +05:00
Languages
Python 51.7%
TypeScript 36.9%
JavaScript 8.6%
Shell 2.5%
CSS 0.2%