Installing Nextcloud

From Sympl Wiki
Revision as of 16:07, 2 January 2020 by Kelduum (talk | contribs)
Jump to navigation Jump to search
This article is Beta Documentation. It may have missing elements, or be unclear in places.
Please feel free to make corrections or amendments, or ask for help on the Sympl Forum

Nextcloud is an open-source file hosting platform, similar to commercial services such as DropBox.

This guide is aimed at the novice user, but will result in a Nextcloud install. If you run into any issues, please post on the Sympl Forum and we should be able to help.

You will need

  1. A server running Sympl
    • A basic server with 1GB of RAM, 1 core and 10GB or more of disk space should suffice for a basic install, but you will likely want more disk space available, so a dedicated server may be a better option.
    • If you already have a server running Sympl, you can use that.
  2. Basic familiarity with SSH
    • This can be done via the VGA/VNC console, but it's easier to copy and paste over SSH.
    • MacOS and Linux have built-in SSH clients. PuTTY is a popular SSH Client on Windows.
  3. A domain name to host the site on
    • You can use any domain you have access to, but will need to point DNS records to the server for it to be publicly visible.
    • If you're testing, you can edit your hosts file to test before updating the DNS.

Installing Nextcloud

In the guide below, we'll be setting up the site 'example.com', using a database called ncexample. Simply substitute domain name and database name for something that makes sense to you.

  1. Log into your server as the sympl user.
  2. Install the required php-zip and php-apcu packages then restart Apache, with sudo apt-get -y install php-zip php-apcu ; sudo service apache2 reload.
  3. If you haven't already done so, create the new site with sympl create web example.com. Remember that you don't need to add the 'www.' on the start of the domain.
    • If you already have a site set up, then you'll need to move/disable the old site with sympl disable web example.com
  4. Download the automatic installer script into the webspace with wget https://download.nextcloud.com/server/installer/setup-nextcloud.php -O /srv/example.com/public/htdocs/setup-nextcloud.php
  5. Create a database for Nextcloud, with sympl create database ncexample. This will create a database called wpexample with a matching user. Make a note of the password.
  6. Browse to http://example.com/setup-nextcloud.php
    1. Admin username and password to suit. You can change these later.
    2. Database user: ncexample
    3. Database password: Use the password provided in step 5. If you lost it, you can run cat /home/sympl/mysql_ncexample_password to output it.
    4. Database name: ncexample
    5. Database host: localhost
  7. Adjust the PHP Memory limit with echo php_value memory_limit 512M >> /srv/example.com/public/htdocs/.htaccess
  8. Enable PHP caching for improved performance with sed -i "s|^);| 'memcache.local' => '\\\\OC\\\\Memcache\\\\APCu',\n);|" /srv/example.com/public/htdocs/config/config.php

You may now log in and set an email address for your newly created admin user, and make changes to suit.

Things to know

Nextcloud limits access to the domain it was installed with, so a subdomain or similar won't be trusted by default. If you want to add more domains to the trusted list, you will need to edit the configuration and update the 'trusted_domains' array. See the Nextcloud documentation for info on how to do this.

Available updates for Nextcloud will be shown at the top of the page for admin users, can can be done via the web updater.

If the site is newly created, then Sympl will automatically retrieve an SSL certificate once DNS is pointing to it. You can force this with sudo sympl-ssl --verbose example.com.