Ditch Dropbox: Create A Personal Home Backup Server With Raspberry Pi 3

On the latest episode of Choose Linux, I talked about some of my first experiences with a Raspberry Pi 3 B+. About an hour after we wrapped recording, I decided to keep playing by setting up NextCloudPi. And I kinda love it, so here's a quick and easy guide to setting up your own personal DropBox replacement at home.

The way we'll be using it, NextCloudPi is a standalone, self-contained OS that runs on your Raspberry Pi. It lets you sync and manually back up files from practically any device (including your phone and its camera instantly), and serve files to those devices. You can even set up multiple users.

You can configure your personal NextCloud to be accessible outside your home network, but for this guide we're sticking to keeping things confined to your LAN.

DISCLAIMER: This guide is for informational and educational purposes only. It's meant as a starting point and not as comprehensive documentation. As such it includes instructions for backing up to a single USB drive. Always back up your critical data to multiple drives and multiple locations!

You may find this guide on setting up a 2nd external USB drive useful. If you need help beyond the scope of this article, hit up the NextCloud community support page.


What You'll Need:

Step 1: Set Up Your Pi!

For your initial setup I highly recommend hooking up your Pi to a keyboard, mouse and monitor (via HDMI). You'll notice if something goes wrong during installation, and more easily spot the Pi's IP address. Advanced users can SSH into their Pi, but let's keep things easy!

Step 2: Burn The NextCloudPi Image To SD Card

Did you grab Etcher and the NextCloud Pi ISO image? Awesome! The image probably needs to be extracted, so just browse to where you downloaded it and:

  • On Linux and macOS, right click or double click the .tar.bz2 file and choose "Extract" or "Extract Here."
  • On Windows, download and install 7-Zip. Then run 7-Zip manager, find your downloaded .tar.bz2 file, right click it and choose "extract here." Then select the .tar file you just extracted, right click it and choose "extract here" again. You'll end up seeing a .img file.
  • Launch Etcher. SELECT the NextCloudPi_RPi_XX-XX-XX.img file. SELECT your SD card. Then click "FLASH!" Within a few minutes, you'll have a pre-installed NextCloudPI OS to boot up on your Raspberry Pi.

Step 3: Power Up And Activate

Connect the Pi to your network by plugging in your ethernet cable from your router to the Pi's ethernet port.

Now throw the microSD card in your Pi and plug in the power. Don't add your USB drive(s) just yet (and please keep in mind they will be formatted, so if they're not brand new back up any important data).

If you see the green SD access light blinking, you're good to go!

NextCloudPi has successfully booted. Pay attention to that IP address!

You'll see a standard Linux boot sequence (above). The OS is already installed and running, so we're going to jump right into setting things up.

Do you see your IP address? Enter that into your browser address bar on a PC connected to the same network. BOOM! Activation screen.

NOTE: Your browser may complain about an "Untrusted Certificate" message. This would be dangerous for an external website, but I assure you it's OK in this case. There are advanced ways to work around this, but that's outside the scope of this tutorial. The quick fix is simply to select "Add Exception."

The NextCloudPi activation screen.

DO NOT CLICK ACTIVATE without copying both auto-generated passwords into a notepad / text file. And don't worry, you can change these in the next step!

Step 4: Log In & Do The Setup Wizard

That first password you copied is for the administration page. Basically getting the nuts and bolts set up the way you want. Copy and paste that first password here.

And you'll be greeted with the configuration wizard. Don't skip this :D

It's time to answer some questions.

  • Do you want to save data to your USB drive(s)? Click Yes. Now plug in your USB drive(s) and click Continue.
  • By default, NextCloudPi will now format your USB drive with the BTFRS filesystem. If you want this, click Format USB. If you don't want this, make sure your drive has already been formatted with the ext4 or BTRFS filesystem.
  • Now click the button to setup your data directory on the USB drive.
  • Finally, let's select "No" to accessing your NextCloud outside of your home.

Step 5: Access Your NextCloud System Panel

Now let's visit our NextCloudPi system panel to configure some of the behind-the-scenes options. Crucially, we're going to change our password to something a bit more memorable!

You can also access this panel via http://nextcloud.local on your home network

This is your main System Info page, which shows up when you initially log in.

NOTE: The system may advise you to run an automount command, but your USB drive is already configured to automount on boot. A bug perhaps?

First up: Let's change our passwords. Scroll down to the CONFIG category and click "nc-admin." This is for managing this system panel. Think of a more memorable but secure password, enter it twice, then click Apply.

Next, let's do the same for our normal user, for admin access of the NextCloud panel.

Now let's actually get into our NextCloud and start playing! In the top right panel you'll see a search icon. Right next to is a button that, when you hover over it, says "Launch NextCloud." Alternately, simply key in the IP address in your browser. Now that things are configured, that IP will take you to your NextCloud interface.

Spend a few minutes scrolling through the info screens here. You'll also find links to download companion apps for Desktop, iOS and Android.

Step 6: Create Some Users

It's finally time to add some actual users, so let's create one for yourself where you can use a username you prefer instead of "ncp."

On the top right of the blue panel, click the Settings icon and choose "Users." Now select the New User option on the top left, and fill in a username + display name. Did you see you can always set quotas? This is great for additional users, but I want the Unlimited option for myself :D

Once you're finished, log out and then back in as yourself with the username info you just created.

Here's what mine looks like.

Step 7: Sync Your PC!

Alright! We have our brand new user account and a clean slate. What now?

You can create folders and upload data right from the web interface. Try it! Super easy. But let's set up some automatic syncing to keep our various device's files constantly up to date on NextCloud. We'll start with PC, then we'll move on to your Android phone.

I'm obviously using Linux as my personal example, but the process is very similar on macOS and Windows.

First, get the NextCloud app from here. (If you're using Arch, openSUSE Tumbleweed or Fedora, the desktop client is already included.) On Linux, you'll be downloading an AppImage. To make it executable, just right click its icon, tab to Permissions, and choose "Allow executing file as program."

Launch the NextCloud app from your respective OS, and let's get connected. First, enter the same IP address you used to login to the NextCloudPi web panel. Then enter the user account credentials you created.

You'll see the Untrusted Certificate message pop up. That's OK, just click "Trust this certificate anyway."

Like DropBox, you can set up your device to stay in sync with everything on your NextCloudPi server! You can also set up specific folders to sync.

Everyone will have a different strategy, but I'm going to use my NextCloudPi server as sort of a master backup. Whatever documents I'm working on, music I've downloaded, Linux distros I've grabbed, photos I've accumulated, I want it all going there from my various devices.

Right now I want to set up a Folder Sync Connection. Let's go ahead and click "Connect" to get to our main client interface.

First I'm going to hit "Add Folder Sync Connection."

Then I'll use my file browser to select the folder I want to sync with my NextCloudPi.

Now I'll hit "Create Folder" to create a corresponding Documents folder on my NextCloudPi.

And after a few rounds of that, we're off and syncing!

Step 7a: Sync Your Phone!

Thanks to a fairly universal interface, using NextCloud on your Android (or iOS) is pretty similar to the desktop versions. Just grab the client from your respective app store, and follow the same steps to getting connected. You'll need that IP address again, and your user account.

NextCloud will quickly check the connection, and then take you to some folders that should look familiar!

I haven't done anything too extensive with Android to NextCloudPi syncing, but what's most important to me is having all of my photos backed up constantly.

To do that, click the hamburger menu (the 3 vertical lines) and choose "Auto Upload." You can then browse your various gallery folders (downloads, videos, Facebook or Instagram images) and click the cloud icon to sync them.

Make sure to click the menu next to the cloud icon, too. This allows you to set some crucial upload settings. I only want to upload when I'm on WiFi and only when I'm charging my device.

As you may have guessed, you can set up completely custom folder syncs on the mobile client as well. Choose any folder on your phone, then choose or create a folder on your NextCloudPi server.


Wait A Minute....

Did we just setup a Linux-based file server without using the command line once? Yes. Yes we did.

Anyway, I hope this guide has been useful to you! Please feel free to share it with anyone who may be interested in an affordable and fun backup solution. If you spot corrections that need to be made, please don't hesitate to tell me on Twitter. I did my best to ensure accuracy, but I'm learning this right along with you.

As a final note,I'm choosing to release these guides on my personal site instead of Forbes so that you get a distraction-free, ad-free experience. Please consider supporting that decision by purchasing  any of the equipment you need via my Amazon Affiliate links at the top of this guide.

See you soon!