{"id":44484190,"url":"https://github.com/agit8or1/depl0y","last_synced_at":"2026-04-21T00:01:16.355Z","repository":{"id":338125737,"uuid":"1100029705","full_name":"agit8or1/Depl0y","owner":"agit8or1","description":"Self-hosted VM \u0026 infrastructure management platform for Proxmox — Managed by Phil the Husky","archived":false,"fork":false,"pushed_at":"2026-04-17T02:51:52.000Z","size":11794,"stargazers_count":23,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-17T03:34:31.619Z","etag":null,"topics":["cloud-init","dashboard","fastapi","homelab","idrac","proxmox","proxmox-ve","python","self-hosted","virtualization","vm-management","vue"],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agit8or1.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"agit8or1"}},"created_at":"2025-11-19T18:43:50.000Z","updated_at":"2026-04-17T02:51:55.000Z","dependencies_parsed_at":"2026-03-09T02:03:20.046Z","dependency_job_id":"a6265c49-28cd-468d-a59c-2659f0fd56f8","html_url":"https://github.com/agit8or1/Depl0y","commit_stats":null,"previous_names":["agit8or1/depl0y"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/agit8or1/Depl0y","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agit8or1%2FDepl0y","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agit8or1%2FDepl0y/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agit8or1%2FDepl0y/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agit8or1%2FDepl0y/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agit8or1","download_url":"https://codeload.github.com/agit8or1/Depl0y/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agit8or1%2FDepl0y/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32071013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T21:26:33.338Z","status":"ssl_error","status_checked_at":"2026-04-20T21:26:22.081Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-init","dashboard","fastapi","homelab","idrac","proxmox","proxmox-ve","python","self-hosted","virtualization","vm-management","vue"],"created_at":"2026-02-13T01:18:58.282Z","updated_at":"2026-04-21T00:01:16.347Z","avatar_url":"https://github.com/agit8or1.png","language":"Vue","funding_links":["https://github.com/sponsors/agit8or1"],"categories":[],"sub_categories":[],"readme":"# Depl0y\n\n**Proxmox VE Management Panel — Infrastructure at your fingertips**\n\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)\n![Vue.js](https://img.shields.io/badge/vue.js-3.x-green.svg)\n[![Version](https://img.shields.io/badge/version-2.2.30-brightgreen.svg)](https://github.com/agit8or1/Depl0y/releases)\n[![GitHub Stars](https://img.shields.io/github/stars/agit8or1/Depl0y?style=social)](https://github.com/agit8or1/Depl0y/stargazers)\n\n⭐ If Depl0y saves you time, give it a star — it helps others find the project!\n\nDepl0y is a free, open-source web control panel for Proxmox VE. Manage VMs, clusters, nodes, storage, backups, networking, firewall, HA, and physical hardware from a single dark-mode interface.\n\n---\n\n## Screenshots\n\n### Dashboard\n![Dashboard](screenshots/01-dashboard.png)\n*Customizable widget grid with drag-and-drop reordering — tiles stack asymmetrically (masonry layout)*\n\n### Proxmox Datacenters \u0026 Hosts\n![Proxmox Hosts](screenshots/02-proxmox-hosts.png)\n*Multi-datacenter view with node health, cluster status, join/unjoin cluster actions, and resource bars*\n\n### VM Management\n![VM Management](screenshots/03-vm-management.png)\n*Full VM and LXC container management — lifecycle, config, snapshots, migrate, clone, console*\n\n### Cluster Overview\n![Cluster Overview](screenshots/04-cluster-overview.png)\n*Cluster-wide status, quorum, node health, HA resources, and replication jobs*\n\n### Node Monitor\n![Node Monitor](screenshots/05-node-monitor.png)\n*Per-node RRD charts (CPU, RAM, network, disk I/O), task log, storage, and network configuration*\n\n### Backup Manager\n![Backup Manager](screenshots/06-backup-manager.png)\n*PBS datastore browsing, backup schedule CRUD, and manual backup triggers*\n\n### Storage\n![Storage](screenshots/07-storage.png)\n*Storage pools across all nodes with content browsing and ISO/cloud image management*\n\n### Firewall\n![Firewall](screenshots/08-firewall.png)\n*Cluster, node, and VM-level firewall rules with security groups and IPsets*\n\n### Replication\n![Replication](screenshots/09-replication.png)\n*Proxmox replication job management with force-sync and log viewer*\n\n### Federation Map\n![Federation Map](screenshots/10-federation-map.png)\n*Live OpenStreetMap showing all datacenters with online/offline pins*\n\n### iDRAC / iLO Dashboard\n![iDRAC](screenshots/11-idrac-dashboard.png)\n*Hardware health, power, temperature, and fan monitoring for Dell iDRAC and HPE iLO via Redfish*\n\n### Deploy LLM\n![Deploy LLM](screenshots/12-deploy-llm.png)\n*One-click LLM deployment — Ollama, llama.cpp, vLLM, LocalAI with optional GPU passthrough, Open WebUI, and ComfyUI*\n\n### Users\n![Users](screenshots/13-users.png)\n*Role-based access control — Admin, Operator, Viewer — with 2FA/TOTP support*\n\n### Settings\n![Settings](screenshots/14-settings.png)\n*SMTP, webhooks, cloud image setup, cluster SSH, HA enablement, and one-click system updates*\n\n---\n\n## Features\n\n### 🖥️ Full Proxmox VE Management\n- **VMs** — start/stop/reboot/suspend/resume, config editing (CPU, RAM, disks, NICs), snapshots, clone, migrate, firewall, VNC console, QEMU serial terminal\n- **LXC Containers** — lifecycle, config editing, snapshots, terminal (xterm.js)\n- **Nodes** — RRD metrics charts, VM + LXC list, storage browser, network config, task log, node terminal\n- **Cluster** — status, node list, HA groups and resources, quorum monitoring\n- **Cluster Join / Unjoin** — join any node to a cluster (fingerprint auto-fetched), remove nodes from cluster\n- **Replication** — job CRUD, force-sync, log viewer\n- **Node Evacuation** — migrate all VMs off a node to other online nodes\n- **Firewall** — cluster, node, and VM-level rules; security groups; IPsets\n- **Backup** — schedule CRUD, manual trigger, PBS datastore browsing\n- **Storage** — pool management, content browsing, ISO and cloud image management\n- **Networking** — bridge/bond/VLAN config with apply-pending support\n\n### 📊 Dashboard\n- **Widget grid** — drag-and-drop reordering with masonry (asymmetric column) layout\n- **10+ widgets** — CPU, RAM, storage, network traffic, disk I/O, VM status, alerts, activity feed, quick actions\n- **Clickable tiles** — every widget links to its management view\n- **Per-widget refresh** — each widget auto-refreshes independently\n\n### 🗺️ Federation \u0026 Multi-Datacenter\n- **Multi-host** — add and manage multiple Proxmox VE hosts with API token or password auth\n- **Live Map** — OpenStreetMap/Leaflet with datacenter pins (blue = online, red = offline)\n- **Federated Summary** — aggregate VM/node/storage stats across all registered hosts\n- **Federated Dashboard** — cross-datacenter VM/node overview in one view\n\n### 🖧 iDRAC / iLO Out-of-Band Management\n- **Redfish Dashboard** — unified health, power, temperature, wattage for all BMC-equipped servers\n- **Power Control** — on, off, graceful shutdown, force/graceful restart, PXE boot\n- **Hardware Inventory** — CPUs, DIMMs, storage controllers \u0026 drives, firmware, NICs, SEL\n- **Multi-vendor** — Dell iDRAC (including iDRAC 8 / 13G) and HPE iLO via Redfish v1\n\n### 🤖 LLM Deployment\n- **Simple + Advanced modes** — 4 questions to deploy, or full control over engine/model/GPU/OS/storage\n- **4 Engines** — Ollama, llama.cpp (GGUF), vLLM (OpenAI-compatible), LocalAI (Docker)\n- **15+ Models** — Llama 3.x, Mistral, Phi-4, Gemma, Qwen, DeepSeek, Code Llama, and more\n- **GPU Passthrough** — NVIDIA (CUDA) and AMD (ROCm) with automatic driver install\n- **Add-ons** — Open WebUI, ComfyUI (Stable Diffusion), AI auto-tuning, RAG, conversation logging\n\n### 📥 VM Import\n- **File upload** — OVA, OVF, VMDK, VHD, VHDX, QCOW2, RAW via drag \u0026 drop\n- **VMware direct** — connect to ESXi or vCenter, browse and pull VMs over the network\n- **Auto-parse** — OVF descriptors extracted for name, CPU, RAM, disk, OS type\n- **Disk conversion** — VMDK/VHD/VHDX → qcow2 via qemu-img automatically\n\n### ⚡ Cloud Image Deployment\n- **30-second deployments** — Ubuntu, Debian, Rocky, AlmaLinux (after one-time template setup)\n- **Cloud-Init** — hostname, user, SSH key, static IP, DNS, package injection\n\n### 🔐 Security \u0026 Access Control\n- **Role-based** — Admin, Operator, Viewer with route-level enforcement\n- **2FA / TOTP** — authenticator app support with QR code setup\n- **Encrypted storage** — all passwords and API tokens encrypted at rest (Fernet)\n- **Audit log** — every user action and system change recorded\n- **Rate limiting** — 100 req/min globally with security headers\n\n### 🔄 VM Update Management\n- **One-click updates** — check and install updates on any managed Linux VM via SSH\n- **Real-time streaming** — live terminal output as apt/dnf runs\n- **Auto-scheduled checks** — configurable interval (6h–7d) for automatic checks\n\n---\n\n## Quick Start\n\n### One-Line Installation\n\n```bash\ncurl -fsSL http://deploy.agit8or.net/downloads/install.sh | sudo bash\n```\n\nInstalls all dependencies, configures nginx, and creates a systemd service — ready in ~30 seconds.\n\n### Post-Installation\n\n1. Open `http://your-server-ip` — default credentials: `admin` / `admin` (**change immediately**)\n2. Enable 2FA — Settings → User Profile → Enable TOTP\n3. Add a Proxmox host — Proxmox Hosts → Add Datacenter → test connection\n4. Deploy or import a VM\n\n### Updating\n\n```bash\ncd /opt/depl0y \u0026\u0026 git pull origin main \u0026\u0026 sudo bash deploy.sh\n```\n\nOr: **Settings → System Updates → Check for Updates → Install**\n\n---\n\n## Configuration\n\n### Environment Variables (`/etc/depl0y/config.env`)\n\n```bash\nSECRET_KEY=your_jwt_secret_key_minimum_32_chars\nENCRYPTION_KEY=your_fernet_encryption_key\nDATABASE_URL=sqlite:////var/lib/depl0y/db/depl0y.db\nDEBUG=false\nLOG_LEVEL=INFO\n```\n\n### Storage Locations\n\n| Path | Contents |\n|------|----------|\n| `/var/lib/depl0y/db/depl0y.db` | SQLite database |\n| `/var/lib/depl0y/isos` | ISO images |\n| `/var/lib/depl0y/cloud-images` | Cloud image templates |\n| `/var/lib/depl0y/ssh_keys` | SSH key pairs |\n| `/var/log/depl0y/` | Application logs |\n| `/tmp/depl0y-imports/` | Temporary VM import working directory |\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────┐\n│         Frontend (Vue.js 3)         │\n│   SPA · Axios · Chart.js · Leaflet  │\n│   Dark Mode · Widget Grid · xterm   │\n└──────────────┬──────────────────────┘\n               │ HTTP REST (/api/v1)\n┌──────────────▼──────────────────────┐\n│       Backend (FastAPI + Python)     │\n│  Auth · VMs · Cluster · Import      │\n│  LLM · HA · Backup · iDRAC · Alerts │\n└──────┬──────────────┬───────────────┘\n       │              │\n┌──────▼──────┐ ┌────▼────────────────┐\n│   SQLite DB  │ │   Proxmox VE API    │\n│  (users/VMs/ │ │  nodes/qemu/cluster │\n│  settings)   │ │  + Redfish / SSH    │\n└─────────────┘ └─────────────────────┘\n```\n\n**Key dependencies:** proxmoxer, pyVmomi, paramiko, SQLAlchemy, Pydantic, APScheduler, python-jose, Leaflet\n\n---\n\n## API Documentation\n\n- **Swagger UI:** `http://your-server/api/v1/docs`\n- **ReDoc:** `http://your-server/api/v1/redoc`\n- **In-App API Explorer:** Sidebar → API Explorer\n\n---\n\n## Development\n\n```bash\n# Backend\ncd backend \u0026\u0026 python3 -m venv venv \u0026\u0026 source venv/bin/activate\npip install -r requirements.txt\nuvicorn app.main:app --reload\n\n# Frontend\ncd frontend \u0026\u0026 npm install \u0026\u0026 npm run dev\n\n# Production build + deploy\nsudo bash /opt/depl0y/deploy.sh\n```\n\n---\n\n## Troubleshooting\n\n**Cannot connect to Proxmox host**\n- Verify credentials and network connectivity\n- Disable `verify_ssl` for self-signed certificates\n- Ensure Proxmox API port (8006) is reachable\n\n**VM import fails**\n- Ensure `local` storage exists with enough space on the target node\n- SSH must be configured between Depl0y server and Proxmox host (Settings → SSH Setup)\n\n**Cluster join fails**\n- Ensure the root@pam password is correct for the cluster master node\n- The fingerprint is auto-fetched — if it fails, fetch it manually: `pvecm status` on the master\n\n**Backend logs**\n```bash\nsudo journalctl -u depl0y-backend -f\n```\n\nFor more help: [GitHub Issues](https://github.com/agit8or1/Depl0y/issues)\n\n---\n\n## Contributing\n\nPull requests welcome. For major changes, open an issue first to discuss what you'd like to change.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagit8or1%2Fdepl0y","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagit8or1%2Fdepl0y","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagit8or1%2Fdepl0y/lists"}