Homelab provisioning using opentofu + ansible playbooks. Services are (to be) run on Podman Quadlets.
Find a file
2025-10-14 00:26:06 +02:00
files chore: add miscellaneous config files 2025-10-03 23:07:55 +02:00
roles chore: added jellyfin specific nginx conf to role 2025-10-14 00:20:35 +02:00
.gitignore chore: add variables.tf to .gitignore 2025-10-03 23:37:28 +02:00
.terraform.lock.hcl feat: added .terraform.lock.hcl 2025-10-03 23:06:45 +02:00
deploy.yaml cleanup: fixed role execution order and directory chmod permissions 2025-10-14 00:21:16 +02:00
inventory.yaml fix: set current static IP of VM, ensure jellyfin role restarts nginx container 2025-10-14 00:17:36 +02:00
LICENSE Initial commit 2025-10-03 19:29:46 +02:00
main.tofu feat: add opentofu config with API endpoint and token redacted 2025-10-03 23:43:00 +02:00
provision.yaml cleanup: fixed role execution order and directory chmod permissions 2025-10-14 00:21:16 +02:00
README.md doc: minor expansion to README 2025-10-14 00:26:06 +02:00

proxmox-vms

Homelab provisioning using opentofu + ansible playbooks. Services are run on Podman Quadlets on Fedora Cloud VMs.

Usage

tofu apply

Wait until initial cloud-init provisioning is done and the VM reboots once. Then you can run the ansible playbook:

ansible-playbook -i inventory.yaml provision.yaml 

Copy over /secrets and /srv directories.

Run the ansible playbook:

ansible-playbook -i inventory.yaml deploy.yaml

dnf and podman are automatically updated, the dnf update also triggers a runsc update. SSH keys are provisioned by cloud-init, alongside disabling copy on write for BTRFS since the Proxmox Host uses ZFS, and there is no easy way to swap out Fedora cloud's default filesystem.