Access Your Files ANYWHERE You Go — The Ultimate Pi 5 Setup
One Sentence Summary
This video shows building a private cloud on a Raspberry Pi 5 with NexCloud and TailScale to own your data.
Main Points
Repurposes Raspberry Pi 5 into a private cloud with NexCloud and TailScale.
Uses NVMe SSD for storage for speed and data ownership.
SSH enabled and SD-to-NVMe clone to boot from NVMe.
RPI clone tool by Jeff Gearling used for migration.
Snap installs NexCloud quickly on Raspberry Pi.
TailScale provides VPN access and global device networking.
Bridging NexCloud with TailScale requires commands and a DNS address.
Browser dashboard offers cloud-like management.
Boot order adjusted to prefer NVMe over SD.
Sync shown across Mac, iPhone, and web browser.
Takeaways
Own your data without subscriptions by combining Pi hardware with NexCloud.
Prefer NVMe boot for faster performance and longevity.
Use TailScale to securely access private cloud from anywhere.
Document commands in a script or description for easy replication.
Test across devices early to verify syncing and access.
SUMMARY
This tutorial shows how to build a subscription-free private cloud on a Raspberry Pi 5 using Nextcloud for file sync + web access and Tailscale for secure remote access anywhere. The main problem it solves is paying recurring cloud storage fees while losing control of your own data. The core skill is: assemble Pi 5 + NVMe storage, move the OS from microSD to NVMe for performance, install Nextcloud (Snap), then expose it privately via Tailscale (ts.net / MagicDNS).
DETAILED STEP-BY-STEP BREAKDOWN
Prerequisites (hardware/software)
Hardware
Raspberry Pi 5 (recommended 4GB+ model per transcript)
Active cooling fan
microSD card (bootstrapping only)
M.2 NVMe SSD
Pi 5 NVMe HAT + ribbon cable + standoffs/screws
27W USB-C power supply
Optional: Argon Neo 5 case (fan + NVMe integrated)
Software
Raspberry Pi Imager for flashing the OS (Raspberry Pi)
Raspberry Pi OS 64-bit (latest, as shown in Imager)
SSH client (Terminal on macOS/Linux, Command Prompt/PowerShell on Windows)
On each client device: Tailscale app + Nextcloud client (macOS virtual files variant recommended in transcript) (Nextcloud)
Step 1 — Assemble the Pi 5 + NVMe hardware
Mount the cooling fan (push pins through mounting points).
Fit the case/bumper if using one.
Mount the NVMe HAT with standoffs/screws.
Connect the ribbon cable.
Insert the NVMe SSD and secure it with its screw.
Common mistakes
Loose ribbon cable → NVMe not detected.
Underpowered PSU → random reboots under load (Pi 5 + NVMe + fan can draw more).
Step 2 — Flash Raspberry Pi OS to microSD using Raspberry Pi Imager
Install and open Raspberry Pi Imager. (Raspberry Pi)
In Imager:
Device: Raspberry Pi 5
OS: latest 64-bit Raspberry Pi OS
Storage: select your microSD
Set OS customization:
Hostname (example in transcript: pcloud)
Locale/timezone
Username + password
Wi-Fi SSID/password
Enable SSH
Leave Raspberry Pi Connect off (per transcript)
Click Write, then eject the microSD.
Common mistakes
Forgetting Enable SSH → you must attach keyboard/monitor to recover.
Typo in hostname → later hostname.local SSH won’t work.
Step 3 — Boot the Pi and SSH in
Insert microSD into the Pi.
Power on with USB-C PSU; wait a couple minutes.
SSH from your computer:
ssh <username>@<hostname>.local
Common mistakes
hostname.local relies on mDNS; if it fails, find the Pi’s LAN IP from your router and use:
ssh <username>@<pi_lan_ip>
Step 4 — Prep for Nextcloud compatibility (transcript references a “memory setting” command)
The transcript mentions running a one-time prep command that “changes a memory setting” for Nextcloud compatibility, but the exact command text is not included in what you provided.
Executable instruction
Use the exact command from the video’s description/text file (the presenter says it’s copy/paste).
If you want a safe fallback: don’t guess—apply the presenter’s command verbatim, then continue.
Using the wrong target disk name (could overwrite the wrong drive). Confirm with:
lsblk
Known pitfall
Raspberry Pi OS “Bookworm” changed /boot mount conventions; older rpi-clone forks had bootability issues. Using Geerling’s maintained version helps avoid stale behavior. (Raspberry Pi Forums)
Step 6 — Set NVMe as preferred boot device (raspi-config)
Run:
sudo raspi-config
Then navigate:
Advanced Options → Boot Order → choose NVMe/PCIe first (presenter selects “prefer NVMe”).
Power off, remove the microSD, power on again.
Validate you’re booting from NVMe
If the Pi boots and you can SSH again, you’re likely on NVMe.
Confirm with:
lsblk
(Your root filesystem should now be on the NVMe device.)
The transcript says there are several copy/paste commands to make Nextcloud “trust” the Tailscale DNS name (*.ts.net). The correct general concept is:
Add the Pi’s Tailscale hostname (yourmachine.ts.net) to Nextcloud trusted domains, so Nextcloud stops rejecting it as “untrusted domain.” Nextcloud documents that trusted_domains is a security feature. (Nextcloud)
Executable commands (snap-safe)
Use Nextcloud snap’s OCC command to add trusted domains (index 0/1/2…):
If you paste the “memory compatibility” command block and the “final bridging commands” block (the ones the presenter says are in the description), I can rewrite them into a clean, audited checklist with exact expected outputs at each step.