π§ Proxmox Single-Node Administration Guide
Authorβs Note:
All paths and commands shown in this guide reflect a real working Proxmox setup.
You can safely adapt them for your own environment if your interface or IP layout differs.
βοΈ Introduction: Why Proxmox VE
Proxmox Virtual Environment (Proxmox VE) is an open-source virtualization platform that combines KVM (for virtual machines) and LXC (for lightweight containers) in a single, powerful web-based interface.
For homelabs, testing, or even small-scale production environments, Proxmox offers:
- Intuitive web UI
- Advanced CLI control
- Built-in backup and snapshot support
- Integrated firewall and VLAN tagging
- Optional clustering and shared storage
π‘ Tip: This guide focuses on a single-node setup, ideal for automation and homelab usage.
A follow-up post covers multi-node clustering and Ceph storage.
π§± 1. Installing Proxmox VE
Step 1. Download and Install
- Download the latest ISO from https://www.proxmox.com/en/downloads
- Boot the system and install using default guided options.
Step 2. Network Configuration During Install
Assign a static IP for management (e.g., 10.0.0.3), and note your chosen hostname (e.g., pve-node).
Step 3. Accessing the Web Interface
After installation, open your browser:
https://<your-proxmox-ip>:8006
Default user: root@pam
π§© 2. Initial Configuration
Disable Enterprise Repository (for non-subscription users)
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
apt update && apt full-upgrade -y
Enable SSH and Configure Access
systemctl enable ssh
systemctl start ssh
You can now SSH in:
ssh [email protected]
π§° 3. User Management and Permissions
While root@pam is the default admin, best practice is to create a dedicated automation user for Terraform and Ansible integration later.
Create User
From the Proxmox Web UI:
Datacenter β Permissions β Users β Add
Example:
- User ID:
terraform@pve - Group:
Administrators
Create API Token
Datacenter β Permissions β API Tokens β Add
Associate it with your automation user and note the generated token ID and secret.
π§ Pro Note: This token-based authentication allows Terraform to connect securely to the Proxmox API.
π§© 4. Working with LXC Containers
Proxmox supports Linux Containers (LXC) for lightweight, resource-efficient environments.
Create a Container via CLI
pct create 201 local:vztmpl/ubuntu-22.04-standard_22.04-2_amd64.tar.zst -hostname test-lxc -storage local-lvm -rootfs local-lvm:8 -net0 name=eth0,bridge=vmbr0,ip=10.0.10.10/24,gw=10.0.10.1 -password
Manage Containers
| Command | Description |
|---|---|
pct list |
List containers |
pct start 201 |
Start container |
pct exec 201 bash |
Execute shell |
pct stop 201 |
Stop container |
pct destroy 201 |
Delete container |
π‘ Tip: Containers can share kernel resources and start in seconds compared to full VMs.
π₯οΈ 5. Managing Virtual Machines (KVM)
Create a New VM
qm create 101 --name ubuntu-vm --memory 2048 --net0 virtio,bridge=vmbr0
qm importdisk 101 ubuntu.qcow2 local-lvm
qm set 101 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-101-disk-0
qm start 101
Common VM Commands
| Command | Description |
|---|---|
qm list |
List all VMs |
qm start 101 |
Start VM |
qm stop 101 |
Stop VM |
qm snapshot 101 snap1 |
Create snapshot |
qm destroy 101 |
Remove VM |
β οΈ Caution: Always shut down VMs gracefully before destroying to prevent disk lock issues.
π 6. Networking in Proxmox
Proxmox uses Linux bridges to connect VMs and LXCs to physical networks.
Example /etc/network/interfaces
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.0.0.3/24
gateway 10.0.0.1
bridge_ports eno1
bridge_stp off
bridge_fd 0
VLAN Tagging Example
auto vmbr0.10
iface vmbr0.10 inet static
address 10.0.10.1/24
vlan-raw-device vmbr0
π‘ Tip: Each container or VM can have its own VLAN tag (configured via
tag=in Terraform or UI).
Useful Network Commands
ip a
brctl show
journalctl -u networking
πΎ 7. Storage Management
List Available Storage
pvesm status
Add NFS Storage
pvesm add nfs backups 10.0.0.10:/mnt/backups
Backup Containers or VMs
vzdump 201 --storage local --compress zstd
Restore from Backup
pct restore 202 /var/lib/vz/dump/vzdump-lxc-201.tar.zst
π§ Pro Note: For scheduled backups, use Datacenter β Backup from the Web UI.
π§ 8. Maintenance and Troubleshooting
Check Service Status
systemctl status pvedaemon pveproxy pvestatd
Restart Proxmox Services
systemctl restart pve-cluster pvedaemon pveproxy
View Logs
journalctl -xe
tail -f /var/log/pve/tasks/index
System Update and Cleanup
apt update && apt full-upgrade -y
pveperf
apt autoremove -y
π‘ Tip: Run
pveversion -vto confirm version consistency after updates.
βοΈ 9. Preparing for Automation (Terraform + Ansible)
This section bridges your Proxmox setup with the automation stack.
Enable API Access for Terraform
- Ensure your automation user (e.g.,
terraform@pve) exists. - Create an API token under that user.
- Note down the token ID and secret β these will be referenced in
terraform.tfvars.
Terraform connects via:
pm_api_url = "https://<proxmox-ip>:8006/api2/json"
pm_api_token_id = "terraform@pve!tf-token"
pm_api_token_secret = "<SECRET>"
Prepare for Ansible
Ensure SSH key authentication is working:
ssh automation@<container-ip>
This allows Ansible to run configuration playbooks (like system updates, tool installations, and user creation).
π‘ Tip: Keep your
/home/automation/.ssh/id_rsa.pubconsistent β Terraform injects this key into all new containers automatically.
π§Ύ 10. Command Reference Cheat Sheet
| Category | Command | Description |
|---|---|---|
| General | pveversion -v |
Show version info |
| VMs | qm list, qm start, qm stop, qm snapshot |
Manage virtual machines |
| Containers | pct list, pct start, pct exec, pct stop |
Manage LXC containers |
| Storage | pvesm status, pvesm add, vzdump |
Manage and backup storage |
| Network | ip a, brctl show |
View network interfaces and bridges |
| System | systemctl restart pvedaemon |
Restart core services |
β Summary
With this single-node Proxmox setup, you now have:
- A fully functional hypervisor with KVM + LXC support
- Configured networking and storage
- SSH and API access ready for automation
π‘ Next step: Integrate Terraform and Ansible to provision and configure containers automatically.
See the companion article: βTerraform + Ansible + Proxmox Automation Guide.β
π§ Bonus Tips
- Use
cronfor automatic backups of containers and VMs. - Export and version-control your
/etc/pvefolder periodically. - Keep templates updated (
pveam update) for the latest OS images.
End of Guide β Proxmox Single Node Administration