Welcome to The Privacy Dad's Blog!

My Family Nextcloud Server

For readers in a similar position to mine, trying out different privacy tools without much schooling in IT, setting up a Nextcloud server for friends or family might be the right next challenge.

I have tried, over the years, setting up my own servers on previously discarded 'basement computers' and found things could get complicated quickly. While there are clear guides on, for example, digitalocean.com, I nonetheless often found myself out of my depth and often tempted to wipe the slate clean and start all over.

All of this was simplified when I discovered snap packages on Linux. These are very simple, all-in-one solutions for setting up different applications, well suited to people who don't necessarily want a crash course in Apache and database management.

As I write this, my home Nextcloud server has been running without any significant interruption for a couple of years, and, I am pleased to say, is being used by family members for storage and communication.

What is a server?

A server is a computer that provides software and storage for other devices on a network. This network can be local (LAN) or more wide spread (WAN).

The advantage of having a server is that that the PC running it can be dedicated to doing the heavy lifting, both processing and memory-storage wise, while the devices connecting to the server can take advantage of the results.

Netflix is a good example of a server-based system for entertainment (we stream the video files that are stored on Netflix's computers into our homes), as is the more recent and wonderful Xbox GamePass streaming experience.

On a more humble level, one can use an older PC in the home to provide some kind of service or software for friends and family in the vicinity, or to give you and others wider access to files stored at home when you're out. Nextcloud snap does exactly that, in a very simple way.

Practical uses for a family Nextcloud server

Our Nextcloud server runs from an older PC that I have sitting next to my desk as I write. It is always on and always connected. I can connect to it via a browser, via desktop applications on my main computer, and also via Nextcloud apps on my phone.

Nextcloud is well-established software. It is stable and has a truly excellent suite of applications and functions that run on an interface that feels competitive with the latest Graphical User Interfaces.

Here are a few ways in which my Nextcloud server is currently being used:

Planning

One of my favourite add-ons to the Nextcloud server is called Deck. Deck is a card-based organisation tool, also called a 'kanban' tool. Here's a demo example taken from the Nextcloud page:

Deck

Source: Nextcloud

Deck helps me keep track up my monthly backups and quarterly clones, and I have also used it in the past for planning this blog.

Creating a work profile

I keep accounts and devices for private and professional use separate. This sometimes creates problems when you need to send a file or information from the home system to the work system, or vice versa. While email works, Nextcloud is even better.

As an administrator, you can create new user profiles on your Nexcloud server for others to use. I can set up a dedicated work profile on my Nextcloud, that I can then log into via any browser on a work device. This makes it very easy to share images, files, notes and more between my work and private online identities (without, for example, adding personal email addresses to my work email address book).

Introducing others to Nextcloud

I was introduced to someone who had valid and legal reasons for looking into private file sharing between members of a politically motivated group. I set up an account for her on my Nextcloud server with some collaborative tools pre-installed. This way, that individual could get a feel for the Nextcloud user experience without having to learn how to set up a server first.

Large file sharing

My server connects to a 3TB HDD—more about the specific complications around this below. It's been great to find a use for a large hard old disk that I was about to give to charity.

One of my children has gotten into video editing with a friend. They use my Nextcloud server to share the large video files between them for free.

Calls

Nextcloud has a reliable application called Talk. It works just like Zoom. Recently, I have been using Talk to call friends in far-away places without time limits, and my children have been using it to do group calls with my siblings. It's stable and works without lag.

Talk Source: Nextcloud

I must add here that it gives me, as the administrator of the server, particular satisfaction to see Zoom successfully replaced by an old computer that runs in our living room!

Bridge between phone and PC

I use Nextcloud's Notes application as a bridge between my phone and my laptop. As I don't have email installed on my phone, it can be tricky to find a way to share a link found on the laptop to my phone in order to share it on Signal, for example.

For this, I now use the Notes app. I can access a single note from all devices and I just copy and paste any links I want to share between devices there.

Other uses

There are many other practical uses for a Nextcloud server. I recommend taking a look at the Nextcloud app store. There are apps for collaborating on documents, apps for saving bookmarks and making map tools accessible via your browser, managing photo files and creating an inbox for email. Nextcloud is fantastic, reliable software. I have not experienced any problems running it from older hardware.


The rest of this article is more practical and technical. I have added my own notes for those interested. If you have questions about these, please don't hesitate to get in touch, and I'll do what I can.

As always, information dates quickly, so it's best to go directly to the most recent tutorials for setting up Nextcloud on your computer.


Setup & maintenance

To get started with Nextcloud snap (on Linux), just visit the Github page or snapcraft.io/nextcloud. There is also an excellent wiki page and a forum—see links under Documentation below.

Once downloaded and installed, you'll be asked to create an administrator username and password. From that point on, you can do most things locally via your browser, using the local IP address of the device you have installed Nextcloud snap onto.

After that, there might be several more required actions, especially if you want to make your Nextcloud server reachable from outside your home. You may need to add trusted domains, open ports on your router, set up firewall rules, and secure the web interface with SSL.1

If you own a domain name, you can also link your public-facing Nextcloud server to it, which makes it much easier to share your server with friends and family. You can, for example, name your domain smithcloud.com, if your family name is Smith.

If you want to use a large external drive for storage, like I did, some extra steps are required.

If any or all of that sounds daunting, just take it one step at a time, and begin with a Nextcloud server on your local network in your home. That is much easier to achieve and can still be very useful. Once you've developed familiarity with Nextcloud, you could then look into tutorials for making your Nextcloud public, and ask for help on the forum.

Problems

One time our Internet glitched, and that caused problems with my server. I had to learn commands to pause, stop and restart the server, but, with a little patience, this was easy enough to do. Other than that, Nextcloud is robust and stable. It updates automatically, sending me an email notification that the upgrade happened. When I need to reboot the PC for Linux updates to take effect, Nextcloud automatically comes online again.

When other people begin to rely on your Nextcloud server, you'll feel a bit more pressure not to mess up. If my children and their friends are using my server for the safekeeping of video files, then I'd better make sure those are indeed kept safe and backed up. Backing up your Nextcloud takes a few extra steps. It's something I currently do manually. I also warn people using my server that I am not an expert and that they probably should not rely solely on my server; that is the reality of the situation.

Privacy is an interesting one. To set up a new account, you initially create the user password and mail that to new users; they can then change their password, but not everyone does, I suspect. Additionally, if you know a little bit about using command line, there are ways to see what other users are storing on your server (you can make a copy of the data and then change the permissions—it's surprisingly simple!). I just warn any users that I have the capability to do this. It has also given me better insights into the problems around trusting admins of third party servers!

Related to the above point, you also have to trust your users won't use your server for storing any illegal content. Clear communication helps.

I had a terrible time getting my Nextcloud to 'see' and connect to the large external HDD I wanted to use for storage. Nextcloud has a neat tool for this, but I had forgotten that permissions for parent folders are passed onto child folders. The directory I had created for the Nextcloud server was inside a parent directory with a different set of permissoins. I eventually figured out that this was what was causing things to break, but I should be honest here and confess it took me weeks to discover and understand the problem. I don't see this as a waste of time, as I am now always mindful of the importance of directory permissions.

Wrapping up

Setting up and using my own Nextcloud server has been one of the more successful privacy projects I've embarked on. It works, and I use and rely on it today the same as a service I would pay for. Nextcloud's robustness makes it very reliable; I hardly have to do any maintenance. It has been neat to see family and friends find practical use in it.

In terms of privacy, hosting your own Nextcloud server takes the entire data hoarding company structure out of the equation. The only caveat is that you, the administrator, can see quite a bit of what's going on on the server. I have found that being open and honest with users on my server creates the trust and transparency needed: the users can decide to what extent they trust me by what they place on the server.

While starting your own Nextcloud server is not a beginner-level privacy project, I would recommend trying Nextcloud snap if you already have some familiarity with command line, Linux and have successfully installed and used simpler privacy tools before.

There is great help online, and I honestly feel that if I can do it, anyone with a serious interest and patience can do so too, no matter what your technical background.

Documentation

Some of my own notes, first

You can use the nextcloud.export command to back up your data. However, with my data being stored on an external drive, I had to create a symbolic link, as otherwise the export command wasn't really doing what I thought it was doing, namely backing up my data. This probably only affects a small portion of readers here, but if you have questions about it, I can sift through my notes for you.

This is now old, but the main video tutorial I used is here. This tutorial does not mention changing parent folder permissions, which led to me being stuck for days with my data stored on an external device.

Useful commands

sudo snap disable nextcloud

sudo snap enable nextcloud

sudo systemctl status snapd

sudo nextcloud.occ status

sudo snap restart nextcloud

sudo snap refresh nextcloud

sudo snap stop nextcloud

sudo snap start nextcloud

sudo snap connect nextcloud:removable-media (please look this up before using; only needs to be used one time)

Locations

/var/snap/nextcloud/common/backups (default location for backups when you run nextcloud.export)

/media/NAME_OF_EXTERNAL_DRIVE/backups (new backup folder I created on external drive)

/var/snap/nextcloud/common/backups (newly created symlink to ackups folder on external drive)

/media/NAME_OF_EXTERNAL_DRIVE/data (where Nextcloud data is actually stored)

Note 1: You can see protected directories with sudo ls -l command but you cannot do so with cd.

Note 2: Nextcloud snap uses root:root permissions for everything (not www-data); parent folders of external drives (if moving data folder) also need to be root:root.

Note 3: Format an external drive that you want to use with Nextcloud snap as ext4.

Nextcloud snap Github page

snapcraft.io/nextcloud

Nextcloud snap Wiki

Nextcloud snap forum 'Support'

Nextcloud snap forum 'Installation'

How To Install and Configure Nextcloud on Ubuntu 20.04

Nextcloud app store

Nextcloud works with governments to create MS Office rival for the EU

How to backup your instance


-----Discuss on Reddit-----

Subscribe to my blog via email or RSS feed.

Find me on Mastodon and Twitter.

Back to Blog

  1. Note to Pop!_OS users: due to a bug, securing my Nextcloud server with lets-encrypt was not possible at the time, so I had to start over with Ubuntu.

#digitalprivacy #journey #nextcloud #parenting