Foundation
Platform foundation
Build the common machinery first.
- GitLab-managed Terraform state
- LXC/VM provisioning conventions
- Dynamic Ansible inventory
- Secrets bootstrap
Open source lab infrastructure for developers
A growing, AI-generated collection of reusable infrastructure modules for lab environments on Proxmox.
Build, experiment, review, break and rebuild in infrastructure designed to keep experimentation away from public production systems.
Why this exists
Projects repeatedly need databases, identity providers, key vaults, object storage, observability, CI, messaging, backups, etc. The Pudding turns those recurring needs into reusable infrastructure building blocks.
The goal is not to deploy every service everywhere. It is to provide a standard way to provision a lab with the services a project needs.
Quick start
git clone https://github.com/YOUR-ORG/devinfra.git
cd devinfra
# create your venv
python3 -m venv ~/venv/devinfra \
~/venv/devinfra/bin/pip install --upgrade pip \
~/venv/devinfra/bin/pip install pytest hypothesis pyyaml
# author the env file
~/venv/devinfra/bin/python scripts/installer/cluster_env_wizard.py \
--env-file cluster.dev.env
# platform prerequisites (identity, template, SDN fabric, host gateway).
~/venv/devinfra/bin/ansible-playbook \
-i ansible/inventory/localhost.yml \
ansible/playbooks/platform-bootstrap.yml \
-e cluster_env_file=cluster.dev.env \
-e bootstrap_scope=all \
-e bootstrap_pve_identity=true
# bootstrap the secrets manager (module SVC-07)
~/venv/devinfra/bin/ansible-playbook \
-i ansible/inventory/localhost.yml \
ansible/playbooks/svc-07-bootstrap.yml \
-e cluster_env_file=cluster.dev.env
How it works
Proxmox VM/LXC instances are the infrastructure boundary, Terraform provisions them, Ansible configures them and Docker Compose runs them.
Project roadmap
The roadmap describes the road to the destination, not a claim that every module ships on day one. The platform grows in four deliberate stages.
Foundation
Build the common machinery first.
Tier 1
Build after the foundation.
Data, storage, identity, secrets, networking, CI/CD, observability, MQTT, AI/ML, OTA and backup.
See Tier 1 services →Tier 2
Demand-driven expansion.
A Tier 2 module becomes a candidate when at least two projects need the same capability.
See Tier 2 services →Tier 3
Specialized and on demand.
Advanced or domain-specific infrastructure stays out of the core until somebody actually needs it.
See Tier 3 services →Roadmap ≠ status. A tier describes the rollout priority. The repository remains the source of truth for what is available, in progress or planned.
Service catalog
Browse the planned building blocks. Tier indicates rollout priority, not whether a module is already implemented.
Built with generative AI
The Pudding is intentionally AI-assisted from the start: modules, docs, templates and conventions are drafted with generative tooling and then checked against real constraints.
That keeps the project moving without pretending that generated output is automatically safe. The real value is in repeatable review, testing and isolation.
Draft the module, docs and requirements.
Challenge the design before it reaches a project.
Run it in isolated, disposable developer infrastructure.
Experiment aggressively. Contain the blast radius.
AI-generated infrastructure can be wrong, insecure or incomplete. A compromised module could still reach network peers, credentials or the hypervisor if boundaries are weak.
The Pudding therefore treats isolation, review, disposable environments and minimal credentials as engineering guardrails—not as a claim that generated code is automatically safe.
What this project is not
Project principles
Self-hosted components are the default. The project should remain inspectable and reusable.
Credible European-governed or headquartered options are preferred. Exceptions are documented rather than disguised.
Platform services can be shared; project-specific stacks can be fully isolated and destroyed with the project.
No click-ops as a deployment strategy. Plans, changes and repeatable rebuilds belong in source control and pipelines.