Home Server Infrastructure Overview
Overview of the personal distributed server cluster (Athena, Hades, Daedalus)
Overview
My Home Lab is a personal, on-prem infrastructure running on three nodes: Athena, Hades, and Daedalus. I built it to host service deployments, AI / Local LLM experiments, NAS workflows, and FPGA / PCIe hardware tests.
It started with every role on a single Hades box, but as the compute I needed grew, I rebuilt it into the current layout that physically separates compute / storage / hardware testing. Each node uses its own IP range, and inter-node access is connected only through WireGuard VPN.

Node Architecture
| Node | Role | IP range | OS | Details |
|---|---|---|---|---|
| Athena | Compute / AI / VM Host | 192.168.200.X | XCP-ng (Xen) | View details |
| Hades | Storage / NAS / Core Service | 192.168.100.X | VMware ESXi | View details |
| Daedalus | Hardware Test / FPGA / PCIe | — | Ubuntu (bare metal) | View details |
| RaspberryPi (retired) | Early NAS experiment | — | Raspberry Pi OS | View details |
Each node’s hosted workloads, decisions, and operational incidents are covered on the node pages above.
Why Separate Roles
My earlier web projects were tested almost entirely on localhost, so I never got to experience the networking, auth, DB, and deployment problems that show up once a real external user connects. A commercial cloud could cover some of that, but the monthly cost was a burden — and since I work across a Windows desktop and a MacBook, I needed a central file store anyway. On top of that, hardware experiments like FPGA and PCIe are effectively impossible in a cloud environment.
Initially I put NAS, services, VPN, and the experiment environment all on a single Hades box, but the MicroServer’s limited memory expansion meant it hit a wall quickly. So I split compute out to Athena, refocused Hades on Storage/Core, and added Daedalus as a separate node for hardware experiments — the current structure.
Network & Security
IP range per node
- Hades:
192.168.100.X - Athena:
192.168.200.X
VPN topology
- One VM on each of Hades / Athena runs WireGuard as the VPN endpoint
- Daedalus runs a WireGuard client on Ubuntu to reach both nodes’ internal networks
-
AllowedIPsroutes only management traffic through the VPN, keeping ordinary internet traffic separate
Public ports (minimized)
- Hades: NAS service + WireGuard ports only
- Athena: WireGuard port only
- Daedalus: no direct exposure (VPN-only access)
Security policy
- SSH is never exposed directly to the public internet — administration happens only over the internal network after connecting via VPN
- Root account login is disabled
- Fail2ban is applied to public NAS services (5 password failures within 24 h → 24 h ban)
- The real incident behind these policies is covered in Hades · Operations & Incidents.
Operational Snapshot
| Item | Current status |
|---|---|
| Active nodes | 3 (Hades / Athena / Daedalus) |
| NAS main / backup capacity | 4 TB Main · 6 TB Backup |
| Backup method / frequency | rsync Main → Backup, once daily |
| Public port count | Hades 2 / Athena 1 / Daedalus 0 |
| Inter-node communication | WireGuard VPN only |
The disks consist of a 4 TB Main Storage used for primary NAS data and a 6 TB Backup Storage for the rsync backup.
Node-level metrics — uptime, number of hosted VMs/containers, latest backup result — are in the “At a Glance” section of each node page.
Technology Choices
| Technology | Reason (summary) |
|---|---|
| VMware ESXi | Hades (HPE MicroServer, 4-core) has an official HPE image and runs on the free license → Hades · Key Decisions |
| XCP-ng / Xen | Athena (20-core) exceeds the free ESXi license range. After evaluating Proxmox, I chose XCP-ng for its ESXi-like operating model → Athena · Key Decisions |
| OpenMediaVault + ext4 | Built the NAS quickly while reusing existing ext4 disks. The trade-offs vs. ZFS are on the Hades page → Hades · Key Decisions |
| Docker on VM | VMs isolate per project, Docker separates runtime dependencies. The deployment pipeline is on the Athena page → Athena · What Runs Here |
| WireGuard VPN | Simpler to configure than OpenVPN, and AllowedIPs makes selective routing easy — a good fit for isolating the management network |
| Ubuntu (Daedalus) | Most stable compatibility with FPGA vendor tools (Vivado, etc.) and board drivers → Daedalus · Key Decisions |
Future Plans
The current infrastructure mixes manual setup with partial automation. I keep only the high-priority improvements here and leave the rest in each node page’s “Limitations & Next Steps”.
- Monitoring/alerting — visualize node/service state and backup results with Prometheus + Grafana
- Recovery-test automation — periodically verify that a backup is a restorable backup
- IaC for server setup — fix the node-rebuild procedure as code with Ansible
- Stronger network separation — separate NAS / management / experiment traffic more clearly with VLAN / firewall policy
Per-node improvement items (GPU resource scheduling, ZFS review, FPGA environment upgrades, etc.) are covered on the individual node pages.
Korean version: 홈 서버 인프라 개요