How mradigen/selfhosted works
This repository is homelab infrastructure-as-code, not an application: an operator provisions virtual machines, configures hosts, then runs containerized services. The documented workflow uses Packer templates with Terraform on Proxmox; Ansible configures hosts and retrieves Vault secrets into Docker environment files. Docker Compose runs the service definitions. K3s is documented as a planned migration. Service relationships are limited to what the README and file tree support; source excerpts were unavailable.
Main entry points: docker Docker Compose · ansible Ansible automation · terraform Terraform · debian.pkr.hcl Packer image
Components 22
VM provisioning
- Packer image
packer/debian.pkr.hcl - VM templates
packer - Terraform
terraform
Host configuration
- Ansible automation
ansible - K3s setup
ansible/setup/tasks/k3s.yml - Docker env files
ansible/playbooks/tasks/docker-env-vars.yml
Container services
- Docker Compose
docker - Home Assistant
terraform/HomeAssistant.tf - Borgmatic
docker/borgmatic/docker-compose.yml - Headscale
docker/headscale/docker-compose.yml - Immich
docker/immich/docker-compose.yml - Vaultwarden
docker/vaultwarden/docker-compose.yml - Traefik
docker/traefik/docker-compose.yml - n8n
docker/n8n/docker-compose.yml - Flatnotes + Syncthing
docker/flatnotes+syncthing/docker-compose.yml - Paperless-ngx
docker/paperless-ng/docker-compose.yml - Baïkal
docker/baikal/docker-compose.yml - Balti
docker/balti/docker-compose.yml - Balti MinIO
docker/balti-minio/docker-compose.yml
External infrastructure
- Proxmox
- Vault secrets
external/adolf/vault/docker-compose.yml
Other components
- Operator
Connections 22
- Operator → Packer image: builds images
- Packer image → VM templates: creates
- Operator → Terraform: provisions VMs
- Terraform → VM templates: uses images
- Terraform → Proxmox: provisions on
- Operator → Ansible automation: runs playbooks
- Ansible automation → K3s setup: configures
- Ansible automation → Vault secrets: fetches secrets
- Ansible automation → Docker env files: writes values
- Operator → Docker Compose: runs services
- Docker Compose → Home Assistant: starts
- Docker Compose → Borgmatic: starts
- Docker Compose → Headscale: starts
- Docker Compose → Immich: starts
- Docker Compose → Vaultwarden: starts
- Docker Compose → Traefik: starts
- Docker Compose → n8n: starts
- Docker Compose → Flatnotes + Syncthing: starts
- Docker Compose → Paperless-ngx: starts
- Docker Compose → Baïkal: starts
- Docker Compose → Balti: starts
- Docker Compose → Balti MinIO: starts