The Nextcloud Box: a review of building an IoT device with snaps
Tags: cloud , developers , IoT , Snap , snapcraft , Snaps , Ubuntu Core
In 2016, Canonical, Nextcloud and WDLabs introduced the Nextcloud Box, the first IoT style device running with snaps out of the box. Besides sales of nearly 2K boxes before Western Digital shut down their research division WDLabs late last year, the snap been extremely popular with some days hitting over 10,000 downloads. Its installed base is estimated to be over 8000, making it a popular way to run a private cloud. Read our guest blog by Nextcloud’s Jos Poortvliet on to learn more about Nextcloud, the Box and how snaps help thousands of Nextcloud users keep their data under their control.
Nextcloud offers a self-hosted file sync and share solution combining the convenience and ease of use of consumer technologies like Dropbox and Google Drive with the security, privacy and control businesses, providers and home users need. Users gain access to their documents and can share them with others at home, within and outside their organisation with an easy to use web interface or clients for Windows, Mac, Linux, Android and iOS. Nextcloud also features Calendar, Contact, Mail, Online Office, private audio/video conferencing and other collaboration capabilities, with many more provided by a healthy ecosystem with over 100 apps developed by a variety of third parties.
But self-hosting is a challenge and not one every user is up to. Actually, very few are. When we started Nextcloud in 2016, we saw this as a major concern and sought solutions.
Introducing a Nextcloud snap: The Nextcloud Box
Together with Western Digital, we came up with the idea to develop an appliance, the Nextcloud box, that would give home users with little technical knowledge an easy way to run their private cloud. It consisted of a hard drive, cables and a case, to be completed with a Raspberry Pi. But it needed an operating system. Something secure, something easy to use. Something that doesn’t require users to go in and run updates from a command line! Ubuntu Core with snaps was the obvious solution.
Snaps provide what an appliance needs: unattended running & updates, keeping the device secure at all times without forcing users to learn how to administer a Linux system.
Together with help from the Ubuntu community and Canonical engineer Kyle Fazzari we quickly got a snap together for the Nextcloud box, enabling us to go to market in a record time. This is certainly a testament of how easy snaps are!
You can watch a webinar about the quick go-to-market with Snaps for the Nextcloud Box here.
But there was a bigger role for snaps to be had. While they provide a great solution for unattended IoT style devices, snaps are also very suitable to ease deployment and management on ‘normal’ Linux systems.
First of all, snaps solve the cross-distribution conundrum with normal packages – the main reason Nextcloud normally only produces zip files with the raw source code. There are several reasons for us not doing packaging, from the difficulty of doing it right to the problem that users often prefer packages to be part of the distribution. And those would end up quickly out-of-date as distributions tend to have relatively slow release cycles which rarely matches with what our users actually want. We don’t provide security fixes for releases older than about 8-12 months which also is a problem for distributions with a very long release cycle. Snaps solve this by working cross-distribution.
Second, snaps lower the barrier to use immensely by providing a pre-setup solution. Rather than needing to do the research to pick a web server, database, etc. before getting to a working Nextcloud install, the user is immediately handed a Nextcloud that works, follows best-practices, and is automatically updated. On top of that, the Snap Store makes it easier for users to discover the snap and get it installed.
Last but not least: snaps make maintenance easier. We leave the entire setup of the system to our users and have a built-in updater that makes it easy to keep Nextcloud itself updated. But the rest of the system still has to be maintained by the admin. Snaps feature an easy, reliable, built-in update mechanism.
Getting the most out of snaps
To give our users choice, we offer the various release channels (edge/beta/candidate/stable) in the store and utilise multiple tracks as well. This tends to change as releases occur; an up-to-date view of the current release strategy can be seen here. As of today, we utilise edge, beta, candidate, and stable, as well as 11/edge, 11/stable, 12/edge, 12/stable, and 13/edge.
All in all, snaps made the Nextcloud Box possible, and for that alone, we are huge fans. But above and beyond that, it lowers the barrier to use for Nextcloud users on every system and users appreciate this greatly.
IoT as a service
Bring an IoT device to market fast. Focus on your apps, we handle the rest. Canonical offers hardware bring up, app integration, knowledge transfer and engineering support to get your first device to market. App store and security updates guaranteed.
IoT app store
Build a platform ecosystem for connected devices to unlock new avenues for revenue generation. Get a secure, hosted and managed multi-tenant app store for your IoT devices.