Four years of Nextcloud
I'm a few weeks late on celebrating Nextcloud's four year anniversary, but I'm doing it anyway! My how time flies. I became a part of the ownCloud community back in 2012. Heck, you can still find blog posts about how I ran it on this very blog if you scroll down far enough. Then, in 2015, I saw the post about the Western Digital/ownCloud collaboration on what would eventually become the Nextcloud Box. But I'm getting ahead of myself.
The timing was excellent. We at Canonical were busy developing Ubuntu Core and snaps, and I had just recently joined the team responsible for developing snapcraft, the tool that creates snaps. I thought "What better way to learn the ins and outs of what I'm making than to participate in this competition!" So a few ownCloud community members and I worked on exactly that. It was ultimately selected as the platform to ship on the Box, just in time to lose every contact I had at ownCloud.
I was disappointed. I assumed the project was dead. Then I heard from my friends, and was told about Nextcloud. And they retained the Western Digital contacts, who now wanted to continue the project with them!
I was excited. Within days of Nextcloud making their first release I had created a Nextcloud snap. You can still use Nextcloud v9 today, in fact:
$ sudo snap install nextcloud --channel=9
I'll always have fond memories of those pixelated clouds.
I was very happy with it. A one-line installation method for a production-ready Nextcloud. Let's Encrypt integration. Everything. Despite being created to enable the Nextcloud Box, we made sure that it worked on all architectures, so folks could run it wherever they wanted to.
Before too long, the Nextcloud Box became a reality, becoming a joint project between Nextcloud, Western Digital Labs, and Canonical (where Canonical was maintaining the image). At that time, we were actually having to patch Nextcloud to make it work the way we needed it to. We had tried upstreaming that patch to ownCloud, but they turned it down. Which means if you look at the config file you'll see a dirty little secret:
* Nextcloud doesn't support hosting the config file out of the application, so
* this version of Nextcloud has been patched slightly to allow for it. As a
* result, we fail the integrity check, so we'll just disable it.
'integrity.check.disabled' => true,
Which I why I remember the Nextcloud v10 release so well: Nextcloud didn't have the same problem with that patch, and as of v10 we no longer needed to patch it, and could re-enable the integrity check!
$ sudo snap install nextcloud --channel=10
That was a solid release, but it wasn't long before v11 was released with all sorts of security features and a preview of what was to become Nextcloud Talk in a few years:
$ sudo snap install nextcloud --channel=11
There was a lot of similarity between versions 9, 10, and 11, but a ton of new development went into version 12. That was great, but it also meant that a number things broke in version 12. Snaps automatically update, and this is when we really took ownership of that responsibility. We decided we weren't cool automatically breaking people. We've continued that attitude today, so if you've wondered why the snap lags upstream occasionally, that's why. Anyway, eventually the issues were resolved, and we got everyone onto v12:
$ sudo snap install nextcloud --channel=12
This release finally got rid of that dual menu setup (app menu on the left, settings/users on the right) and unified them really nicely:
Version 12 is still one of my favorite releases simply because no new major releases came out for almost a year. Sadly, it was also during this timeframe that Western Digital Labs shut down, thus ending the Nextcloud Box, and thus officially turning the Nextcloud snap into a personal project for me. Despite that, we settled into a groove of maintenance, and our userbase (and group of testers, who are amazing) grew significantly.
Version 13 saw quite a leap in functionality and design:
$ sudo snap install nextcloud --channel=13
For example, this is where Nextcloud Talk officially made its debut. It's also where they got rid of those pixelated clouds and replaced them with a nice abstract banner:
It was only a few months before the update drum started for v14, which came with all sorts of stuff like SMS 2FA and GDPR compliance:
$ sudo snap install nextcloud --channel=14
Nextcloud 15 took that even further:
$ sudo snap install nextcloud --channel=15
This is the release that added support for my beloved Yubikey, U2F, and TOTP. This is also where they introduced Nextcloud Social for a federated social network.
Nextcloud 16 came with a much-improved Nextcloud Talk, as well as more fine-grained permissions by way of an access control list:
$ sudo snap install nextcloud --channel=16
Version 17 is where the remote wipe functionality made its debut, and the shiny new Text app was introduced as the default text editor:
$ sudo snap install nextcloud --channel=17
Nextcloud 18 saw a slight rebranding. They started calling it Nextcloud Hub, and made it super easy to preinstall "recommended" apps, which included Only Office for collaborative document editing:
$ sudo snap install nextcloud --channel=18
And now we come to current day, version 19, where they switched to Collabora for collaborative document editing instead of Only Office:
$ sudo snap install nextcloud --channel=19
Along with Nextcloud 19, we at Canonical have started the Ubuntu Appliance portfolio, which includes Nextcloud. This is essentially a bring-your-own-box Nextcloud Box: an image with the Nextcloud snap already on there, waiting to be flashed onto a Raspberry Pi or a NUC or something. As soon as it's flashed and booted, you have a Nextcloud install.
Anyway, I hope this brief walk through history was interesting. Note that all the snap tracks used here will be open forever, so you're welcome to use even the first Nextcloud, but as a general rule of thumb, only the two most recent major releases are actually supported and receive updates. Of course, if you just want the latest stable version, you don't need to specify a track at all:
$ sudo snap install nextcloud
It's been a good four years. Here's to many more!