This guide provides a comprehensive walkthrough for building a private, subscription-free cloud storage system using a Raspberry Pi 5, Nextcloud, and Tailscale.
Hardware Requirements and Assembly #
- Core Components: Raspberry Pi 5 (4GB+ recommended), 27W USB-C power supply, and a Micro SD card for initial setup.
- Storage: M.2 NVMe SSD for high-speed data storage.
- Expansion Hardware: An NVMe base/hat and a ribbon cable to connect the SSD to the Pi.
- Cooling & Protection: Active cooling fan and a bumper case (or an all-in-one solution like the Argon Neo 5 case).
- Assembly: Attach the fan, mount the NVMe hat with standoffs, connect the ribbon cable, and secure the SSD.
Initial OS Configuration #
- Imaging: Use the Raspberry Pi Imager to flash the 64-bit Raspberry Pi OS onto the Micro SD card.
- Customization: Set the hostname (e.g., "pcloud"), username, password, and Wi-Fi credentials.
- Communication: Ensure SSH is enabled to allow remote access to the Pi.
Migrating to NVMe Storage #
- Initial Boot: Insert the SD card, power the Pi, and connect via terminal using
ssh username@hostname.local. - System Prep: Run specific memory usage commands to ensure compatibility with Nextcloud.
- Cloning: Use the
rpi-clonetool to copy the entire OS from the SD card to the NVMe drive. - Boot Order: Use
raspi-configto change the boot sequence to prefer the NVMe drive, then remove the SD card and reboot.
Software Installation: Nextcloud #
- Installation: Deploy Nextcloud using the Snap package manager for a simplified setup.
- Web Dashboard: Access the Nextcloud interface via the Pi’s IP address to create the primary administrator account.
- Functionality: Nextcloud serves as the core file management system, mimicking the behavior of Google Drive or iCloud.
Remote Access: Tailscale Integration #
- VPN Setup: Install Tailscale on the Pi to create a secure "Mesh VPN," allowing access to the server from outside the home network without port forwarding.
- Authentication: Link the Pi to a Tailscale account via a browser-based login.
- Collaboration: Run specific commands to bridge Nextcloud and Tailscale, ensuring Nextcloud "trusts" the Tailscale DNS address for secure remote logins.
Device Sync and Integration #
- Client Setup: Install Tailscale and Nextcloud desktop/mobile apps on other devices (Mac, Windows, iOS, Android).
- File System Integration: Use the "Virtual Files" feature on desktop clients to integrate the Pi’s storage directly into File Explorer or Finder.
- Testing: Verify the setup by syncing files across devices (e.g., uploading from a phone and viewing on a laptop) while connected to different networks (e.g., a mobile hotspot).
Summary #
By combining the Raspberry Pi 5's NVMe speeds with Nextcloud for file management and Tailscale for secure remote networking, users can create a high-performance personal cloud. This DIY solution eliminates monthly subscription fees, provides full ownership of data, and offers seamless file integration across all devices regardless of location.
last updated: