The terraform module does not expect its file contents (project_path) in the 'files/' folder like the core roles, instead looking for it relative to the _invocation_ pwd. So, for now it just resides in the root level of the repository and may be moved from there to wherever it is more pertinent. Additionally, we check for the existence of the OpenTofu binary (tofu), and prefer that if it exists. Otherwise we fall back to the Terraform binary. |
||
|---|---|---|
| group_vars/instance_system | ||
| roles | ||
| tofu | ||
| .gitignore | ||
| ansible.cfg | ||
| inventory | ||
| justfile | ||
| README.md | ||
| requirements.yaml | ||
| site.yaml | ||
Homelab NAS stacks
All the homelab server roles running here. Intended as an (ultimately) idempotent setup, perhaps with ansible preparing the host and the roles.
For now, a simple storage of my docker stacks, transferred from an older NAS system.
Arr stack
Hosts all the pertinent *arr applications, as well as indexer collection application prowlarr, download services, and media management applications jellyfin and audiobookshelf.
Media can be requested through Jellyseerr.
Served through homarr personal dashboard.
Paperless stack
Hosts all my personal documents. This is an important stack which should be backed up accordingly.
Grocy stack
Was an experimental stack which I may have used in my home for shopping lists, ingredient tracking, and more.
After some consideration and experimentation, for the moment, I have decided against using grocy: it provides comprehensive tracking but also requires comprehensive use to get the most out of it.
I get the feeling a badly implemented/maintained grocy setup is worse than a simpler task-list and e.g. Recipe KanBan board approach.
Thoughts on organization
. ansible roles system infrastructure -> calls tofu role arr paperless ...
tofu incus_machines incus_networks? incus_storage?
Production IaC
- ansible: host_roles: system filesystem
- terraform: infrastructure (tofu)
- ansible: instance_roles: caddy arr paperless
Testing
- terraform? ansible?
- create 'host' VM
- ensure connection to host vm as part of host group
- ansible: host_roles: ...
- tf: infra...
- ansible: instance_roles:...