Tek's Domain

#<NTA:NnT:SSrgS:H6.6-198:W200-90.72:CBWg>

Goodbye Drobpox, Out of the Way MEGA, Here Comes Nextcloud

Updated May 4th, 2021

So you know what Dropbox is, right? Free cloud storage. Put your files in Dropbox, and they’re available anywhere, shareable to anyone, if you want. Sounds cool, right? What about Mega? (Or MEGA?) Or Google Drive? Or Microsoft OneDrive?

Well, let me introduce you to my newest cool thing: Nextcloud.

Sure, Dropbox is cool, just… for me, 2.25 GB of space is kinda limiting. MEGA, which does better here, at 50 GB on the free plan, and has a pretty good stance on privacy and, overall, is a service that I do very much agree with, still isn’t perfect.

See, for me, I like to do as much as I can by myself. And short of always carrying around a pile of USB flash drives on my keychain, there’s no way to have my data accessible anywhere on any device, if I so wish.

Well, welcome to Nextcloud.

Nextcloud, a very popular package, is built on the exact same premise, with one change: it can be run locally, I have it running on a stock available FreeNAS plugin. As long as it’s on my servers, not only is there no such thing as a paid plan since… it’s my stuff, it also means that I can use as much space as I physically have allocated. Terabytes of storage, anywhere!

Did I also mention that it has WebDAV support? For those unaware: WebDAV means that I can mount A web URL as a network filesystem. Instead of just one folder that has to sync up, that folder is my account. Plus, two extensions, CalDAV and CardDAV, mean that, if you have it installed and configured right, your task list, calendar appointments, and even contacts list can be synchronized, to another device. Something like DAVx5 can be used on Android to manage that.

Now, yes, I know, this is not for everyone. I’m not saying you should set aside enough space and enough networking knowledge to set it up, I’m just saying that, for me, there’s something that I like better… and I’m going to use it.

Nextcloud originally started life as a package called ownCloud, but the original developers and maintainers eventually split off into the Nextcloud fork that’s still very actively maintained to this day.

At it’s core, Nextcloud can be a full productivity suite, since it has individual ‘apps’ that can be installed, like OpenOffice integration, a Matrix client, federation, recipe manager, task list, mail client, you get the idea. The primary ‘app’ is Files, where you… put files. But additional apps offer additional features, as you might guess. They’re pretty simple to install, if you have admin rights, just go to the apps menu, and click the install button. Nextcloud is, at it’s core, a bunch of PHP scripts and APIs,1 and a database. Additional components can do almost whatever they like with that.

Each instance can have multiple users, with different quotas and permissions, but you can also integrate with any LDAP (or ActiveDirectory) server if you so wish. You can also configure external storage in addition to external users like that, pulling from, say, an S3 bucket which just shows up as a folder.

Speaking of folders, files and folders can either be shared internally, dropping the shared contents into someone else’s UI with an icon showing the owner, or, given a public link that can be used to access it from anywhere, assuming your server is publicly accessible on the internet (and what’s the point of setting one up if it’s not available on the internet from anywhere you can be?) There’s lots of apps to extend sharing too, and, by default, you can share across instances since, did I mention federation? It’s actually pretty cool. Folders can even have a GitHub / GitLab style Readme.md document in them, which the UI will render before the file listing, as a description of what that directory is for.

And finally, there’s apps for desktop and mobile. The mobile app is mostly a file browser, like the web interface itself, but it can also be used to sync certain files locally. The desktop apps are just sync clients, making X folder in Nextcloud available in Y place on the computer it’s installed on. There are additional mobile apps for Nextcloud Talk (chat), Nextcloud Deck (Kanban-style task manager), and, well, you get the point. Once again, mirroring the functionality of other similar solutions like MEGA and Dropbox.

So really, it doesn’t matter what you want to do, store files, (video and/or text) chat with users, have a multi-account mail client, common calendar, accress book, task list, kanban board, bookmarks, music player, cookbook, password manager, RSS feed aggregator, GPS log viewer… Nextcloud has you covered. In the self-hosted world, Nextcloud is the software package that’s recommended for ‘cloud storage’ since it’s just so extensible and runs well. Sure, you need to set up a MySQL or PostgreSQL database, and, as I learned from personal experience, trying to migrate from one host to another can be utterly catastrophic unless you take some precautions, but on the whole it’s super friendly and easy to use for what it is. And if you don’t like trusting someone else to hold your data, you can always set one up yourself. It even supports full server-side encryption if you want to enable that, though you’ll have a little performance hit.

And one final afterword, Joplin (at the time of writing) can sync your notes to Nextcloud. There’s an (unmaintained) “Joplin Web API” app that allowed for quicker sync and sharing notes locally between users, but that’s all being deprecated in favor of the dedicated Joplin Server at some point. Until then though, you can use your Nextcloud to keep your notebooks in sync too, if you use Joplin for note-taking.

1. And you can tell its heritage through those APIs: they all use the OC namespace, for ownCloud↩︎