59.1 Nextcloud Installation


A personal nextcloud server can be deployed on Ubuntu 20.04 LTS running on a Digital Ocean server costing $5 per month with some 20GB for data storage (100GB is an additional $10 per month). See Chapter 4 for details on standing up a Ubuntu server.

For your own domain like example.com set up nextcloud.example.com as an external reference (A record) on your DNS with the IP address of your server. If you have only an IP address and no domain name have a look at Section 58.18.

Connect to the server and prepare it for running Nextcloud:

$ ssh root@nextcloud.example.com
# apt update
# apt upgrade
# apt install python3-pip
# pip3 install wajig
# adduser ktw
  New password: 
  Retype new password: 
# usermod -aG sudo ktw
# ufw allow OpenSSH
# ufw allow 80,443/tcp
# ufw enable
  Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
  Firewall is active and enabled on system startup
# rsync --archive --chown=ktw:ktw ~/.ssh /home/ktw
$ ssh ktw@nextcloud.example.com
$ sudo reboot

Now connect as the user ktw to the server and install Nextcloud and all of its dependencies:

$ ssh ktw@nextcloud.example.com
$ sudo snap install nextcloud
  nextcloud 20.0.2snap2 from Nextcloud installed
$ sudo nextcloud.manual-install ktw <password>
  Nextcloud was successfully installed
$ sudo nextcloud.occ config:system:set trusted_domains 1 --value=nextcloud.example.com
  System config value trusted_domains => 1 set to string nextcloud.example.com
$ sudo nextcloud.enable-https lets-encrypt
  Please enter an email address (for urgent notices or key recovery): ktw@example.com
  Please enter your domain name(s) (space-separated): nextcloud.example.com
  Attempting to obtain certificates... done
  Restarting apache... done

Move data store to the additional storage (removable device):

$ sudo snap connect nextcloud:removable-media
$ sudo mkdir -p /mnt/volume_sgp1_02/nextcloud
$ sudo snap stop nextcloud
$ sudo editor /var/snap/nextcloud/current/nextcloud/config/config.php
    'datadirectory' => '/var/snap/nextcloud/common/nextcloud/data',
    'directory' => '/mnt/volume_sgp1_02/nextcloud/data',
$ sudo mv /var/snap/nextcloud/common/nextcloud/data /mnt/volume_sgp1_02/nextcloud
$ sudo snap start nextcloud

Then visit https://nextcloud.example.com to login to the nextcloud server. A nextcloud client can run on your laptop or desktop or mobile device to synchronise data and other services across all your devices.

Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0