A full-stack application for managing virtual machines in a Proxmox environment, with a React frontend and FastAPI backend.
- Clone the repository
git clone https://github.com/sanjayram-a/proxmox-app
cd proxmox-app- Start the backend
cd backend
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload- Start the frontend
cd frontend
npm install
npm start- Visit http://localhost:3000 to access the application
Detailed documentation is available in the docs directory:
- Complete Workflows - Sequence diagrams of key system processes
- Setup Guide - Detailed installation and configuration instructions
- Project Guide - Development guidelines and detailed setup instructions
- Language: Python
- Framework: FastAPI
- Database: MySQL
- ORM: SQLAlchemy
- Authentication: JWT
Directory Structure:
backend/
├── app/
│ ├── models/ # Database models
│ ├── routers/ # API routes
│ ├── schemas/ # Pydantic schemas
│ └── services/ # Business logic
├── alembic/ # Database migrations
└── requirements.txt # Python dependencies
- Language: TypeScript
- Framework: React
- State Management: Redux Toolkit
- UI Library: Material-UI
Directory Structure:
frontend/
├── src/
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Main application pages
│ ├── services/ # API service layer
│ ├── store/ # Redux store and slices
│ └── types/ # TypeScript type definitions
- User authentication and authorization
- Virtual machine management
- Resource monitoring
- Remote console access
- Role-based access control
- Python 3.8+
- Node.js 14+
- MySQL 8.0+
- Proxmox VE server
- Apache Guacamole server (for remote console)
DATABASE_URL=mysql://user:password@localhost:3306/lab_management
SECRET_KEY=your-secret-key
ACCESS_TOKEN_EXPIRE_MINUTES=30
PROXMOX_HOST=your-proxmox-host
PROXMOX_USER=root@pam
PROXMOX_PASSWORD=your-proxmox-password
REACT_APP_API_URL=http://localhost:8000
- Create a new feature branch from main
- Make your changes following the development guidelines
- Write/update tests as needed
- Submit a pull request for review
Please read our Contributing Guide for details on our development process and coding standards.
This project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details.
For support, please open an issue in the project repository or contact the development team.