The Tech Pulse

February 8, 202610 min read
Tags
  • Raspberry Pi 5
  • Nextcloud
  • Tailscale
  • Google Drive Alternative
  • Private Cloud
  • Self Hosting
  • Personal Cloud
  • Stop Paying For Cloud Storage
  • Home Lab
  • Unlimited Storage
  • Raspberry Pi Projects
  • Cloud Storage
  • No Monthly Fees
  • Nas
  • Diy Cloud
  • Backup Photos
  • Tech Tutorial
  • Linux
  • Nextcloud Tutorial
  • Tailscale Tutorial
  • Raspberry Pi 5 Ssd
  • Nvme
  • Own Your Data
  • Privacy
  • Icloud Alternative
  • Dropbox Alternative
  • File Server
  • Home Server
  • Pi 5 Projects
  • Iphone Backup
  • Nas Setup
Share

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)
  • rpi-clone (Jeff Geerling’s maintained version) (rpi-clone)
  • snapd + Nextcloud snap (Nextcloud)
  • Tailscale (Tailscale)
  • On each client device: Tailscale app + Nextcloud client (macOS virtual files variant recommended in transcript) (Nextcloud)

Step 1 — Assemble the Pi 5 + NVMe hardware

  1. Mount the cooling fan (push pins through mounting points).
  2. Fit the case/bumper if using one.
  3. Mount the NVMe HAT with standoffs/screws.
  4. Connect the ribbon cable.
  5. 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

  1. Install and open Raspberry Pi Imager. (Raspberry Pi)
  2. In Imager:
    • Device: Raspberry Pi 5
    • OS: latest 64-bit Raspberry Pi OS
    • Storage: select your microSD
  3. 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)
  4. 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

  1. Insert microSD into the Pi.
  2. Power on with USB-C PSU; wait a couple minutes.
  3. 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.

Step 5 — Clone microSD → NVMe using rpi-clone (Jeff Geerling)

  1. Install rpi-clone (quick install):
curl https://raw.githubusercontent.com/geerlingguy/rpi-clone/master/install | sudo bash

(rpi-clone)

  1. Clone to NVMe (Pi 5 NVMe device usually nvme0n1):
sudo rpi-clone nvme0n1

(rpi-clone)

Common mistakes

  • 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 OptionsBoot 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.)


Step 7 — Install snapd and Nextcloud (Snap)

  1. Install snapd (Debian-based):
sudo apt update sudo apt install snapd -y
  1. Install Nextcloud snap:
sudo snap install nextcloud

(Nextcloud)

  1. Check services:
sudo snap services

Common mistakes

  • Skipping apt update → package install failures.
  • Assuming Nextcloud is “ready” before services settle; give it a minute after install.

Step 8 — Initialize Nextcloud in the browser (LAN first)

  1. Find your Pi LAN IP:
ifconfig

(or ip a on newer systems) 2. Open in browser:

  • http://<pi_lan_ip> (the snap typically serves on port 80 unless changed)
  1. Create the admin username/password.

Common mistakes

  • Thinking it “froze” during first init—initial setup can take a couple minutes.

Step 9 — Install Tailscale on the Pi and bring it online

Install with one command:

curl -fsSL https://tailscale.com/install.sh | sh

(Tailscale)

Bring it up:

sudo tailscale up

(Tailscale)

Authenticate using the provided URL. The Pi should appear in the Tailscale admin console.

Common mistakes

  • Forgetting sudo tailscale up → the daemon is installed but the node never joins your tailnet.

Step 10 — “Bridge” Nextcloud + Tailscale (trusted domain / hostname)

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…):

sudo nextcloud.occ config:system:set trusted_domains 1 --value="yourmachine.ts.net"

(GitHub)

If needed, restart the snap:

sudo snap restart nextcloud

(Nextcloud community)

Common mistakes

  • Not replacing yourmachine.ts.net with your actual Tailscale DNS name from the console.
  • Using the wrong index (0 is often already set to LAN/IP; add Tailscale as 1).

Step 11 — Install clients and test remote access (off LAN)

On each device you want to sync:

  1. Install and sign into Tailscale, join the same tailnet.
  2. Confirm you can open Nextcloud via:
  • http://yourmachine.ts.net (or with port if required)

Then install the Nextcloud desktop/mobile client and log in using the same ts.net address.

macOS note (from transcript)

  • Install the macOS Virtual Files client variant for full Finder integration behavior. (Nextcloud)

KEY TECHNICAL DETAILS

Brands / software / tools mentioned

  • Raspberry Pi 5 (recommended 4GB model in transcript)
  • NVMe SSD, Pi 5 NVMe HAT, active cooling fan, 27W USB-C PSU
  • Argon Neo 5 case (optional)
  • Raspberry Pi Imager (Raspberry Pi)
  • Raspberry Pi OS (64-bit) (Raspberry Pi)
  • SSH
  • rpi-clone (Jeff Geerling maintained) (rpi-clone)
  • snapd / Snap
  • Nextcloud (snap package) (Nextcloud)
  • Tailscale + ts.net DNS name (Tailscale)
  • Client platforms shown: macOS, iPhone
  • Comparable products mentioned: OneDrive, iCloud Drive
  • Auth option mentioned: GitHub login for Tailscale

Versions / editions

  • Raspberry Pi OS: “latest 64-bit” (no exact version number given)
  • Nextcloud: installed via Snap (version not stated; Snap will install a current channel build) (Nextcloud)
  • rpi-clone: Geerling’s maintained repo/site (no version stated) (rpi-clone)
  • Tailscale: installed via official installer script (no version stated) (Tailscale)

Installation/download sources (official)

  • Raspberry Pi Imager (official Raspberry Pi site) (Raspberry Pi)
  • rpi-clone quick start (Jeff Geerling) (rpi-clone)
  • Nextcloud Snap install command documented by Nextcloud (Nextcloud)
  • Tailscale installer + Raspberry Pi OS steps (Tailscale)
  • Nextcloud macOS Virtual Files client doc (Nextcloud)

PRO TIPS (3–5)

  1. Boot Nextcloud from NVMe, not microSD—NVMe drastically improves responsiveness and sync performance.
  2. Keep microSD as an emergency recovery tool, but remove it for normal use after NVMe boot is verified.
  3. Use Tailscale + ts.net instead of port forwarding—your Nextcloud stays off the public internet by default. (Tailscale)
  4. Immediately add yourmachine.ts.net to Nextcloud trusted_domains to avoid “untrusted domain” errors. (Nextcloud)
  5. On macOS, prefer the Virtual Files Nextcloud client so you don’t have to fully download everything locally. (Nextcloud)

POTENTIAL LIMITATIONS / WARNINGS

  • Power/thermals: Pi 5 + NVMe can throttle or reboot if cooling/PSU are weak; use active cooling and proper wattage.
  • rpi-clone target risk: selecting the wrong destination disk can overwrite data—always confirm with lsblk. (rpi-clone)
  • Boot quirks: older clone tools struggled with Raspberry Pi OS boot mount changes; use the maintained fork and verify boot order. (Raspberry Pi Forums)
  • Nextcloud security checks: Nextcloud requires trusted_domains to prevent host header attacks; don’t disable this. (Nextcloud)
  • LAN vs tailnet URL mismatch: if you access via LAN IP and ts.net, you must list both in trusted domains or you’ll see domain warnings.

RECOMMENDED FOLLOW-UP RESOURCES

  • Raspberry Pi Imager + OS installation guide (official Raspberry Pi docs) (Raspberry Pi)
  • rpi-clone quick start + NVMe clone command (Jeff Geerling) (rpi-clone)
  • Nextcloud “Install via Snap packages” (official Nextcloud admin manual) (Nextcloud)
  • Nextcloud snap configuration (trusted domains via nextcloud.occ) (GitHub)
  • Tailscale Raspberry Pi OS install + tailscale up steps (official) (Tailscale)
  • Nextcloud macOS Virtual Files client documentation (official) (Nextcloud)

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.

Related reading

Get New Posts

Follow on your preferred channel for new articles, notes, and experiments.

Related Posts