infrastructure
Ansible code used for deploying my home infrastructure
Layout
Almost everything exists on a single host running Proxmox. Proxmox runs the following VMs/containers:
- jellyfin - Debian LXC running Jellyfin media server
- plex - Ubuntu Server LXC running Plex media server
- pve-docker - Alpine LXC running all docker containers
- haos - Home Assistant OS VM
Having Plex and Jellyfin separate from the rest of my docker infrastructure allows me to easily reboot the docker host and modify other stuff without interrupting any active streams from the media servers.
Host specs:
CPU: Intel i5-10500 (chosen for the Quicksync iGPU which is highly efficient at media transcoding)
RAM: 2x 32GB DDR4
Storage:
/: 1 TB NVME SSD/vm_storage: 2x 240 GB SSD in ZFS mirror for config and data files/mnt/storage: mergerfs + SnapRAID pool totaling 150 TiB usable storage with single disk parity (YOLO). Drives run btrfs allowing me to utilize snapraid-btrfs for instant snapshotting
Roadmap
- Flesh out backup strategy with btrfs snapshots and restic (separately)
- Potentially migrate media pool to ZFS. I've been lucky so far with no drive failures but realistically if I did have one fail, it would take ages to rebuild with single disk parity and I'd be wishing I had a more robust setup.
- Move everything to Arch LXCs on Proxmox
- Possibly set up second Proxmox node for backups
- Immich for photo management
- Look into Wazuh for threat prevention/detection
- GoAccess for web server analytics
Description
Languages
Python
87.6%
JavaScript
11%
Shell
1.4%