NimbusLab is a lightweight Platform-as-a-Service (PaaS) that enables developers to deploy applications directly from GitHub to Virtual Machines (VMs) or Linux Containers (LXCs) running on a Proxmox VE host.
Built with React, Python (Flask), and Terraform, NimbusLab automates the entire infrastructure provisioning and application deployment workflow.
- One-Click Deployment: Deploy directly from any public GitHub repository.
- Infrastucture Choice: Choose between LXC containers (for speed) or full VMs (for isolation).
- Automated Provisioning: Uses Terraform to spin up infrastructure on Proxmox.
- Dynamic Dockerization: Automatically generates Dockerfiles based on the selected framework.
- Real-time Logs: Stream deployment logs directly to the browser.
- Theming: Sleek Dark/Light mode design.
graph TD
User([User]) --> Frontend[React Frontend]
Frontend --> Backend[Flask Backend]
Backend --> Terraform[Terraform Manager]
Backend --> SSH[SSH/Paramiko]
Terraform --> Proxmox[Proxmox VE]
Proxmox --> VM[VM / LXC Container]
SSH --> VM
VM --> GitHub[GitHub Repo]
VM --> Docker[Docker Container]
- Frontend: A modern dashboard where users input their GitHub repo and choose infrastructure specs.
- Backend: Orchestrates the deployment by triggering Terraform and managing SSH scripts.
- Infrastructure: Terraform provisions the requested resources on Proxmox.
- Deployment: Shell scripts are uploaded via SFTP and executed to install dependencies, clone the repo, and run the app inside Docker.
- React (Vite/CRA)
- Node.js
- Django
- Flask
- Proxmox VE Server: Running and accessible via API.
- Terraform: Installed on the backend host.
- Proxmox Provider:
Telmate/proxmoxconfigured. - Cloud-Init Images: Ubuntu cloud-init image present in Proxmox.
This project was analyzed and documented as part of a DevOps/PaaS research initiative.