- OS: macOS, Linux, or Windows with WSL2
- RAM: 4GB minimum
- Disk: 1GB for tools and cache
- Proxmox VE 7.0 or higher
- RAM: Enough for VM allocation (8GB+ recommended)
- Disk: 50GB+ available storage
- Network: Reachable from local machine
- vCPUs: 4 cores (configurable)
- RAM: 8GB (configurable)
- Disk: 50GB (configurable)
- OS: Ubuntu 22.04 LTS
-
Terraform >= 1.0
- Installation: https://www.terraform.io/downloads
- macOS:
brew install terraform - Linux: See docs/PROXMOX_SETUP.md
-
Ansible >= 2.9
- Installation: https://docs.ansible.com/ansible/latest/installation_guide/
- macOS:
brew install ansible - Linux:
sudo apt-add-repository ppa:ansible/ansible && sudo apt install ansible
-
Python >= 3.8
- macOS: Pre-installed or
brew install python3 - Linux:
sudo apt install python3 python3-pip
- macOS: Pre-installed or
-
SSH Client
- Usually pre-installed on macOS/Linux
- Generate key:
ssh-keygen -t rsa -b 4096
-
API Token with appropriate permissions
- See docs/PROXMOX_SETUP.md for creation steps
-
Ubuntu Cloud-Init Template (recommended)
- OR Ubuntu ISO for manual VM creation
- See docs/PROXMOX_SETUP.md for template creation
-
Network Configuration
- Network bridge (vmbr0 or custom)
- DHCP server OR static IP allocation
The setup script will install these automatically:
ansible-galaxy collection install community.dockerOr manually:
# Required collections
ansible-galaxy collection install community.docker
ansible-galaxy collection install community.general- 8006: Proxmox web interface and API (from local machine)
- 22: SSH (if managing Proxmox via SSH)
- 22: SSH (from local machine)
- 80: HTTP (optional, if using web interface)
- 443: HTTPS (optional, if using web interface)
- 8080: OpenClaw application (configurable)
- Local machine must reach Proxmox on port 8006
- Local machine must reach VM on port 22 (SSH)
- Client browsers must reach VM on application port (8080)
- API Token ID (e.g.,
root@pam!terraform) - API Token Secret
- SSH public key (typically
~/.ssh/id_rsa.pub) - Optional: VM user password
- Database credentials
- API keys
- SSL certificates
- Domain name
- SSL/TLS certificates
- Database backup storage
- Monitoring solution
- Log aggregation
- GitLab/GitHub/Jenkins
- Docker registry (if using custom images)
- Secret management (Vault, etc.)
Before running deployment, verify:
- Proxmox is accessible via API
- SSH key is generated
- Cloud-init template exists in Proxmox
- Network bridge is configured
- Storage pool has sufficient space
- terraform.tfvars is configured
- ansible/inventory/group_vars/all.yml is configured
Run these commands to validate your environment:
# Check Terraform
terraform version
# Check Ansible
ansible --version
# Check Python
python3 --version
# Check SSH key
ls -la ~/.ssh/id_rsa.pub
# Check Proxmox API (replace with your details)
curl -k "https://your-proxmox:8006/api2/json/nodes" \
-H "Authorization: PVEAPIToken=root@pam!terraform=your-secret"- Install Terraform: https://www.terraform.io/downloads
- Or run:
./scripts/setup.sh(will attempt installation)
- Install Ansible:
pip3 install ansible - Or run:
./scripts/setup.sh(will attempt installation)
- Verify Proxmox host is correct
- Check firewall allows port 8006
- Verify API token is valid
- Use
proxmox_tls_insecure = truefor self-signed certs
- Create template: See docs/PROXMOX_SETUP.md
- Or use manual VM creation method
For detailed setup instructions, see:
- PROXMOX_SETUP.md - Proxmox configuration
- DEPLOYMENT.md - Deployment guide
- README.md - Quick start guide