GPU infrastructure management system for deploying isolated GPU instances on Crusoe Cloud with a web-based dashboard.
AI Engine provides a complete solution for managing GPU resources for teams, featuring:
- Web-based dashboard for team and GPU allocation management
- Automated Terraform deployment to Crusoe Cloud
- Isolated GPU environments with persistent storage
- Real-time resource tracking and bin packing visualization
- Modern React-based web dashboard
- Real-time GPU quota tracking
- Visual bin packing algorithm demonstration
- Dark mode support
- Located in
/frontend
- Infrastructure as Code for Crusoe Cloud
- Automated VM provisioning with GPU allocation
- SSH key generation and management
- Located in root directory (
main.tf)
/api/teams- Team CRUD operations/api/deploy- Trigger infrastructure deployment
- Node.js >= 18
- Terraform >= 1.0
- Python 3 >= 3.7
- Crusoe Cloud account with API credentials
# Create ~/.crusoe/config
[default]
access_key_id = your_access_key
secret_access_key = your_secret_key# Frontend
cd frontend
npm install
# Python scripts
pip3 install json argparse datetime pathlib# Start the web dashboard
cd frontend
npm run devAccess the dashboard at http://localhost:3000
Use the "Deploy" button in the web interface or run:
./scripts/deploy.sh- Add teams with custom GPU allocations (1, 2, 4, 8, or 10 GPUs)
- Specify team members and custom ports
- Real-time GPU quota tracking
- Each team gets dedicated NVIDIA L40S GPUs
- Pre-configured with development tools
- Persistent storage across restarts
- SSH and Jupyter notebook access
- Bin packing algorithm shows optimal VM placement
- Visual representation of host utilization
- Real-time allocation feedback
AI-Engine/
├── frontend/ # Next.js web application
│ ├── app/ # App router pages and API routes
│ ├── components/ # UI components
│ └── public/ # Static assets
├── data/ # Team configuration data
├── scripts/ # Deployment and utility scripts
├── main.tf # Terraform infrastructure
└── README.md
After deployment:
- SSH keys:
keys/[team]_private_key - Connection scripts:
outputs/connect_[team].sh - Jupyter notebooks:
http://[team_ip]:8888