# n8n-nodes-proxmox

This is an n8n community node for Proxmox Virtual Environment (VE) API integration. It provides comprehensive management capabilities for VMs, containers, storage, cluster operations, and backup management.

## Features

- **Virtual Machine Management**: Create, configure, start, stop, and manage VMs
- **Container Operations**: LXC container lifecycle management
- **Storage Management**: Storage pool and volume operations
- **Cluster Operations**: Multi-node cluster management and monitoring
- **Backup Management**: Automated backup and restore operations
- **Resource Monitoring**: CPU, memory, disk, and network monitoring
- **Template Management**: VM and container template operations
- **AI Integration**: Marked as `usableAsTool: true` for AI agent compatibility

## Installation

```bash
npm install n8n-nodes-proxmox
```

## Configuration

1. Go to **Credentials** in n8n
2. Select **Proxmox API** credential type
3. Configure your Proxmox connection:
   - **Host**: Your Proxmox server URL (e.g., https://proxmox.example.com)
   - **Port**: API port (default 8006)
   - **Username**: Proxmox username (e.g., root@pam)
   - **Password**: Proxmox password or API token
   - **Skip SSL Verification**: Enable if using self-signed certificates

## Usage

1. Add the **Proxmox VE** node to your workflow
2. Select your Proxmox API credential
3. Choose the resource and operation you want to perform
4. Configure the parameters as needed

## Resources and Operations

### Virtual Machines (VMs)
- **List VMs**: Get all virtual machines and their status
- **Get VM**: Retrieve detailed VM information
- **Create VM**: Create new virtual machines from templates or scratch
- **Start VM**: Power on virtual machines
- **Stop VM**: Gracefully shutdown virtual machines
- **Restart VM**: Reboot virtual machines
- **Delete VM**: Remove virtual machines
- **Clone VM**: Create VM copies
- **Migrate VM**: Move VMs between nodes
- **Configure VM**: Update VM settings and hardware
- **Get VM Status**: Monitor VM performance and health

### Containers (LXC)
- **List Containers**: Get all containers and their status
- **Get Container**: Retrieve detailed container information
- **Create Container**: Create new LXC containers
- **Start Container**: Start containers
- **Stop Container**: Stop containers
- **Restart Container**: Restart containers
- **Delete Container**: Remove containers
- **Clone Container**: Create container copies
- **Migrate Container**: Move containers between nodes
- **Configure Container**: Update container settings

### Storage
- **List Storage**: Get storage pools and volumes
- **Get Storage**: Retrieve storage details
- **Create Volume**: Create new storage volumes
- **Delete Volume**: Remove storage volumes
- **Upload ISO**: Upload ISO images
- **Download Template**: Download VM/container templates
- **Backup Storage**: Manage backup storage

### Cluster
- **Get Cluster Status**: Monitor cluster health
- **List Nodes**: Get cluster nodes and status
- **Get Node**: Retrieve node details
- **Node Statistics**: Monitor node resources
- **Cluster Resources**: Get cluster-wide resource usage
- **HA Status**: High availability status
- **Cluster Tasks**: Monitor background tasks

### Backup
- **List Backups**: Get available backups
- **Create Backup**: Create VM/container backups
- **Restore Backup**: Restore from backups
- **Delete Backup**: Remove old backups
- **Backup Jobs**: Manage scheduled backup jobs
- **Backup Configuration**: Configure backup settings

## Use Cases

- **Infrastructure Automation**: Automate VM and container provisioning
- **DevOps Workflows**: Integrate with CI/CD pipelines for testing environments
- **Disaster Recovery**: Automated backup and restore procedures
- **Resource Management**: Monitor and optimize resource usage
- **Scaling Operations**: Auto-scale infrastructure based on demand
- **Maintenance Automation**: Scheduled maintenance and updates
- **Monitoring Integration**: Connect with monitoring and alerting systems
- **Template Management**: Standardize VM and container deployments

## Proxmox Compatibility

This node is compatible with Proxmox VE 6.x and 7.x versions. Features include:

- Full REST API v2 support
- Authentication via username/password or API tokens
- SSL/TLS support with certificate validation options
- Multi-node cluster support
- Real-time status monitoring
- Comprehensive error handling

## API Authentication

The node supports multiple authentication methods:

- **Username/Password**: Traditional PAM or PVE authentication
- **API Tokens**: Secure token-based authentication (recommended)
- **Two-Factor Authentication**: TOTP support for enhanced security

## Security Considerations

- Use API tokens instead of passwords when possible
- Implement proper firewall rules for API access
- Use HTTPS for all communications
- Regularly rotate API credentials
- Monitor API access logs for security compliance
- Use role-based access control (RBAC) for limited permissions

## Performance Tips

- Use specific node targeting for operations when possible
- Implement proper error handling and retries
- Monitor API rate limits to avoid throttling
- Use bulk operations when managing multiple resources
- Cache frequently accessed data to reduce API calls

## License

MIT

## Support

This is a community-maintained node. For issues and questions, please use the GitHub issues.