Author: Humphrey MpairweLast Updated: Fri, Sep 16, 2022
NextCloud is an open-source, self-hosted file management application that lets you create, edit, host, and share files without limitations. This article explains how you can install NextCloud on a Ubuntu 22.04 server with Snap and secure the application for production use.
Snaps are Linux packages that are easy, quick, and dependency-free to install on a server. The NextCloud Snap package consists of the following components:
By default, the Snap daemon is active on most Ubuntu server distributions. In any case, install it using the following command.
$ sudo apt install snapd
Verify the installed snap version.
$ sudo snap version
snap 2.57.1 snapd 2.57.1 series 16 ubuntu 22.04 kernel 5.15.0-41-generic
$ sudo snap install nextcloud
Verify that NextCloud is successfully installed
$ sudo snap list
NextCloud files are all stored in the
/snap/nextcloud/current/htdocs/ directory, and the configuration file in the
/var/snap/nextcloud/current directory. To enable NextCloud access on your domain name, include it in the trusted domains array of the configuration file.
First, configure Uncomplicated Firewall (UFW) to allow HTTP network traffic on the server port
$ sudo ufw allow 80/tcp
Allow HTTPS on port
$ sudo ufw allow 443/tcp
Restart the Firewall.
$ sudo ufw reload
To activate the NextCloud database and configuration file values, visit your Server IP using a web browser.
Enter a username and strong password to create the first administrator account, and click Install.
Close the web browser and switch to your server console.
Using a text editor of your choice, edit the main NextCloud configuration file.
$ sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php
Find the "trusted_domains' =>` section, and replace the Server IP with your domain name as below.
'trusted_domains' => array ( 0 => 'nextcloud.example.com', ),
Save and close the file.
Install a Let's Encrypt SSL certificate to secure your NextCloud server with HTTPS by running the following command.
$ sudo nextcloud.enable-https lets-encrypt
Your output should look like the one below.
In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. 2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. 3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)
Enter `y' to accept all SSL certificate requirements, enter your email address, then enter your domain name.
Restart NextCloud to load changes.
Using a web browser of your choice, visit your server domain name.
Login using the administrator username and password you created earlier to access the NextCloud dashboard.
You have installed NextCloud on a Ubuntu 22.04 server using Snap. Please refer to the following articles to power up your NextCloud server with more features.