No description
- Jinja 77.1%
- HCL 16.5%
- Python 2.5%
- HTML 2%
- Shell 1.8%
|
|
||
|---|---|---|
| .claude/skills | ||
| .forgejo/workflows | ||
| .opencode/skill/adding-a-podman-service | ||
| ansible | ||
| docs | ||
| tofu | ||
| utils | ||
| .ansible-lint | ||
| .gitignore | ||
| .secrets.baseline | ||
| .sops.yaml | ||
| AGENTS.md | ||
| ansible.cfg | ||
| CLAUDE.md | ||
| lab | ||
| LICENSE | ||
| mise.toml | ||
| opencode.jsonc | ||
| prek.toml | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
homelab
Ansible + OpenTofu infrastructure-as-code for a self-hosted homelab fleet and a small VPS. Rootless Podman (Quadlet), Traefik, restic backups to Scaleway S3, Prometheus monitoring, Matrix alerts.
fleet
| host | role | env | os |
|---|---|---|---|
| tabris | Proxmox VE | homelab | Debian 13 |
| magi | services VM | homelab | Debian 13 |
| israfel | services VM | homelab | Debian 13 |
| lilith | SMB LXC (CT 200) | homelab | Debian 13 |
| sahaquiel | monitoring | homelab | Debian 13 |
| panopticon | router (OpenWrt) | router | OpenWrt |
| apeiron | VPS (Hetzner) | vps | Debian 13 |
quickstart
Requires mise — all tools (uv, OpenTofu, Python, pre-commit) are pinned in mise.toml.
./lab setup # create .venv/ and install ansible + collections
./lab install-hooks # pre-commit lint
./lab ansible-playbook ansible/playbooks/homelab.yaml # apply homelab playbook
./lab ansible-playbook ansible/playbooks/vps.yaml # apply VPS playbook
./lab ansible-playbook ansible/playbooks/router.yaml # apply router playbook
./lab tofu apply # apply OpenTofu
Place the vault passphrase in ansible/.vault-password (gitignored).
docs
| doc | what it covers |
|---|---|
| AGENTS.md | dev handbook: conventions, idioms, layout, vault, CI |
| docs/podman.md | Quadlet architecture, UID allocation, gotchas |
| docs/backup.md | restic backup system, restore procedures |
| docs/monitoring.md | Prometheus/Grafana/Alertmanager stack |
| docs/networking.md | topology, VLANs, IP space, DNS, WireGuard |
| docs/openwrt.md | router Ansible role reference |
| docs/tofu.md | OpenTofu workspace, providers, apply order |