Raspberry Pi 5 Home Cloud — 4 TB NVMe, always on
A compact, low-power home server: private cloud storage, remote SSH, video streaming, MacBook backups, Linux and C++ development, and moderate real-time processing — all from a board that draws about as much power as a phone charger. This note is the full plan, from which parts to buy to what the finished system is and is not good at.
In one line. A Raspberry Pi 5 (8 GB) with a 4 TB M.2 2280 NVMe SSD on a PCIe NVMe HAT, reached over Tailscale, costs €635–712 to build at August 2026 German prices and about €1–1.50 a month to run. Two thirds of that is the SSD. The drive is far faster than the network it is served over — and that is fine.
- What this system is
- The hardware
- The same SSD and the MacBook
- Network performance — the real bottleneck
- Remote access and file sharing
- Storage layout and booting
- Video streaming
- Development on the Pi
- Real-time processing
- Power and running cost
- Software stack
- Security model
- Backups
- Budget
- The final configuration
- What it is good at, and what it is not
- Upgrade paths
- The whole architecture
What this system is
The Pi 5 becomes a small always-on home server. One board, one SSD, one network cable, and a VPN that makes the whole thing reachable from anywhere without opening a single port to the public internet.
Storage and access
- Private home cloud
- Network file storage
- MacBook backups
- SSH / SFTP from inside or outside the home
- SMB file sharing
- Tailscale remote access
Compute and services
- Jellyfin media streaming
- Docker containers
- Git repositories
- Python / C / C++ development
- Moderate DSP and real-time processing
- Small web services and databases
The hardware
Core parts
| Component | Recommendation | Notes |
|---|---|---|
| Computer | Raspberry Pi 5, 8 GB RAM | Excellent balance for server use. |
| Storage | 4 TB M.2 2280 NVMe SSD | Main OS + data storage. |
| NVMe adapter | GeekPi N04 M.2 NVMe HAT or equivalent | Must support M.2 2280 NVMe. |
| Power supply | Official Raspberry Pi 27 W USB-C PSU | Recommended for Pi 5 + peripherals. |
| Cooling | Raspberry Pi 5 Active Cooler | Strongly recommended for 24/7 use. |
| Network | Gigabit Ethernet | Preferred over Wi-Fi for NAS use. |
| Case | Pi 5 case compatible with a top-mounted NVMe HAT | Verify physical clearance. |
Optional extras
- Cat 6 Ethernet cable
- UPS, for safe shutdown during power outages
- A second storage device for backup
- USB4 / Thunderbolt NVMe enclosure, for direct MacBook use (§3.1)
- 2.5 GbE USB adapter, if higher network speed is required (§17)
Which NVMe SSD fits
The SSD type that matters is:
M.2 2280 NVMe
PCIe
M-Key
The number 2280 is the physical size, not a model name:
2280
││
│└── 80 mm long
└── 22 mm wide
The GeekPi N04 in this plan supports M.2 2230, 2242, 2260 and 2280. For a 4 TB SSD, 2280 is the format to buy — the choice at that capacity is far wider.
Do not buy an M.2 SATA-only SSD. It is the same physical connector family but a different protocol; a HAT that supports NVMe only will not see it at all. Check the listing says NVMe / PCIe, not just "M.2".
How the NVMe connects
The Pi 5 exposes a PCIe interface. The HAT is the physical adapter between the M.2 socket and that connector — nothing more clever than that, which is why it is reliable.
PCIe HAT vs USB enclosure
| Method | Approx. Pi-side performance | Best use |
|---|---|---|
| PCIe NVMe HAT | ~400–500 MB/s | Permanent NAS / server |
| USB 3 NVMe enclosure | ~350–450 MB/s | Portable / removable SSD |
For a permanent home server, use the PCIe NVMe HAT. It is a cleaner installation, it frees the USB ports, it is a direct PCIe connection, it is well suited to 24/7 operation, and the Pi can boot Raspberry Pi OS directly from it (§6.2).
Use a USB enclosure instead only if you expect to disconnect the SSD often and move it between computers.
The same SSD and the MacBook
Direct connection over USB4
The same 4 TB NVMe SSD works with a MacBook Pro — but the GeekPi HAT cannot be used as a Mac adapter. For a direct connection you need an enclosure:
| Connection | Typical real-world speed |
|---|---|
| USB 5 Gbps | ~400–500 MB/s |
| USB 10 Gbps | ~800–1,050 MB/s |
| USB4 / Thunderbolt | ~2,500–3,500 MB/s |
Why the SSD should stay on the Pi
For a home cloud, do not physically move the SSD back and forth. Keep it permanently attached to the Pi and reach it over the network:
MacBook Pro
│
│ Ethernet / Wi-Fi / Tailscale
▼
Raspberry Pi 5
│
▼
4 TB NVMe
Any of these protocols will do it: SMB, SFTP, SSH, rsync, SCP, WebDAV, Jellyfin, Nextcloud, Syncthing.
Network performance — the real bottleneck
The Pi 5's Ethernet is Gigabit. That caps everything:
$$ 1 \text{Gbit/s} \approx 125 \text{MB/s}, \qquad \text{practical} \approx 100\text{–}115 \text{MB/s} $$
So when the Mac reads the SSD over the LAN:
NVMe SSD capability ~400–500 MB/s on Pi
Gigabit Ethernet limit ~100–115 MB/s
The network, not the SSD, is the bottleneck — by a factor of about four. Buying a faster SSD does not change this number; only a faster network does (§17).
Even so, 100 MB/s is more than enough for large document storage, photo libraries, backups, 1080p streaming, most 4K streaming, programming files, Git repositories, and remote development.
Remote access and file sharing
Tailscale from outside the home
The safest simple solution is Tailscale: an encrypted mesh that makes the Pi reachable as if it were on the local network, without exposing port 22 to the public internet.
ssh user@raspberrypi # by hostname
ssh user@100.x.x.x # by Tailscale IP
scp file.zip user@raspberrypi:/storage/
rsync -av ~/Documents/ user@raspberrypi:/storage/Documents/
SMB to macOS Finder
On the home network, Samba/SMB is the convenient option. Share /storage, then in Finder:
Finder → Go → Connect to Server
smb://raspberrypi.local/storage
The Pi storage then appears in Finder like any other network drive.
Storage layout and booting
Suggested layout
/storage
├── Documents
├── Photos
├── Videos
├── Music
├── Projects
├── Backups
├── Git
├── Docker
└── Shared
Raspberry Pi OS itself can live on the same NVMe drive:
4 TB NVMe
│
├── Raspberry Pi OS
│
├── /home
│
└── /storage
├── Documents
├── Photos
├── Videos
├── Projects
└── Backups
Booting from NVMe
The Pi 5 can boot from NVMe once configured, so the microSD card is not needed for daily use. Either put the OS and the data on one filesystem, or split it:
4 TB NVMe
├── OS partition
└── Data partition
Video streaming
Jellyfin is the recommended media server: it reads files straight off the NVMe and serves them to the LAN or, through Tailscale, to anywhere.
Direct play
Direct play is the ideal case: the Pi reads the existing file and sends it to the client without converting it. This works very well for 1080p, 4K, 4K60 (given the bitrate and network capacity), H.264, and HEVC/H.265 where the client supports it.
Transcoding — the limit
Real-time high-end transcoding is far heavier, and the Pi 5 is not the right machine for:
- heavy 4K transcoding
- multiple simultaneous 4K transcodes
- very high-bitrate conversion
- complex AV1/HEVC conversion workloads
A stronger mini-PC or desktop is the answer for those.
Upload speed for remote viewing
Watching from outside the home, the limit is usually the home internet upload speed, not the Pi:
Video bitrate: 30 Mbps
Required upload: comfortably above 30 Mbps
A high-quality 4K stream can need tens of Mbps. The SSD is far faster than any of this.
Development on the Pi
C and C++ tooling
The Pi 5 is a very capable Linux C/C++ machine. The usual tools are all there:
gcc g++ clang cmake make ninja gdb git
#include <iostream>
int main()
{
std::cout << "Hello from Raspberry Pi 5\n";
return 0;
}
g++ -O3 main.cpp -o app # -O2 / -O3 enable compiler optimization
./app
The code compiles to native 64-bit ARM instructions — nothing is emulated.
What the CPU is good for
The Pi 5 uses a quad-core 64-bit ARM Cortex-A76-class CPU.
Excellent for
Linux server programs · networking applications · APIs · automation · C/C++ learning · moderate DSP · sensor processing · multithreaded services · embedded software · moderate OpenCV workloads · control applications · SDR control software
The MacBook stays much faster for
Huge C++ builds · large simulations · heavy AI workloads · professional 4K/8K video encoding · large numerical workloads
What the NVMe actually speeds up
The SSD does not make CPU arithmetic faster. It improves everything that touches the filesystem: compilation, file loading, linking, large datasets, Docker images, databases, logging, video access, project indexing, package installation, swap behaviour, and general responsiveness.
C++ computation File / data access
│ │
▼ ▼
Pi 5 CPU 4 TB NVMe
Real-time processing
The Pi 5 can do fast real-time work — but "real-time" depends entirely on the workload and the latency requirement.
What it handles well
Sensor processing, robotics control, audio DSP, network packet processing, moderate SDR workloads, telemetry, automation, and low-latency C++ applications. Standard audio rates are comfortable for well-optimised C++:
48 kHz 96 kHz 192 kHz
Very high-bandwidth RF processing is where it stops. These need stronger hardware, or FPGA/GPU acceleration:
- tens or hundreds of MHz of complex IQ bandwidth
- full 5G PHY processing
- high-rate beamforming
- large real-time FFT pipelines
- advanced MIMO baseband
- real-time 4K/8K software encoding
Linux is not hard real-time
Stock Raspberry Pi OS is not a hard real-time operating system. It gives no strict timing guarantee. For stronger guarantees: a PREEMPT_RT kernel, CPU affinity, CPU isolation, real-time scheduling policies, locked memory, no dynamic allocation during processing, preallocated buffers, thread priority control, interrupt affinity, and lock-free queues where appropriate.
In practice this means a real-time C++ path should avoid new, delete, malloc and free
inside its critical processing loop — allocate once, up front, and reuse.
Power and running cost
Actual power draw
A Pi 5 server with NVMe and active cooling is very efficient:
| State | Typical draw |
|---|---|
| Idle / light server use | ~4–6 W |
| Moderate load | ~6–10 W |
| Heavy load | ~8–12+ W |
Annual electricity
At an average of 5 W running continuously:
| Electricity price | Approx. yearly cost | Per month |
|---|---|---|
| €0.30/kWh | €13.14 | €1.10 |
| €0.35/kWh | €15.33 | €1.28 |
| €0.40/kWh | €17.52 | €1.46 |
Cooling
Active cooling is strongly recommended for a 24/7 server. The Raspberry Pi 5 Active Cooler gives lower CPU temperature, less thermal throttling, more stable sustained C++ performance, better Docker behaviour, and a longer comfortable duty cycle. The NVMe SSD also benefits from a small thermal pad or heatsink, especially during long writes.
Software stack
Raspberry Pi OS / Debian
│
├── OpenSSH
├── Samba
├── Tailscale
├── Docker
├── Jellyfin
├── Git
├── rsync
└── optional services
Optional private-cloud applications: Nextcloud, Syncthing, File Browser, Immich, Jellyfin, Gitea, PostgreSQL, Home Assistant.
Security model
Do not expose these directly to the public internet: SSH port 22, SMB port 445, database ports, or admin dashboards. Every one of them is scanned continuously.
Also: SSH keys instead of passwords, root SSH login disabled, security updates installed, unused services firewalled, strong local passwords, and important files backed up.
Backups
RAID is not backup
RAID is not backup. It protects against a drive dying, not against deletion, corruption, ransomware, or the whole machine being lost. Even with several drives, a separate backup still matters.
Primary 4 TB NVMe
│
├── local backup SSD/HDD
│
└── encrypted off-site/cloud backup
Important files should exist in at least two independent places.
Backing up the MacBook
rsync -av --progress ~/Documents/ user@raspberrypi:/storage/Backups/MacBook/Documents/
Or mount the SMB share and copy through Finder. A future setup could dedicate a share to Time Machine.
Budget
These are real German retail prices, checked on 24 August 2026 against Geizhals, heise Preisvergleich and billiger.de — not the rough ranges this note originally carried. Availability is good on every line; the figures are the cheapest listed offer, before shipping. The HAT row prices a Pimoroni NVMe Base rather than the GeekPi N04 named in §2.1 — the German comparison sites carry it, it takes the same 2280 drives, and the note's own wording is "or equivalent". Any 2280-capable M-Key HAT lands in the same €15–25 band.
This build costs roughly €300 more than it would have two years ago, and the reason is memory. Both the board and the drive are priced by the memory market, and both are at a high. The Raspberry Pi 5 price ladder makes it plain: 2 GB €68.90 · 4 GB €137.45 · 8 GB €184.90 · 16 GB €304.89 — an extra 4 GB of RAM costs more than the entire rest of the system. NAND has moved the same way, which is why a 4 TB SSD is now the single biggest line by a wide margin. If the build can wait, it is worth waiting.
| Part | Aug 2026 (DE) | Cheapest listing |
|---|---|---|
| 4 TB M.2 2280 NVMe SSD | €394–465 | Dell OEM €393.88 · Lexar NM790 €449 · WD_BLACK SN850X €464.76 |
| Raspberry Pi 5, 8 GB | €184.90 | 35 offers; cheapest BerryBase |
| Case (Argon NEO 5) | €17.80–19.90 | Aluminium, with fan |
| PCIe M.2 HAT | €16.50 | Pimoroni NVMe Base (2230–2280) |
| Official 27 W USB-C PSU | €12.40–15.00 | Rasppishop / Semaf |
| Active Cooler | €4.90–6.00 | Official Raspberry Pi part |
| Cat 6 Ethernet cable | ≈ €5 | Any length |
| Expected total | €635–712 | typical build ≈ €695 |
Cutting the cost
Three levers, in order of how much they save and how little they cost you:
- Drop to 2 TB — the Lexar NM790 2 TB is €261.58, saving €187. But 4 TB is the better deal per terabyte (€112/TB against €131/TB), so this only makes sense if 2 TB is genuinely enough for the life of the machine.
- Drop to 4 GB RAM — €137.45, saving €47.45. For a file server, streaming box and Git host, 4 GB is comfortable; 8 GB only starts to matter with several Docker containers or a database under real load (§8.2).
- Use a combined NVMe case — the Argon NEO 5 M.2 NVMe (≈ €36.90) is case and M.2 adapter in one, replacing the €16.50 HAT and the €17.80 case for about €2.60 more, with a tidier result.
A 4 GB + 2 TB build lands at €456 — about a third off — and gives up nothing that matters for a home cloud.
Do not pay a premium for an ultra-fast PCIe 4.0 gaming SSD. The Pi cannot use its multi-gigabyte-per-second capability — the PCIe link and then the network cap it long before the drive does (§4). The prices above make the point: the WD_BLACK SN850X, a gaming drive, costs €71 more than the Dell OEM drive and would perform identically here. Spend the difference on capacity or a backup drive.
Running cost is unchanged, and it is still trivial. The build price moved; the electricity did not. At 5 W average the machine costs about €13–18 a year (§10.2) — so even at €695 the hardware is ~40× the annual running cost. This is a machine whose cost is almost entirely up front.
The final configuration
Raspberry Pi 5 — 8 GB
│
├── Official 27 W USB-C PSU
│
├── Active Cooler
│
├── Gigabit Ethernet
│
└── GeekPi N04 2280 NVMe HAT
│
└── 4 TB M.2 2280 NVMe SSD
Raspberry Pi OS 64-bit
OpenSSH · Samba · Tailscale · Docker · Jellyfin · Git · rsync
What it is good at, and what it is not
excellent
24/7 private cloud · low electricity consumption · SSH server · SFTP server · Mac ↔ Pi file sharing · backups · direct-play video streaming · Linux learning · C/C++ development · Docker · small databases · web services · home automation · moderate real-time processing · moderate DSP
not suitable
Heavy 4K video transcoding · professional CPU-heavy rendering · large AI models · full high-bandwidth 5G PHY · extreme SDR bandwidth · strict microsecond-level hard real-time processing without system tuning
Upgrade paths
Faster networking
Add a supported 2.5 GbE USB adapter. Practical throughput lands around:
~250–280 MB/s
depending on the adapter, the switch, and system configuration. This is the upgrade that actually moves the bottleneck identified in §4.
More storage
A USB SSD, a USB HDD, a multi-drive enclosure, or a second NAS.
Backup
A second external drive that is disconnected or kept in another place.
Stronger compute
If the workload grows to heavy 5G processing, AI acceleration, multiple 4K transcodes, or large simulations, the answer is a different machine — a mini-PC, a desktop workstation, an NVIDIA Jetson, or an FPGA/SDR platform — while keeping the Pi as the low-power storage and control server.
The whole architecture
The bottom line. For a low-power personal home cloud this is a strong setup: Pi 5 8 GB + active cooling + official 27 W PSU + GeekPi N04 2280 NVMe HAT + 4 TB NVMe SSD + Gigabit Ethernet + Tailscale. It gives roughly 4 TB of local high-speed storage, secure remote SSH, Mac network storage, remote file access, video streaming, Linux/C++ development, Docker, moderate real-time and DSP capability, and very low 24/7 electricity consumption.
For direct high-speed access to the same NVMe from the MacBook, a separate USB4 / Thunderbolt 40 Gbps enclosure can be used — but for normal home-cloud use, keep the SSD permanently installed in the Pi and reach it over the network (§3.2).