Documentation Index
Fetch the complete documentation index at: https://docs.jacobpevans.com/llms.txt
Use this file to discover all available pages before exploring further.
Provision VMs and LXCs from a single terragrunt apply. The first thing that runs.
terraform-proxmox defines every VM and LXC in the homelab as Terraform resources. Terragrunt provides DRY config across environments. The Proxmox provider talks to the cluster API; nothing here touches a host directly.
What it does
- Defines compute, network, and storage for every homelab guest
- Wraps the
bpg/proxmoxprovider - Uses Terragrunt to share variables across
prod,staging, and one-off environments - Outputs a list of provisioned hosts that Ansible inventories consume directly
How it fits
| Upstream | Downstream | |
|---|---|---|
| Trigger | terragrunt apply from the operator | Outputs an Ansible-ready inventory |
| Talks to | Proxmox cluster API (read/write) | ansible-proxmox, ansible-proxmox-apps |
Getting started
Clone and enter the dev shell
git clone https://github.com/JacobPEvans/terraform-proxmox && cd terraform-proxmox && nix developProvide Proxmox API credentials
Doppler resolves
PROXMOX_VE_USERNAME, PROXMOX_VE_PASSWORD, and PROXMOX_VE_ENDPOINT at run time. The README.md covers the exact var names.Apply
terragrunt run-all apply from the env folder. Review the plan; nothing destructive runs without confirmation.Related repos
ansible-proxmox
Configures the host once Terraform has provisioned it.
ansible-proxmox-apps
Deploys HAProxy, Cribl Edge, Cribl Stream on top.
tf-splunk-aws
The AWS-side equivalent for Splunk’s DR footprint.
Source on GitHub
Modules, examples, full README.