A Laravel-based backend service for connecting to and retrieving information from multiple Proxmox nodes.
This service allows you to:
- Connect to multiple Proxmox clusters and nodes
- Retrieve comprehensive information as JSON responses
- Configure information retrieval for all nodes or specific groups of nodes
- Manage clusters and nodes through RESTful API endpoints
- Cluster Management: Add, update, delete, and test connections to Proxmox clusters
- Node Management: Sync nodes from clusters, update node information
- Resource Retrieval: Get resources from specific clusters, nodes, or filtered by resource type
- Clean Architecture: Implemented using service-repository pattern for separation of concerns
- Error Handling: Custom exception handling for Proxmox API interactions
- Containerization: Docker setup for production deployment
A complete Postman collection (Proxmox_API_Collection.json
) is included with the project. Import this collection into Postman to explore all available API endpoints.
GET /api/proxmox/clusters
- Get all clustersPOST /api/proxmox/clusters
- Add a new clusterPUT /api/proxmox/clusters/{id}
- Update a clusterDELETE /api/proxmox/clusters/{id}
- Delete a clusterPOST /api/proxmox/clusters/{id}/test-connection
- Test connection to a cluster
POST /api/proxmox/clusters/{id}/sync-nodes
- Sync nodes from a clusterPUT /api/proxmox/nodes/{id}
- Update node information
GET /api/proxmox/clusters/{id}/resources
- Get all resources for a clusterPOST /api/proxmox/clusters/{id}/resources
- Get filtered resourcesGET /api/proxmox/clusters/{id}/nodes/{node_id}
- Get details for a specific nodeGET /api/proxmox/clusters/{id}/nodes/{node_id}/vms
- Get all VMs for a nodeGET /api/proxmox/clusters/{id}/nodes/{node_id}/containers
- Get all containers for a node
- PHP 8.1+
- Composer
- PostgreSQL (for Replit) or MySQL (for Docker)
- Clone the repository
- Run
composer install
- Configure your database in
.env
- Run migrations:
php artisan migrate
- Start the development server:
php artisan serve
For production deployment, use Docker:
- Configure
.env
with your production settings - Run
docker-compose up -d
The application can be configured through the following files:
.env
- Environment configurationconfig/proxmox.php
- Proxmox-specific settings (timeout, retry, logging)config/database.php
- Database configuration
Run the test suite with:
php artisan test
This project is open-sourced software.