Skip to notes

Public Homelab Notes / 01

Hardware

The machines I use now, their jobs, and the next storage and compute build.

4 notes · Current setups, past observations, and future plans stay as recorded.

Hardware / Note 01

HP ProDesk 600 G4

In this note

Current primary Proxmox virtualization host for the homelab.

Homelab Overview | Proxmox Host | VM100 - Jellyfin | VM101 - OpenLabFrame Dev | VM102 - Management


Status

State: In use
Role: Primary Proxmox host
Hostname: private / internal
Network: Private LAN
Local URL: <private Proxmox URL>


Hardware

ComponentSpecification
ModelHP ProDesk 600 G4 SFF
CPUIntel Core i7-8700
Cores / Threads6 cores / 12 threads
Memory32 GB RAM
StorageSamsung 970 EVO Plus 1 TB NVMe
Form FactorSmall Form Factor
HypervisorProxmox VE

Current Role

The HP ProDesk currently acts as the main virtualization host for the homelab.

It runs the primary Proxmox node and hosts the current VM infrastructure.

Virtual Machines

VM100 - Jellyfin

Primary media-services VM.

Runs:

  • Jellyfin
  • Gluetun
  • ARR Stack
  • Supporting Docker services

VM100 uses the Intel UHD 630 integrated GPU for Jellyfin hardware acceleration / Quick Sync.


VM101 - OpenLabFrame Dev

On-demand development VM for Open Lab Frame.

VM101 is intentionally powered off when website development is not taking place.

It is not considered an always-on production service.


VM102 - Management

Always-on management VM.

Runs:

LAN IP:

<private management host>

Nginx Proxy Manager provides friendly internal service hostnames such as:

  • <private proxy-admin hostname>
  • <private container-admin hostname>
  • <private monitoring hostname>
  • <private Beszel hostname>

Monitoring

Beszel

The Proxmox host runs the native Beszel binary agent.

Beszel provides quick visibility into:

  • CPU usage
  • Memory usage
  • Disk usage
  • Network traffic
  • Load average
  • Temperature
  • Host uptime
  • systemd service state

Normal idle temperature observed:

~35–37 °C

Beszel has reported:

72 services, 0 failed


Uptime Kuma

Uptime Kuma monitors the Proxmox host independently.

Monitor:

HP ProDesk - Proxmox

Target:

<private Proxmox host>

Current aggressive host-monitor configuration:

  • Heartbeat interval: 30 seconds
  • Retries: 1
  • Retry interval: 15 seconds
  • Global timeout: 10 seconds

Alerts are delivered through:

  • Discord
  • ntfy
  • iPhone notifications

Recovery Testing

A controlled Proxmox reboot was performed to test automatic recovery.

Command used:

sudo reboot

Back to Hardware

Hardware / Note 02

Raspberry Pi 3

In this note

Dedicated DNS and Tailscale networking node for selected homelab devices.

Homelab Overview | Pi-hole | Tailscale | Raspberry Pi 5 | Network Topology


Status

State: In use
Role: Pi-hole DNS + Tailscale DNS/subnet-routing node
Model: Raspberry Pi 3 Model B Rev 1.2
Operation: Always on
Hostname: private / internal
Administrative account: omitted from public copy
Network: Private LAN
SSH Alias: ssh <pi3-alias>


Hardware

ComponentSpecification
ModelRaspberry Pi 3 Model B Rev 1.2
ArchitectureARM
Primary RoleDNS / private-network infrastructure
NetworkEthernet
Operating Pattern24/7 lightweight infrastructure

The Pi 3 is intentionally kept focused on lightweight networking responsibilities rather than application hosting.


SSH Access

SSH is configured for public-key authentication.

Password-based SSH access is disabled.

Normal Windows Login

From Windows PowerShell:

ssh <pi3-alias>

The Windows SSH alias should resolve to:

Host: <private Pi 3 host>
Administrative account: <omitted>
Key: <SSH_KEY_FILE>

Windows SSH config:

Host <pi3-alias>
    HostName <private Pi 3 host>
    User <admin-user>
    IdentityFile <SSH_KEY_FILE>
    IdentitiesOnly yes

Direct login without the alias:

ssh -i <SSH_KEY_FILE> <admin-user>@<private Pi 3 host>

Authorized Key Location

On the Pi 3:

<AUTHORIZED_KEYS_FILE>

The existing Windows public key is already authorized on the Pi 3.

Important SSH Notes

The correct Linux account is:

<private-hostname>

not:

<incorrect-account>

Using the wrong account results in:

Permission denied (publickey)

even when the SSH key itself is valid.

Host-Key Recovery

If the Pi is rebuilt or its SSH host keys legitimately change, Windows may display:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

After verifying that the device really is the Pi 3, remove the stale Windows host-key entry with:

ssh-keygen -R <private Pi 3 host>

Then reconnect:

ssh <pi3-alias>

Accept the new fingerprint only when the change is expected.


Current Role

The Raspberry Pi 3 provides two main services:

Its job is primarily to provide DNS and private-network routing for selected personal devices.

It is not intended to control DNS for the entire household network.


Pi-hole

Pi-hole runs on the Pi 3.

Primary responsibilities:

  • DNS filtering
  • Local DNS records
  • Homelab hostname resolution
  • DNS service for selected devices
  • Integration with the Tailscale network

The general design is:

Selected Device
      ↓
Pi 3 / Pi-hole
      ↓
DNS filtering
      ↓
Local DNS override if applicable
      ↓
Upstream DNS

Upstream DNS has used Cloudflare resolvers such as:

<public DNS resolver>
<public DNS resolver>

Private DNS Design

The Pi-hole instance is intentionally opt-in.

Normal household devices should continue using the normal household router / DNS behavior unless explicitly configured otherwise.

Design goal:

Friends / Family
      ↓
Normal household Wi-Fi
      ↓
Normal router / DNS
      ↓
Internet

while selected personal devices can use:

Personal Device
      ↓
Pi 3 / Pi-hole DNS
      ↓
Homelab-aware DNS
      ↓
Internal services

This prevents homelab experiments from affecting the rest of the household.


Local DNS Records

Pi-hole provides internal DNS records for homelab services.

Current examples include:

<private development hostname>
    → <private management host>

<private monitoring hostname>
    → <private management host>

<private proxy-admin hostname>
    → <private management host>

<private container-admin hostname>
    → <private management host>
<private Beszel hostname>
    → <private management host>

jellyfin.openlabframe.com
    → <private Jellyfin host>

<private Proxmox hostname>
    → <private Proxmox host>

Most .<private internal domain> services resolve to:

<private management host>

which is VM102 - Management running Nginx Proxy Manager.

NPM then forwards each request to the appropriate backend service.


Internal Service Paths

Beszel

Client
   ↓
Pi 3 / Pi-hole DNS
   ↓
<private Beszel hostname>
   ↓
<private management host>
   ↓
VM102 / Nginx Proxy Manager
   ↓
<private Pi 5 host>:<SERVICE_PORT>
   ↓
Beszel on Pi 5

Tailscale

Tailscale is configured on the Pi 3.

Its networking responsibilities include:

  • Providing DNS access through Pi-hole
  • Supporting selected Tailscale devices
  • Providing subnet-routing functionality
  • Making private homelab services reachable remotely

The Pi 3 is part of the private remote-access design rather than exposing internal services directly to the public Internet.


Remote DNS Behavior

When a personal device such as the iPhone is connected through Tailscale and using the Pi 3 DNS configuration, internal hostnames can continue working while away from home.

Example:

iPhone on 5G
      ↓
Tailscale
      ↓
Pi 3 DNS
      ↓
      ↓
<private management host>
      ↓
NPM
      ↓

This allows the same friendly internal URLs to work both:

  • At home on Wi-Fi
  • Away from home through Tailscale

without publicly exposing the backend service.


Jellyfin DNS Behavior

The Pi 3 DNS setup allows the user's own Jellyfin traffic to take the direct/private route when appropriate.

At Home

iPhone on home Wi-Fi
      ↓
Pi 3 DNS
      ↓
<private Jellyfin host>
      ↓
VM100 / Jellyfin

Jellyfin activity confirmed a local iPhone address such as:

<private local client>

This demonstrated that the session was using the local LAN path rather than hairpinning through the public VPS.

Away From Home

With Tailscale enabled, the iPhone can use its private Tailscale path instead.

Observed example:

<private remote Tailscale client>

The network path and Jellyfin playback mode are separate concepts:

Direct network path
≠
Jellyfin Direct Play

A session can use the direct/private network route while Jellyfin still decides to transcode the media.


Relationship With Raspberry Pi 5

The two Raspberry Pis have different infrastructure roles.

Raspberry Pi 3

Pi-hole
DNS
Local DNS records
Tailscale DNS
Subnet routing

Raspberry Pi 5

Docker
Open Lab Frame
Uptime Kuma
Beszel
Grafana
Prometheus
Cloudflare Tunnel
Tailscale exit-node role

This separation keeps the Pi 3 focused on lightweight networking while the Pi 5 handles application workloads.


Monitoring

The Pi 3 is intentionally not currently added to Beszel.

This is deliberate to keep the Beszel dashboard focused on the systems where resource monitoring is most useful.

Current Beszel systems include:

Pi-hole/service availability can still be monitored independently through Uptime Kuma.


Security / Design Rules

The Pi 3 should remain part of the private homelab infrastructure.

Important rules:

  • SSH uses public-key authentication.
  • Do not re-enable password SSH unless required for recovery.
  • Do not make Pi-hole mandatory DNS for the entire household.
  • Do not expose Pi-hole administration publicly.
  • Use Tailscale for private remote access.
  • Keep administration restricted to authorized devices/users.
  • Local DNS records should point to internal infrastructure rather than unnecessarily exposing services publicly.
  • Private SSH keys should never be stored in this Obsidian vault.

Troubleshooting Notes

Pi-hole Upstream DNS Errors

Pi-hole has previously shown upstream DNS connection errors involving:

<public DNS resolver>#53
<public DNS resolver>#53

with messages similar to:

TCP connection failed while receiving payload length from upstream
Resource temporarily unavailable

These upstream errors are separate from local DNS records such as:

<private Beszel hostname>

and should be investigated independently if they become recurring.

SSH Authentication Troubleshooting

If SSH returns:

Permission denied (publickey)

verify:

Administrative account: <omitted>
Network: Private LAN

and that Windows is using:

<SSH_KEY_FILE>

Known-working direct command:

ssh -i <SSH_KEY_FILE> <admin-user>@<private Pi 3 host>

Future Role

The Pi 3 can continue serving as a lightweight dedicated DNS / private-networking node even as the larger homelab grows.

Its focused role helps isolate DNS and remote-access functionality from heavier Docker and virtualization workloads.


Related Notes

Homelab Overview
Raspberry Pi 5
Pi-hole
Tailscale
Network Topology
Nginx Proxy Manager
VM100 - Jellyfin
VM102 - Management
Beszel

Back to Hardware

Hardware / Note 03

Raspberry Pi 5

In this note

Primary always-on Raspberry Pi node for website hosting, monitoring, private services, and homelab infrastructure.


Status

State: In use
Role: Always-on infrastructure / Docker node
Hostname: private / internal
Administrative account: omitted from public copy
Network: Private LAN
SSH Alias: ssh <pi5-alias>


Hardware

ComponentSpecification
ModelRaspberry Pi 5
Memory16 GB RAM
Primary Storage1 TB NVMe
Operating SystemRaspberry Pi OS / Debian-based Linux
Primary WorkloadDocker services and infrastructure
NetworkGigabit Ethernet

The Pi 5 boots and runs its primary operating system from the 1 TB NVMe.


Current Role

The Raspberry Pi 5 is one of the primary always-on infrastructure nodes in the homelab.

Its responsibilities include:

  • Hosting Open Lab Frame
  • Running Cloudflare Tunnel
  • Running monitoring services
  • Running Beszel Hub
  • Running Uptime Kuma
  • Running Prometheus
  • Running Grafana
  • Running Loki / Alloy
  • Running exporters
  • Acting as a Tailscale node / exit-node component
  • Providing Docker infrastructure for lightweight always-on services

Docker

Primary Docker directory:

<DOCKER_ROOT>

Current major Docker project directories include:

<WEB_STACK_DIRECTORY>
<MONITORING_DIRECTORY>
<UPTIME_KUMA_DIRECTORY>
<BESZEL_DIRECTORY>

Major containers currently include:

  • ehworld
  • cloudflared
  • prometheus
  • grafana
  • node_exporter
  • pihole_exporter
  • uptime-kuma
  • beszel
  • beszel-agent
  • loki
  • alloy
  • portainer_agent

Open Lab Frame

Open Lab Frame is hosted on this Pi.

Public architecture:

Visitor
   ↓
Cloudflare
   ↓
Cloudflare Tunnel
   ↓
Pi 5
   ↓
Nginx / ehworld
   ↓
Open Lab Frame

The production Nginx container is:

ehworld

The website is primarily static HTML, CSS, JavaScript, and image assets.

Resource Usage

Direct measurement of the Nginx processes showed approximately:

~26.72 MiB RAM

A direct local stress test sent 500 rapid HTTP requests to Nginx:

for i in {1..500}; do
  curl -sS -o /dev/null \
    -H 'Host: openlabframe.com' \
    <private service endpoint>/
done

Observed result:

  • All requests returned successfully
  • Nginx logged HTTP 200
  • CPU rose only to roughly 2–3%
  • Memory remained very low
  • Pi 5 retained substantial resource headroom

This confirmed that the Pi 5 is significantly more powerful than required for the current website workload.


Cloudflare Tunnel

Cloudflare Tunnel provides public access to Open Lab Frame without exposing the Pi directly through router port forwarding.

General path:

Internet
   ↓
Cloudflare
   ↓
cloudflared
   ↓
Pi 5
   ↓
Nginx

This also allows Cloudflare caching to absorb a significant portion of repeat static-asset traffic before it reaches the Pi.


Uptime Kuma

Uptime Kuma runs on the Pi 5.

It is used as the primary service-availability monitoring platform.

Responsibilities include:

  • Service uptime checks
  • Host availability
  • Docker-service monitoring
  • Push monitors
  • Discord alerts
  • ntfy alerts
  • iPhone notifications

VM100's Gluetun Push monitor sends directly to the Pi 5 over LAN:

<private service endpoint>/api/push/<TOKEN>

The token itself should never be stored in this Obsidian vault.

Alert Flow

Service problem
   ↓
Uptime Kuma
   ↓
Discord
   +
ntfy
   ↓
iPhone

This alert chain has been tested successfully for both outage and recovery notifications.


Beszel

Beszel Hub is hosted on the Pi 5.

Docker directory:

<BESZEL_DIRECTORY>

Direct backend:

<private service endpoint>

Friendly URL:

<private Beszel URL>

Architecture:

Client
   ↓
Pi-hole DNS
   ↓
VM102 / NPM
   ↓
<private Pi 5 host>:<SERVICE_PORT>
   ↓
Beszel Hub

Beszel is intentionally used as a lightweight resource dashboard rather than building a large monitoring interface.

It provides quick visibility into:

  • Online status
  • CPU usage
  • Memory usage
  • Disk usage
  • Network usage
  • Temperature
  • Load average
  • Uptime
  • Docker container usage

Current systems monitored include:

The Raspberry Pi 3 is intentionally not included.


Pi 5 Beszel Metrics

Typical observed values have been approximately:

CPU:         ~1–4%
Memory:      ~10%
Disk:        ~2%
Temperature: ~57–59 °C

The temperature is normal for the Pi 5 under its current always-on Docker workload.


Grafana / Prometheus

The Pi 5 also currently hosts:

  • Grafana
  • Prometheus
  • Node Exporter
  • Pi-hole Exporter
  • Loki
  • Alloy

These remain available for deeper monitoring and historical data.

However, the preferred everyday monitoring model is now:

Uptime Kuma
→ Is something up or down?
→ Send alerts

Beszel
→ How much CPU / RAM / disk / network is it using?

This keeps routine monitoring simple while retaining Grafana/Prometheus for deeper troubleshooting when needed.


Internal Service URLs

Selected internal services use .<private internal domain> hostnames through Nginx Proxy Manager and Pi-hole DNS.

Examples associated with Pi 5 services:

<private monitoring hostname>
<private Beszel hostname>

DNS generally resolves these private service hostnames to:

<private management host>

which is VM102 - Management running Nginx Proxy Manager.


Tailscale

The Pi 5 participates in the homelab Tailscale network.

It has also been used as the Tailscale exit-node component of the current architecture.

Tailscale provides private remote connectivity without requiring public exposure of internal services.

Raspberry Pi 3 remains responsible for the Pi-hole / Tailscale DNS and subnet-routing side of the design.


Backup Philosophy

The homelab backup strategy is intended to remain local.

Cloud backup is not part of the preferred long-term backup design.

Important Pi 5 application data should eventually have:

  • Local backup copies
  • Configuration backups
  • Restore procedures
  • Copies stored separately from the live service data

Security

Administrative and private services should remain:

  • Authenticated
  • LAN-only where appropriate
  • Tailscale-accessible where remote access is required
  • Not unnecessarily exposed to the public Internet

Secrets that should not be stored in this Obsidian vault include:

  • Passwords
  • API tokens
  • Private SSH keys
  • Cloudflare credentials
  • Tailscale authentication keys

Document where a secret is stored rather than recording the secret itself.


Future Plans

The Pi 5 remains an important lightweight infrastructure node even after the larger NAS / compute machine is built.


Related Notes

Homelab Overview
Raspberry Pi 3
Open Lab Frame
Uptime Kuma
Beszel
Nginx Proxy Manager
Tailscale
VM100 - Jellyfin
VM102 - Management

Back to Hardware

Hardware / Note 04

NAS Compute Build

In this note

Planned high-performance storage and compute server that will eventually become the primary heavy-workload node in the homelab.

Homelab Overview | HP ProDesk 600 G4 | Proxmox Host | NAS Compute Machine | Network Topology


Status

State: Planned / Present-Soon Build
Role: NAS + virtualization + application compute
Operation: Intended for 24/7 use
Platform: AMD AM5
Memory Type: Non-ECC for the current build


Hardware

ComponentPlanned Hardware
CPUAMD Ryzen 9 9950X
Memory64 GB DDR5 CL40, non-ECC
MotherboardASUS Pro WS B850M-ACE SE
CaseJONSBO N6 NAS Case
PSUASUS ROG Loki SFX-L 850W Platinum
GPUIntel Arc B580
CPU Cooling240 mm AIO
Case Fans2× Noctua NF-A12x25 G2 PWM chromax.Black
NVMe #1Samsung 9100 2 TB
NVMe #2Samsung 9100 2 TB
HDD Storage4× Seagate IronWolf Pro 8 TB
HypervisorProxmox VE
Storage PlatformTrueNAS planned for bulk-storage management

Already Owned

Current core hardware already available for the build includes:

  • AMD Ryzen 9 9950X
  • 64 GB DDR5 CL40 memory

An existing:

Samsung 970 EVO Plus 1 TB

was previously considered for the system but is intended to be replaced by the two Samsung 9100 2 TB NVMe drives for the main storage layout.


Storage Architecture

NVMe Tier

Two separate Samsung 9100 2 TB NVMe drives are planned.

They are not intended to be mirrored together.

NVMe #1

Primary roles:

  • Proxmox operating system
  • Critical services
  • Important VM/application storage
  • Fast infrastructure workloads

NVMe #2

Primary roles:

  • Fast application data
  • Databases
  • Metadata
  • Cache
  • Active game-server world files
  • Transcoding workspace
  • Frequently accessed working files

Conceptually:

Samsung 9100 2 TB #1
├── Proxmox
├── Critical services
└── Important application storage

Samsung 9100 2 TB #2
├── Databases
├── Metadata
├── Cache
├── Transcode workspace
├── Active game worlds
└── Fast working data

HDD Storage

Bulk storage is currently planned as:

4 × Seagate IronWolf Pro 8 TB

Drive characteristics:

  • NAS-class HDD
  • CMR
  • 7200 RPM
  • Intended for 24/7 storage workloads

HDD Pool Layout

The four drives will be organized as two mirrored pairs.

Conceptually:

Mirror vdev #1
├── 8 TB HDD
└── 8 TB HDD

Mirror vdev #2
├── 8 TB HDD
└── 8 TB HDD

The two mirror vdevs can then form the main storage pool.

Approximate capacity:

Raw installed capacity:
4 × 8 TB = 32 TB

Approximate usable mirrored capacity:
~16 TB

Actual displayed usable space will be lower after:

  • TB vs TiB conversion
  • Filesystem overhead
  • ZFS metadata
  • Reserved/free-space considerations

Why Mirrors

The mirror-based layout was chosen for a balance of:

  • Redundancy
  • Good read performance
  • Straightforward drive replacement
  • Reasonable resiliency
  • Better random-I/O behavior than a single large parity layout

A single drive can fail within each mirror without immediately losing that mirror's data.

This does not replace backups.


Planned Data Placement

HDD Pool

Bulk/persistent data belongs primarily on the HDD storage pool.

Examples:

  • Immich photo originals
  • Jellyfin / Plex media libraries
  • Completed video recordings
  • Persistent game-server data
  • Archives
  • Local backups
  • Large media files

NVMe Fast Tier

Performance-sensitive data belongs on NVMe.

Examples:

  • Application databases
  • Metadata
  • Thumbnails
  • Transcode/cache data
  • Active game worlds
  • Frequently modified application data

Immich

The system is planned to eventually host Immich as a personal photo-management platform.

Primary goal:

Replace dependence on iCloud Photos with personally controlled storage.

Planned layout:

Immich originals
      ↓
HDD pool

Database
Thumbnails
Cache
      ↓
NVMe fast tier

At least approximately:

1 TB+

should be available for the initial photo library with room to grow.


Media Services

The NAS / compute system will eventually become the primary home for heavier media workloads.

Bulk media belongs on the HDD pool:

Movies
TV
Anime
Recordings
Other media
      ↓
HDD pool

Performance-sensitive application data remains on NVMe.

The Intel Arc B580 will provide a dedicated GPU resource for workloads that can benefit from hardware video acceleration and other supported compute tasks.


Intel Arc B580

The current GPU plan is:

Intel Arc B580

This replaces the earlier planned:

NVIDIA GeForce RTX 3060 Ti

The 3060 Ti should therefore be treated as an obsolete build-plan item for this machine.

Potential B580 roles include:

  • Hardware-accelerated media processing
  • Transcoding
  • GPU-assisted workloads
  • Future experimentation

Exact passthrough/container assignment can be decided when the system is built.


Virtualization Role

The system is intended to run:

Proxmox VE

and eventually take over many of the heavier workloads currently hosted by:

HP ProDesk 600 G4

Planned architecture:

NAS / Compute Hardware
        ↓
Proxmox
        ↓
VMs / Containers
        ↓
Storage + Compute Services

TrueNAS is planned as part of the storage architecture rather than treating the entire physical system as a simple standalone NAS.


Migration From HP ProDesk

The current HP ProDesk 600 G4 remains the primary Proxmox machine until this system is:

  1. Fully assembled
  2. Stable
  3. Storage-tested
  4. Proxmox-tested
  5. Network-tested
  6. Backup-tested
  7. Ready for production workloads

Only then should services be migrated.

Planned sequence:

HP ProDesk
Current Proxmox workloads
        ↓
Migration
        ↓
NAS / Compute Machine
        ↓
Primary heavy compute + storage node

The migration should happen gradually rather than all at once.


HP ProDesk Future Role

After heavy workloads are migrated and validated on the NAS / compute machine, the HP ProDesk can be repurposed for a future homelab role.

That future role is intentionally not finalized yet.

The current network plan keeps the TP-Link Archer BE550 as the main router and Wi-Fi device.


Networking

The NAS / compute machine will eventually connect into the managed homelab network.

Long-term networking goals include:

  • Managed switching
  • Faster internal transfers
  • VLAN segmentation
  • Dedicated infrastructure networks
  • Private administration
  • Tailscale remote access where appropriate

See:

Network Topology


Operational Pattern

The system is intended to run:

24/7

with only short planned maintenance windows.

Expected maintenance pattern:

~1–2 maintenance events per week if necessary
~5–10 minutes per event

The goal is not constant rebooting but allowing short controlled maintenance when needed.


Backup Philosophy

The storage pool is not itself a backup.

Mirrors provide redundancy against drive failure, but they do not protect against:

  • Accidental deletion
  • Filesystem corruption
  • Malware
  • Application mistakes
  • Administrative errors
  • Multiple simultaneous failures
  • Physical damage

The preferred long-term backup strategy is local, not cloud-based.

Future backup planning should include:

  • Separate backup storage
  • Configuration backups
  • VM backups
  • Important application-data backups
  • Restore testing
  • Offline or otherwise isolated copies where practical

Current vs Future ECC Plan

The present build uses:

64 GB DDR5 CL40
Non-ECC

There has been separate discussion of a possible future ECC-oriented revision.

That future discussion should remain separate from the current build until an actual migration decision is made.

Current authoritative configuration:

9950X
64 GB DDR5 CL40 non-ECC
ASUS Pro WS B850M-ACE SE
Intel Arc B580
2 × Samsung 9100 2 TB
4 × IronWolf Pro 8 TB
JONSBO N6
ROG Loki 850W

Current Storage Summary

FAST STORAGE
├── Samsung 9100 2 TB #1
└── Samsung 9100 2 TB #2

BULK STORAGE
├── Mirror #1
│   ├── IronWolf Pro 8 TB
│   └── IronWolf Pro 8 TB
│
└── Mirror #2
    ├── IronWolf Pro 8 TB
    └── IronWolf Pro 8 TB

Approximate mirrored HDD capacity:
~16 TB before filesystem/formatting considerations

Related Notes

Homelab Overview
HP ProDesk 600 G4
Proxmox Host
NAS Compute Machine
Network Topology
Immich
Jellyfin
VM100 - Jellyfin

Back to Hardware