Nextcloud is a very popular self-hosted alternative to Dropbox, Google Drive, and other cloud hosting providers. It's not only the go-to choice for individuals, either. Nextcloud has a number of enterprise-level deployments.
Given the above, we decided to install Nextcloud on a Linode Dedicated CPU and see just what it would take to configure it to use Linode's new NVMe-backed block storage. This article was the result.
Watch the video version of this article:
The first challenge is setting up an instance of Nextcloud. There are any number of ways to do this: One could install and configure a web server and a PHP environment by hand. This has the advantage of low overhead, but will mean that you'll need to harden your Linode against common Nextcloud and PHP vulnerabilities. Plus, it will require you to apply any optimizations like Redis or other such memcaches yourself.
Alternatively, you could pull down a premade Docker image from Nextcloud which should handle a lot of these things itself. But Docker can be a rather cumbersome tool and that still leaves a ton of configuration for you to do with reverse proxies.
There's also the Nextcloud snap package, however I wouldn't touch that with a ten foot pole.
Finally, after some waffling, I decided to go with Linode's One Click installer. A pre-made image of Debian 10 that automatically provisions everything you'll need to run a Nextcloud instance. Even going so far as to do some basic hardening, such as installing Fail2Ban to protect against bruteforce attacks.
The process couldn't be simpler. Open up the Linode Cloud Manager and select Marketplace on the left hand side of the screen. Then select Nextcloud from the list of available applications. Fill in your information like the Nextcloud administrative username and password, then the database password. Choose a datacenter, then choose a password for your OS. Finally, click "Create" and wait for the Linode to provision and the Nextcloud install script to finish.