Featured

Moving to Nextcloud

December 16, 2023
Table of Contents

I took a look at my email archives: I signed up for Dropbox in 2008, when it was fairly new (the service launched in 2007). At the time I was in high school, and I had just heard about this cool new tool that could help you easily share files with your classmates.

This was back when Windows Vista and Office 2007 were brand new, and the cloud was pretty much non-existent. There were no real competitors in this space, and Dropbox was great: just plain simple and it worked.

Back then, I was still in high school at the time and Dropbox was a great solution for syncing files. I was still a kid back then, and I certainly didn’t pay for the service. There were a lot of Dropbox users who didn’t pay a cent.

Here, a little bit of nostalgia: the email that I received so many years ago.
Here, a little bit of nostalgia: the email that I received so many years ago.

Over the years, I’d gotten a bunch of free extra storage via promotions, and I synced my key documents, images and more (including 1Password, which synced on Dropbox back then) across a bunch of devices this way.

In fact, 1Password was one of the reasons I did not want to move away from Dropbox. It just integrated really well.

At some point after I graduated from college I needed something a little bit more robust for file storage, and I decided to start paying for Dropbox, as I didn’t like Microsoft OneDrive or Google Drive, which were the principal competitors in this space. (I thought these were a bit clunky compared to Dropbox.)

The Dropbox problem

Ever since 2017 I’ve been giving Dropbox at least 100 EUR every year, to store a little under 250 GB. To be fair, there were better deals available, but I wasn’t keen on moving to a different cloud storage platform.

At the time I was still using 1Password sync with Dropbox, too. So I decided that paying would be the easiest option, and sure enough, it was. I’m not opposed to paying for good software!

Unfortunately, life has gotten more expensive recently. At some point I started looking at how much all of my software subscriptions were costing me. Sadly, Dropbox is among the most expensive items on that list.

Feature creep

Over time, I’ve seen Dropbox grow and introduce various new features, many of which I don’t use. Some of those features include: signatures, send & track, file requests, a special file vault, a password manager, document editor, and more.

Notice how there are a bunch of extra Dropbox apps, most of which I've never needed myself.
Notice how there are a bunch of extra Dropbox apps, most of which I've never needed myself.

Look, I’m not saying that people don’t use these features, or that these features are useless. I just don’t need them.

Not economical

Over time, my subscription has gotten more expensive and Dropbox does not offer smaller storage plans. This is probably because smaller storage plans are not economical, they don’t make sense when Dropbox has so many teams working on the product. I get it.

Unfortunately, with the addition of a new AI feature I’ve come to this point where I’m thinking: “why am I still giving these folks my money, when there are more affordable & focused alternatives?”.

There has been some confusion about users being automatically opted-in but since that appears to be a misunderstanding, I won’t hold that against them.

If you or your team is participating in the Dropbox AI alpha, the Third-party AI toggle in your account settings is turned On by default. Only the content relevant to an explicit request or command is sent to our third-party AI partners to generate an answer, summary, or transcript.

You know, this description doesn’t even sound that bad. I’m not against the use of LLMs and the like, but I think that this is the final feature that they’re rolling out that I don’t really need. (Dropbox has confirmed that the third-party is OpenAI.)

Too expensive

So, Dropbox is too expensive for what I use it for. I only use 10% of the storage cap (~200 GB out of 2 TB), and there are plenty of features they’ve rolled out that I don’t use at all.

Their services have gotten more expensive over the years, with no more affordable options for private customers like me. But, to be blunt, if that was the only problem, I would not be switching to a different platform.

Instead, they’ve attempted to push me towards Dropbox Professional with various emails and notices in the web client. This is also a contributing factor to why I’m very likely going to terminate my account when my subscription period ends.

You see, count this among some of the many annoyances I’ve experienced with their app and client over the years.

Annoyances

Here’s an example. I use the web client from time to time, as I keep a good chunk of my data unsynced. As I was taking screenshots for this post, I noticed something annoying.

The Dropbox web client displays an obvious “View upgrade options” link in the top-right corner of the screen. Why is that there? Why can I not dismiss this, or why is this not located in the menu that opens when I click on my profile picture?

Visually, I think Dropbox has done a good job. Their UI looks good. But look at all of those features I have no need for, that are just taking up space. I must admit, some of their file sync and recovery features are very solid... but Dropbox tries to be too many things.
Visually, I think Dropbox has done a good job. Their UI looks good. But look at all of those features I have no need for, that are just taking up space. I must admit, some of their file sync and recovery features are very solid... but Dropbox tries to be too many things.

Their new tracking and analytics feature that is also indicated as “new” also appears to be some sort of trial when I click on it. I also got an email about this feature as soon as I clicked on that feature… okay then.

Add to that the fact that the desktop client of Dropbox has annoyed me over the years that much that I briefly switched to an alternative client Maestral.

I eventually switched back to the official client when macOS changed their cloud syncing system and Dropbox finally got around to fixing their client. I shouldn’t have had to worry about this kind of stuff, frankly.

At the end of the day, I just need my files to sync across computers. I also need to be able to turn off the syncing of some folders on some of my devices, because I don’t need to download all 200 GB of data to all of my machines. That’s about it.

Does it make sense?

Once again, I would like to reiterate: I personally think that Dropbox has become too big and unwieldy. I feel it’s important to be respectful — Dropbox does not offer bad products (sold under the “Dropbox Plus” moniker) per se.

However, for an individual like me it doesn’t make sense in a world where Microsoft and Google have cheaper offerings with extra features that one might actually use:

  • Google lets you share the storage between its services (Gmail, Photos, Drive). Once you are a paid customer you also get a few extra perks.
  • Microsoft let you use their Office suite. In fact, the storage feature here is ancillary to the productivity tools that you’re getting. You’re probably looking for Office, and you just get OneDrive storage as part of the package.

Let’s be real: it’s far more likely that folks are using Microsoft Word, or Google Docs instead of Dropbox Paper. Many of the bonus features and apps that Dropbox is touting as useful features are probably not seeing a lot of use.

Evaluating alternatives

When it comes to this stuff, as a tech fiend, I’m certainly not your average person. The most obvious choices for cloud storage are the previously mentioned options by the big corps: Microsoft, Google and Apple.

Their cloud storage options are certainly not bad, but I’ve had the displeasure of using their desktop clients and I found something to dislike about all of them.

  • Google Drive and OneDrive feel a bit clunky and weren’t quite what I was looking for. Their plans are also tied to plenty of other services. I don’t need Microsoft Office or various premium Google features, I just need to sync my folder. (I also migrated away from Gmail for various reasons, so returning to Google would have been ironic.)

  • Apple’s iCloud Drive does actually work pretty well, but it wasn’t quite what I was looking for. In fact, iCloud Drive is a bit lacking in the features department, and the Windows client is an afterthought, which is fine. Granular control of whether files are downloaded or not on mobile (iOS) was a bit clunky when I last tested this. I actually do use iCloud Drive sometimes since I also pay 99 cents for 100 GB of storage, but I don’t use it frequently.

So, what options do I have? I took a look, and I decided on the other option that I was familiar with: Nextcloud. We’ve used it at work for quite some years now, actually. However, I wasn’t looking forward to having to manage my own file storage server, and managing backups.

So, I looked if there was some sort of managed option out there… and I ended up choosing the managed “storage share” option offered by Hetzner.

I’m already a satisfied Hetzner customer, and I was very happy to pay ~€65 per year instead of €120 without losing any features that I really need.

There was also the option of a storage box at Hetzner, but since I was already familiar with Nextcloud I decided that it was probably the best fit for me right now.

Enter Nextcloud

So, I’ve signed up for the storage share, and I’ve customized my Nextcloud installation. I’m pretty pleased with the result.

It took some time, but I’ve uploaded all of my key files. My Dropbox subscription will be terminated next March unless I discover an issue that prevents me from completing this transition.

Perhaps I’ll keep Dropbox around as redundancy storage for another year, who knows. But probably not.

So, let me tell you a little bit about my first impressions.

The desktop client

It’s simple, and that’s great. The desktop client does not contain any extra “convenience” features, so it does not exhibit any annoying behaviour: it doesn’t suggest backing up external drives whenever I plug one in, nor does it suggest uploading screenshots whenever I make one. It respects me.

(Yes, I know you can dismiss these alerts permanently and prevent them from showing in the future, but they always appear at an inconvenient time the first time they pop up.)

The client is simple and offers you all the basic toggles and options you’d expect. When I was uploading a ton of files, it was even able to automatically throttle upload speed to roughly 75% of the maximum after selecting that option.
The client is simple and offers you all the basic toggles and options you’d expect. When I was uploading a ton of files, it was even able to automatically throttle upload speed to roughly 75% of the maximum after selecting that option.

The client easily lets me pick which files and folders to sync, and gives me control over how sync behaviour works. It even lets me set (gasp) sensible upload and download bandwidth limits!

One point against Nextcloud is that its client does not support the virtual filesystem APIs introduced in recent macOS versions. I don’t mind this personally since right now there are no “placeholder” files, i.e. if a file is on the filesystem, it’s synced up. To me, that’s a plus, actually.

It’s obvious that the desktop client does not use native UI on macOS, but that’s not really my biggest concern. (I believe they use QT.) The client also runs on Linux, which is a plus as I’m using SteamOS on my Steam Deck, and it means I can sync some of my files automatically in desktop mode.

The essentials

The web client is fine. It’s no Dropbox in terms of polish and UX, but it lets me see my files (including deleted ones) without any issues. It’s also fairly quick. You can preview various types of files, as you’d expect.

For certain filetypes, it actually offers a superior experience to Dropbox: managing Markdown content is a much better experience in the web client of Nextcloud, for example. That’s a big plus for me!

This is what my personalized setup looks like. Super basic, and how I like it.
This is what my personalized setup looks like. Super basic, and how I like it.

Theming

Nextcloud also lets you customize its installation. I uploaded a logo or two, adjusted the theme color, and the app immediately blends in. It’s not a must, but it certainly is nice.

I can also customize the installation by shipping my own CSS which I can customize in the back-end. That’s nice, as it lets me hide stuff that I don’t need, if required.

These are the theming options. Upload a logo, change a theme color, add your own CSS…
These are the theming options. Upload a logo, change a theme color, add your own CSS…

Modular features

Nextcloud ships with a bunch of functionality by default, and one of the best things about the platform is that you can also add and remove individual features in a very modular way.

I’ve kept my installation very light, which is how I like it. But if you need some specific feature, there’s a good reason to suspect that it might exist as a separate add-on. You can explore the different apps here.

Nextcloud offers you a very simple UI to enable or disable installed features, and also to install or remove new ones.
Nextcloud offers you a very simple UI to enable or disable installed features, and also to install or remove new ones.

There’s even apps to help you manage budgets, add a cookbook, do email and calendaring… and more. That’s pretty dope. I don’t have any need for most of these features, but I might take a look at building my own app for the platform.

Integrating external apps: Aegis

One of the other roles that Dropbox played was that it was an external storage destination for some of my key server backups. Some years ago, I built Aegis, a small console app to shield you from data loss. Or, well, shield me from data loss.

It’s been chugging along for years now. I wanted to see if I could quickly make it compatible with Nextcloud. For Aegis, I’m using Flysystem for the filesystem interactions, so it was about as simple as setting up a WebDAV driver with my credentials:

private function getNextcloudFileSystem(): Filesystem
{
    $client = new Client([
        'baseUri' => config('NEXTCLOUD_BASE_URI'),
        'userName' => config('NEXTCLOUD_USERNAME'),
        'password' => config('NEXTCLOUD_PASSWORD'),
        'authType' => Client::AUTH_BASIC
    ]);

    $adapter = new WebDAVAdapter($client, 'remote.php/webdav/');

    return new Filesystem($adapter, ['case_sensitive' => false]);
}

Now, I can use this filesystem entry and transfer data. In short, my code does something like this (error handling omitted):

// We start with a temporary file that is already zipped
$stream = $filesystems['local']->readStream($tempFile);

// Timestamp the job archive
$path = "{$destinationFolder}/{$timestamp}-{$jobName}.tar.gz";

// Write the local file stream to the remote 
// (in this case `nextcloud`, but you can register multiple remotes)
$filesystems['nextcloud']->writeStream($path, $stream);

The actual implementation desperately needs a rework as it is old and was quickly built when I wasn’t thinking as clearly as I can today… it’s something I’ll be tinkering on soon.

I have a simple configuration file and a cron job that starts Aegis. Prior to starting Aegis, my Gitea instance’s repo data is also backed up, which is then also sent to my Nextcloud instance.

My jobs file looks a little bit like this:

jobs:
  website:
    source:
      name: local
      path: /var/www/nicoverbruggen.be
      exclude:
          - ./.git
          - ./vendor
          - ./node_modules
          - ./storage/framework
          - ./storage/debug
    destination:
      name: nextcloud
      path: /Apps/Aegis/site
  gitea:
    source:
      name: local
      path: /home/nico/backups/gitea
      exclude:
        - ./.git
    destination:
      name: nextcloud
      path: /Apps/Aegis/gitea

A cronjob is set to run every Sunday at midnight, and it runs this backup:

/home/nico/aegis/aegis /home/nico/aegis/jobs/nextcloud.yaml > /home/nico/aegis/nextcloud.log

Conclusion

So far so good! At the time of writing, most of my data has been transferred, and my experience with Nextcloud in general has been pretty positive.

I’m going to keep using this for the next two months and I might try out some other options in the meantime, but I think this is it for my cloud storage needs for the foreseeable future.

Tagged as: Software