Infrastructure as Code for my personal homelab.
The goal of this project is to build a reproducible, version-controlled and well documented homelab using Ansible as the primary automation tool.
- Infrastructure as Code with Ansible
- Idempotent deployments
- Secrets managed with Bitwarden CLI
- Git-based configuration management
- High Availability with Keepalived
- Docker and bare-metal deployments
- Proxmox VE & Proxmox Backup Server support
- Zabbix monitoring
| Host | Hardware | Role |
|---|---|---|
| Proxmox VE | Mac mini 2018 • Intel Core i5-8500B • 16 GB RAM | Virtualization Host |
| OpenMediaVault | Raspberry Pi 5 • 8 GB RAM | NAS & Docker Host |
| Proxmox Backup Server | HP 255 G5 • AMD A6-7310 • 8 GB RAM | Backup Server |
| Service | Platform | Management | Purpose |
|---|---|---|---|
| Proxmox VE | Bare Metal | Ansible | Hypervisor |
| Proxmox Backup Server | Bare Metal | Ansible | Backup Server |
| Technitium DNS | Debian LXC | Ansible | Primary DNS Server (includes Keepalived for HA) |
| NPMplus | Alpine LXC + Docker | Ansible | Reverse Proxy |
| Frigate | Debian LXC + Docker | Ansible | Network Video Recorder |
| Paperless-ngx | Debian LXC | Ansible | Document Management |
| Mosquitto | Debian LXC | Ansible | MQTT Broker |
| Zigbee2MQTT | Debian LXC | Ansible | Zigbee Gateway |
| ntfy | Debian LXC | Ansible | Push Notifications |
| Zabbix | Debian LXC | Ansible | Monitoring |
| Home Assistant | Home Assistant OS | Appliance | Home Automation |
| OpenMediaVault | Raspberry Pi 5 | Appliance | NAS & Docker Host |
| Chrony | OMV + Docker Compose | Docker Compose | Local NTP Server |
| Fritz!Box Zabbix Monitoring | OMV + Docker Compose | Docker Compose | FRITZ!Box Monitoring |
| Jotty | OMV + Docker Compose | Docker Compose | Notes Application |
| Linkwarden | OMV + Docker Compose | Docker Compose | Bookmark Manager |
| Radicale | OMV + Docker Compose | Docker Compose | CalDAV/CardDAV Server |
| Technitium DNS (Fallback) | OMV + Docker Compose | Docker Compose | Secondary DNS Server (includes Keepalived for HA) |
This repository serves as the single source of truth for my homelab infrastructure.
It contains the Ansible roles, inventories, variables and configuration required to deploy and maintain the managed systems.
Not every component is managed by Ansible. Some systems intentionally remain outside of Ansible because they are distributed as dedicated appliances or use their own management interface.
- Host configuration
- System updates
- Service configuration
- Docker-based applications
- Monitoring
- High Availability
- Infrastructure provisioning
- Home Assistant OS
- OpenMediaVault
- Docker Compose stacks running on OpenMediaVault
- Dell PowerEdge T440 migration
- OPNsense firewall
- Immich
- GitHub Actions
- Extended documentation
Clone the repository:
git clone https://github.com/HostisHumani/HomeLab.git
cd HomeLabCreate your global configuration:
cp group_vars/all.yml.example group_vars/all.ymlAdjust the inventory and Bitwarden items to match your environment.
Run the deployment:
ansible-playbook site.ymlMIT