The Machine

This is a consumer-grade gaming PC repurposed as an AI server. No server hardware needed. Everything was already in the living room, connected to a TV.

CPU
AMD Ryzen 9 7950X3D
RAM
96 GB DDR5
GPU
AMD RX 7900 XTX 24GB
Root SSD
295 GB (ext4)
Data SSD
4 TB (NTFS)
OS
Ubuntu 24.04 + Windows

Storage Layout

The 4TB SSD is the secret weapon. It holds models, backups, and Timeshift snapshots โ€” all while keeping the root partition clean.

Partition Size Filesystem Mounted At Purpose
nvme1n1p5 295 GB ext4 / Ubuntu root, Docker images, configs
nvme0n1p1 ~500 GB NTFS โ€” Windows C: drive
nvme0n1p3 ~1.8 TB NTFS /media/wm/2TB-Data Ollama models, Restic repo, Timeshift
nvme0n1p4 ~1.9 TB NTFS OS-BK General storage, Macrium Reflect backups
๐Ÿ’ก Pro tip Ollama models are 72 GB. Keeping them on the 4TB SSD via symlink (/home/wm/.ollama/models โ†’ /media/wm/2TB-Data/ollama-models) dropped root partition usage from 73% to 47%.

Dual Boot

Windows stays for gaming and Macrium Reflect backups. Ubuntu runs the AI stack. GRUB handles boot selection.

Windows side

Ubuntu side

โš ๏ธ Timeshift + NTFS conflict Timeshift wants exclusive mount control during snapshots. If your data partition is mounted at boot via fstab, Timeshift will fail. Solution: use noauto in fstab + a systemd oneshot service to mount after local-fs.target.

Why AMD GPU?

NVIDIA is the default choice for AI, but AMD ROCm works well for inference:

One quirk: the 7900 XTX reports as gfx1100 but needs HSA_OVERRIDE_GFX_VERSION=11.0.0 to work with ROCm's compatibility layer.

Total Cost

Item Cost Note
PC hardware $0 Already owned
Ubuntu $0 Free
Ollama $0 Open source
Open WebUI $0 Open source (MIT)
Nextcloud $0 Open source (AGPL)
Jellyfin $0 Open source (GPL)
AdGuard Home $0 Open source
Restic + Timeshift $0 Both open source
Total $0 Existing hardware only