Skip to content

Nextcloud, Your Private All-In-One Cloud

Private cloud vs Public cloud Private cloud vs Public cloud

Nextcloud is a free, open-source cloud platform packed with numerous features: file storage and sync, photos, contacts, calendars, task lists, video calls, web mail, and much more. While Nextcloud is a convenient all-in-one package, it might not be the fastest or lack specific features. In that case, consider exploring purpose-built alternatives like Seafile for file sync, Piwigo for photo galleries, Radicale for contacts, calendars, and tasks, or Jellyfin for media streaming. The choice is yours!

This chapter assumes you’ve already set up your home server with basic and advanced security measures, including secure remote access.

I don't want to self-host Nextcloud. Are there hosted solutions?

Absolutely! Many Nextcloud providers handle the technical and security aspects for you. Just keep in mind that you entrust them with your data:

Nextcloud Hosting Nextcloud Pricing & Storage
Hetzner 1 TB for 5 EUR/year.
Zaclys 1 GB for free. 5 GB for 5 EUR/year. 10 GB for 10 EUR/year.
Disroot cloud 1 GB for free. 5 GB for 9 EUR/year. 10 GB for 18 EUR/year.
Framadrive 2 GB for free. Subscriptions might be frozen.
Kitten services Various options.

Database

Nextcloud can be deployed with diverse databases like MySQL, MariaDB, PostgreSQL or SQLite. This tutorial focuses on generating MySQL databases for Nextcloud's server components.

Step-by-step guide

Log into MySQL as root:

sudo mysql -u root -p

Run the command below to create the MySQL user nextcloudadmin (adjust accordingly). Make sure to replace the string StrongPassword with a strong, unique password:

CREATE USER 'nextcloudadmin'@'localhost' IDENTIFIED BY 'StrongPassword';

Next, generate the database required by Nextcloud and grant correct permissions:

CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloudadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Log back into MySQL as the nextcloudadmin user (adjust accordingly):

sudo mysql -u nextcloudadmin -p

Make sure the database has been created correctly:

SHOW DATABASES;

The output should look similar to this:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)

Exit MySQL:

EXIT;


Nextcloud install

Installation

Resolve all dependencies and install Nextcloud on your Ubuntu 24.04 server.

Step-by-step guide

Prerequisites

Nextcloud requires PHP to run. Check which version is installed on your system:

php -v

One of the previous chapters on server hardening covered how to deploy and secure PHP 8.3 which, at the time of writing, is included by default in Ubuntu's 24.04 repositories. This should already cover some of Nextcloud's main software dependencies.

Install some additional PHP modules:

sudo apt install php8.3-{apcu,bcmath,bz2,ctype,curl,dom,exif,fileinfo,gd,gmp,igbinary,imagick,intl,ldap,mbstring,mysql,opcache,posix,redis,simplexml,xml,xmlreader,xmlwriter,zip}
sudo apt install ffmpeg imagemagick exiftool libapache2-mod-php8.3

Installation

Download and decompress the latest Nextcloud package:

wget -4 https://download.nextcloud.com/server/releases/latest.tar.bz2
sudo tar -xvf latest.tar.bz2 -C /var/www/

Create a data directory:

sudo mkdir /var/www/nextcloud/data

Set and verify the right permissions:

sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod -R 755 /var/www/nextcloud/
sudo ls -al /var/www/


What does Nextcloud do

Web Interface

Set up an Apache Virtual Host as a Reverse Proxy to access the Nextcloud web interface via a custom address and shield the server from direct internet exposure. Read on below for more details.

Step-by-step guide

Create an Apache configuration file:

sudo vi /etc/apache2/sites-available/nextcloud.gofoss.duckdns.org.conf

Add the following content and make sure to adjust the settings to your own setup, such as domain names (nextcloud.gofoss.duckdns.org), path to SSL keys, IP addresses and so on:

<VirtualHost *:80>

    ServerName              nextcloud.gofoss.duckdns.org
    ServerAlias             www.nextcloud.gofoss.duckdns.org
    Redirect permanent /    https://nextcloud.gofoss.duckdns.org/

</VirtualHost>

<VirtualHost *:443>

    ServerName              nextcloud.gofoss.duckdns.org
    ServerAlias             www.nextcloud.gofoss.duckdns.org
    ServerSignature         Off

    <IfModule security2_module>
        SecRuleEngine Off
    </IfModule>

    SSLEngine               On
    SSLProxyEngine          On
    SSLProxyCheckPeerCN     Off
    SSLCertificateFile      /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem
    SSLCertificateKeyFile   /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem
    DocumentRoot            /var/www/nextcloud/

    <Location />
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 192.168.1.0/24
        Allow from 10.8.0.1/24
    </Location>

<Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
</Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud.gofoss.duckdns.org-error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud.gofoss.duckdns.org-access.log combined

</VirtualHost>

Once the content is added, save and close the file (:wq!).

Note how we enable SSL encryption for Nextcloud with the instruction SSLEngine On, and use the SSL certicate fullchain.pem as well as the private SSL key privkey.pem, which were created earlier on.

Also note how we disabled ModSecurity in the Apache configuration file with the instruction SecRuleEngine Off, as Nextcloud and ModSecurity don't play well together.

Next, enable the Apache Virtual Host and reload Apache:

sudo a2ensite nextcloud.gofoss.duckdns.org.conf
sudo systemctl reload apache2

Configure Pi-Hole to resolve Nextcloud's local address. Browse to https://mypihole.gofoss.duckdns.org:8443/admin and log into Pi-Hole's web interface (adjust accordingly). Navigate to the menu entry Local DNS Records and add the following domain/IP combination (adjust accordingly):

DOMAIN:      nextcloud.gofoss.duckdns.org
IP ADDRESS:  192.168.1.100

Complete the setup by browsing to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly) and performing the following steps:

Steps Description
Create an admin account The administrator has privileged rights: create/delete users, install apps, configure settings, and so on. This account shouldn't serve for everyday use, but rather for administrative purposes. Provide the required credentials:
• Username: Provide a username for the admin account
• In this example, we'll use nextcloudadmin@gofoss.net (adjust accordingly)
• Password: `Provide a strong, unique password
Storage & database Specify the data directory:
• Data folder: /var/www/nextcloud/data (adjust accordingly)

Configure the MySQL database:
• Select the tab MySQL/MariaDB
• Database user: Provide the MySQL username
• In our example, it's nextcloudamdin (adjust accordingly)
• Database password: Provide the MySQL password
• In our example, it's StrongPassword (adjust accordingly)
• Database name: Provide the database name
• In our example, it's nextcloud (adjust accordingly)
• Database host: Provide the database host address
• In our example it's localhost (adjust accordingly)
Finish • Click on Install
• Click on Cancel on the Recommended apps screen
• Additional apps can be added later on, as needed
• The Nextcloud Dashboard should show up
Verification Back in the server terminal, check if everything went well with the following commands:
sudo -u www-data php /var/www/nextcloud/occ -V
sudo -u www-data php /var/www/nextcloud/occ status

Admins & users need a VPN access

All users must be connected to the server via VPN to access Nextcloud.


Is Nextcloud free

Performance & Security

Improve Nextcloud's performance by automating background tasks, storing frequently accessed objects in memory, pre-generating previews when the system is idle, shortening Nextcloud's URLs, and removing default templates.

Step-by-step guide

Set up a cron job:

sudo -u www-data crontab -e

Add the following line:

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Press CTRL+C to save the file, and CTRL+X to exit.

Finally, make sure Nextcloud uses cron to execute background jobs:

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net (adjust accordingly)
Check cron job • Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Administration ‣ Basic Settings
• Select Cron

Enable opcache for faster execution of PHP scripts:

sudo vi /etc/php/8.3/apache2/php.ini

Modify or add the following parameters:

[opcache]
opcache.enable=1
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.max_wasted_percentage = 15
opcache.validate_timestamps = 1
opcache.revalidate_freq = 1

Install redis to enable faster data caching:

sudo apt install redis-server php-redis

Make sure redis is running (the status should be Active):

sudo systemctl status redis

Open the Nextcloud configuration file:

sudo vi /var/www/nextcloud/config/config.php

Modify or add the following lines:

'filelocking.enabled' => true,
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
),

Save and close the file (:wq!). Then, reload Apache:

sudo systemctl restart apache2

Install the Preview Generator app:

  • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
  • Log in with the super admin account, in our example that's nextcloudadmin@gofoss.net (adjust accordingly)
  • Click on the profile picture in the top right corner
  • Click on +Apps
  • Use the Looking Glass icon in the top bar to search for Preview Generator
  • Click on Download and enable

Log into the server with the admin account and install further dependencies:

sudo apt install libreoffice ffmpeg imagemagick ghostscript

Open the Nextcloud configuration file:

sudo vi /var/www/nextcloud/config/config.php

Modify or add the following lines:

'enable_previews' => true,
'preview_libreoffice_path' => '/usr/bin/libreoffice',
'enabledPreviewProviders' =>
 array (
    0 => 'OC\\Preview\\TXT',
    1 => 'OC\\Preview\\MarkDown',
    2 => 'OC\\Preview\\OpenDocument',
    3 => 'OC\\Preview\\PDF',
    4 => 'OC\\Preview\\MSOffice2003',
    5 => 'OC\\Preview\\MSOfficeDoc',
    6 => 'OC\\Preview\\PDF',
    7 => 'OC\\Preview\\Image',
    8 => 'OC\\Preview\\Photoshop',
    9 => 'OC\\Preview\\TIFF',
    10 => 'OC\\Preview\\SVG',
    11 => 'OC\\Preview\\Font',
    12 => 'OC\\Preview\\MP3',
    13 => 'OC\\Preview\\Movie',
    14 => 'OC\\Preview\\MKV',
    15 => 'OC\\Preview\\MP4',
    16 => 'OC\\Preview\\AVI',
),

Save and close the file (:wq!).

Adjust the preview settings for better performance:

sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="32 256" previewgenerator squareSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="256 384" previewgenerator widthSizes
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value="256" previewgenerator heightSizes

Open the Nextcloud configuration file:

sudo vi /var/www/nextcloud/config/config.php

Modify or add the following lines:

'preview_max_x' => '2048',
'preview_max_y' => '2048',
'jpeg_quality' => '60',

Save and close the file (:wq!). Then, restart Apache:

sudo systemctl restart apache2

Generate previews for existing files. This can take some time, you might want to step out for a coffee or ice cream:

sudo -u www-data /usr/bin/php /var/www/nextcloud/occ preview:generate-all -vvv

Finally, set up a cron job to automatically generate previews for new files:

sudo -u www-data crontab -e

Add the following line:

*/10 * * * * /usr/bin/php -f /var/www/nextcloud/occ preview:pre-generate

Press CTRL+C to save the file, and CTRL+X to exit.

Run the following commands to remove the string index.php from Nextcloud links:

sudo -u www-data php /var/www/nextcloud/occ config:system:set htaccess.RewriteBase --value="/"
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
sudo systemctl restart apache2

Run the following commands to remove unused template files:

sudo rm -r "/var/www/nextcloud/core/skeleton/Documents/"
sudo rm "/var/www/nextcloud/core/skeleton/Nextcloud Manual.pdf"
sudo rm "/var/www/nextcloud/core/skeleton/Nextcloud intro.mp4"
sudo rm "/var/www/nextcloud/core/skeleton/Nextcloud.png"
sudo rm -r "/var/www/nextcloud/core/skeleton/Photos/"
sudo rm "/var/www/nextcloud/core/skeleton/Reasons to use Nextcloud.pdf"
sudo rm -r "/var/www/nextcloud/core/skeleton/Templates/"


Is Nextcloud free storage

Users

Nextcloud distinguishes between three user types. Super administrators get full access to add, edit, and remove users, install add-ons or configure system settings such as password policy, two-factor authentication and so on. In our example, the super administrator nextcloudadmin@gofoss.net was established during the initial setup. Group administrators can add, edit and remove users in their assigned groups. Users, on the other hand, have restricted access.

Step-by-step guide

Create at least one user, it's not recommended to rely on the administrator account for daily use:

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
Add user • Click on the profile picture in the top right corner
• Click on Users
• Click on Menu ‣ + New user
Configure user Fill in the required information: username, display name, password (can be changed by the user at a later stage), email, storage quota and so on. Optionally, you can assign users to specific groups; they'll have access to all files shared within these groups.

By default, Nextcloud's web interface detects the language corresponding to the user's browser or system settings. To manually select the preferred language:

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the users account
Select language • Click on the profile picture in the top right corner
• Click on Settings
• Adapt the Language and Locale settings

By default, users are free to choose any password. Enforce strong passwords:

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
Password policy • Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Administration ‣ Security
• Define the password policy: minimal password length, expiration period, maximum login attemps, use of upper and lower case, numeric as well as special characters, and so on.

Two-factor authentication (2FA) is an optional feature to further increase Nextcloud's security. If enabled, logging into Nextcloud requires a password as well as a code generated by an app on the user's phone.

First, a Nextcloud super administrator needs to enable 2FA:

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
Install TOTP • Click on the profile picture in the top right corner
• Click on +Apps
• Search for the Two-Factor TOTP Provider app
• Click on Download and enable
Enforce 2FA • Optionally, the super administrator can enforce 2FA for all users or specific groups
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Administration ‣ Security
• Select Enforce two-factor authentication

Next, users can (or must) configure 2FA. This also applies to Nextcloud administrators:

Instructions Description
Log in Log into Nextcloud's web interface https://nextcloud.gofoss.duckdns.org/ (adjust accordingly).
Enable TOTP • Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Click on Enable TOTP
Verify • Open a TOTP app on the user's phone, e.g. andOTP
• Scan the QR code displayed by Nextcloud with the TOTP app
• Enter the code generated by the TOTP app into Nextcloud's web interface
• Click on Verify
Backup codes • Backup codes allow to recover access to Nextcloud without the TOTP app
• In Nextcloud's Web Interface, click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Click on Generate backup codes
• Store them safely, for example in your password manager

Admins & users need a VPN access

All users must be connected to the server via VPN to access Nextcloud.


Nextcloud email

Apps

Access a wide variety of add-ons through Nextcloud's app store: contacts, calendars, task lists, video calls, web mail, and more.

Step-by-step guide

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net (adjust accordingly)
Install apps • Click on the profile picture in the top right corner
• Click on +Apps
• Use the Looking Glass icon to search for an app
• Click on Download and enable
Update apps • Click on the profile picture in the top right corner
• Click on +Apps
• Click on Update all on top of the page
Remove apps • Click on the profile picture in the top right corner
• Click on +Apps
• Click on Disable: this disables apps without removing them
• Alternatively, click on Remove: this completely removes apps

Nextcloud App Description
Nextcloud Ubuntu Nextcloud Calendar Manage your events.
Nextcloud vs Owncloud Nextcloud Contacts Manage your contacts.
Install Nextcloud Ubuntu Nextcloud Audio Player Stream your music.
Backup photos from phone Nextcloud Photos & Memories Organize your photos.
Nextcloud install Ubuntu Nextcloud Talk Chat and organise video & voice calls.
nextcloud eu commission microsoft teams Nextcloud Keeweb Manage your passwords.
Nextcloud mail Nextcloud Ownpad Collaborate on text documents.
nextcloud european commission microsoft onedrive teams Nextcloud Bookmarks Manage your bookmarks.


Move off the cloud with nextcloud

Clients

You can log in through a browser to Nextcloud's web interface to navigate folders, upload, edit, and download files, and share data. Nextcloud natively supports Microsoft and LibreOffice file formats, along with videos, pictures, PDFs, and text files. Changes made in Nextcloud's web interface reflect across all synced devices.

Nextcloud's Desktop Synchronization Client ensures selected files and folders stay in sync across connected devices.

Windows

Instructions Description
Installation • Download the latest .msi package of Nextcloud's Desktop Synchronization Client for Windows
• Follow the installation wizard
Log in • Click on Log in to your Nextcloud
• Enter the URL of your Nextcloud server
• In our example, that's https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Hit Next
• A browser window will pop up
• Log into Nextcloud using your username and password
• If enabled, also provide two-factor authentication
• Grant access
Sync folder • Select a local folder to be synched with the cloud
• Select which files and directories should be kept in sync
• Hit Connect

macOS

Instructions Description
Installation • Download the latest .pkg package of Nextcloud's Desktop Synchronization Client for macOS
• Follow the installation wizard
Log in • Click on Log in to your Nextcloud
• Enter the URL of your Nextcloud server
• In our example, that's https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Hit Next
• A browser window will pop up
• Log into Nextcloud using your username and password
• If enabled, also provide two-factor authentication
• Grant access
Sync folder • Select a local folder to be synched with the cloud
• Select which files and directories should be kept in sync between the client and the server
• Hit Connect

Linux (Ubuntu)

Instructions Description
Installation • Open a terminal
• Install the Nextcloud Desktop Synchronization Client for Ubuntu:
sudo apt install nextcloud-desktop
Log in • Launch the Nextcloud Client Ubuntu
• Enter the URL of your Nextcloud server
• In our example, that's https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Hit Next
• A browser window will pop up
• Log into Nextcloud using your username and password
• If enabled, also provide two-factor authentication
• Grant access
Sync folder • Select a local folder to be synched with the cloud
• Select which files and directories should be kept in sync between the client and the server
• Hit Connect

Access and manage your files on smartphones and tablets with Nextcloud’s official mobile app or one of the many third party apps.

Android

Setting Description
Installation • Open F-Droid
• Install the official Nextcloud application
• Alternatively, install Nextcloud via the Aurora Store or Google's Play Store
Log in • Provide the address of the Nextcloud server
• In our example, that's https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Log into Nextcloud using your username and password
• If enabled, also provide two-factor authentication
• Confirm to grant access

iOS

Setting Description
Installation • Install Nextcloud's official app via the App Store
Log in • Provide the address of the Nextcloud server
• In our example, that's https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Log into Nextcloud using your username and password
• If enabled, also provide two-factor authentication
• Confirm to grant access


Self-hosted cloud

Files

Effortlessly create or modify files and folders using Nextcloud through the browser. Changes made in Nextcloud's web interface reflect across all synced devices.

Step-by-step guide

Instructions Description
Sign in • Sign into your Nextcloud server to get started
• In our example, that's https://nextcloud.gofoss.duckdns.org (adjust accordingly)
Create files & folders • Select the Files app in the top bar
• Browse to the target folder
• Click on + button
• Upload files from your computer, create a new text file or a new folder
• Changes will be synchronised to the Nextcloud server, as well as any connected device
Edit files & folders • Select the Files app in the top bar
• Browse to the target folder
• Preview, edit, rename or delete files and folders as required
Share files & folders Sharing:
• Select the Files app in the top bar
• Browse to the target file or folder
• Click on the Share icon

Public links:
• Click on + Share link
• Click on the 3-dot menu
• Specify additional options: read/write permissions, passwords or expiration dates

Internal shares:
• Select other Nextcloud users you want to share files & folders with.
• Click on the 3-dot menu
• Specify additional options: read/write permissions or expiration dates

Effortlessly create or modify files and folders using Nextcloud's Desktop Client. The client ensures that any local changes are automatically synced to the Nextcloud server and other connected devices, and vice versa. Operating in the background, the program can be accessed conveniently from the system tray.

Step-by-step guide

Instructions Description
Sync / Unsync files & folders Sync:
• Right-click on the Nextcloud system tray icon
• Select Settings
• Select folders to be downloaded from the server to the local storage
• From now on, any modification to local files will be mirrored to the server, and vice versa

Unsync:
• Click on the 3-dot menu
• Select Remove folder sync connection
• Local files remain in place
• However, modifications will no longer be mirrored to the server, and vice versa

Unsync & delete:
• Uncheck folders to completely stop syncing and delete local files
Share files & folders Sharing:
• Windows & macOS: the Nextcloud Client automatically integrates with the file manager
• Linux: an additional package needs to be installed to allow file sharing (e.g. nautilus-nextcloud for Ubuntu)

Public links:
• Right-click on the file or folder
• Select Nextcloud ‣ Share options ‣ + Share link
• Specify additional options: read/write permissions, passwords or expiration dates

Internal shares:
• Right-click on the file or folder
• Select Nextcloud ‣ Share options
• Select other Nextcloud users to share files & folders with
• Specify additional options: read/write permissions or expiration dates
Adjust settings • Right-click on the Nextcloud system tray icon
• Select Settings ‣ General
• Configure settings: automatically launch Nextcloud on startup, show/hide notifications, automatically check for updates, and so on
Sync status The Nextcloud Desktop Client displays various icons to indicate the sync status of files and folders:

Public vs private cloud services Files synchronised, server connection established.

What is a private cloud Synchronisation in progress, server connection established.

What is private cloud Synchronisation paused, server connection established.

What is the private cloud Server connection lost.

Nextcloud docker New notification available.

Owncloud vs Nextcloud Login error.

Use Nextcloud's mobile apps to navigate through folders and upload, edit or download files.

Step-by-step guide

Instructions Description
Create files & folders • Click on the + button to upload files or create new files & folders
View & edit files & folders • Click on files to open them on your phone
• Click on the 3-dot menu to rename, move, copy or delete files & folders
Share files & folders Share:
• Click on the Share icon

Public links:
• Select Share link
• Click on the 3-dot menu to specify additional options: read/write permissions, passwords or expiration dates

Internal shares:
• Select other Nextcloud users to share files & folders with
• Specify additional options: read/write permissions or expiration dates

Users need a VPN access

All users must be connected to the server via VPN to access files on the Nextcloud.


Which is better Owncloud or Nextcloud

Contacts

Install the Contacts app from the Nextcloud App Store to import, create and synchronise contacts via the web interface.

Step-by-step guide

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
Install Contacts app • Click on the profile picture in the top right corner
• Click on +Apps
• Search for Contacts
• Click on Download and enable

Instructions Description
Transfer contacts • Export your contacts from devices & cloud services in the vCard format (.vcf)
• Transfer all .vcf files to your computer
Sign in • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
Import contacts • Select the Contacts app in the top bar
• Open the left sidebar
• Click on Settings
• Click on Import contacts
• Upload .vcf files stored on your computer

Instructions Description
Sign in • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
Create contacts • Select the Contacts app in the top bar
• Open the left sidebar
• Click on + New contact

Nextcloud's Contact app makes sure that your contacts remain synchronised across all connected Windows, macOS or Linux (Ubuntu) devices.

Windows

Instructions Description
Copy URL • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Contacts app in the top bar
• Open the left sidebar
• Click on Settings
• Click on the 3-dot menu next to the address book
• Select Copy link
Add account • Launch the Windows Calendar app
• Select Settings ‣ Manage accounts ‣ Add account ‣ iCloud
• At this stage, provide random credentials
• These settings will be adjusted later on
• Click on Sign in
• Click on Done
Paste URL • Select the newly created account
• Click on Change settings ‣ Change mailbox sync settings
• Select Advanced mailbox settings
• Paste the previously copied URL in the Contacts server (CardDAV) field
• Click on Done
Connect without two-factor authentification • Enter your Nextcloud username and password
• Select an account name
• Click Save
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "Windows Contacts" in the App name field
• Hit Create new app password
• Go back Advanced mailbox settings in Windows
• Enter your Nextcloud username
• Enter the app password (not your Nextcloud password)
• Select an account name
• Click Save

macOS

Instructions Description
Connect without two-factor authentication • Select System Preferences ‣ Internet Accounts ‣ Add Other Account ‣ CardDAV Account
• Select Account Type Manual
• Provide your Nextcloud username
• Provide your Nextcloud password
• Provide your server address, e.g. https://nextcloud.gofoss.duckdns.org
• Click on Sign In
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "macOS Contacts" in the App name field
• Hit Create new app password
• On the macOS device, select System Preferences ‣ Internet Accounts ‣ Add Other Account ‣ CardDAV Account
• Select Account Type Manual
• Provide your Nextcloud username
• Provide the previously generated App Password (not your Nextcloud password)
• Provide your server address, e.g. https://nextcloud.gofoss.duckdns.org
• Click on Sign In

Linux (Ubuntu)

Instructions Description
Copy URL • Sign into the Nextcloud web interface
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Contacts app in the top bar
• Open the left sidebar
• Click on Settings
• Click on the 3-dot menu next to the address book
• Select Copy link
Install Thunderbird For detailed instructions on how to install Thunderbird, refer to the previous chapter on email clients
Install Cardbook • Open Thunderbird
• Navigate to Tools ‣ Add-ons
• Install the Cardbook extension
• Restart Thunderbird
Connect without two-factor authentication • Navigate to Cardbook ‣ Address book ‣ New Address Book
• Location: Remote
• Type: CardDAV
• URL: Paste the previously copied URL
• Username: Provide your Nextcloud username
• Password: Provide your Nextcloud password
• Properties: Provide the adress book's name, color, offline availability, etc.
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "Thunderbird Contacts" in the App name field
• Hit Create new app password
• Open Thunderbird
• Navigate to Cardbook ‣ Address book ‣ New Address Book
• Location: Remote
• Type: CardDAV
• URL: Paste the previously copied URL
• Username: Provide your Nextcloud username
• Password: Provide the previously generated App Password (not your Nextcloud password)
• Properties: Provide the adress book's name, color, offline availability, etc.
Finalise the setup Make sure everything works. Nextcloud's address book should show up in the CardBook tab.

Nextcloud's Contact app makes sure that your contacts remain synchronised across all connected Android or iOS devices. More details below.

Android

Instructions Description
Install DAVx⁵ DAVx⁵ natively integrates with your device's calendar, contact & task apps to keep them synchronised with Nextcloud
• Install DAVx⁵ from F-Droid
• Alternatively, install the app from Aurora Store or Google's Play Store
Launch DAVx⁵ • Open the DAVx⁵ app
• Disable battery optimisation when prompted
Create new account • Tap on the + sign to create a new account
• Select Login with URL and user name
Base URL • Sign into the Nextcloud web interface
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Contacts app in the top bar
• Open the left sidebar
• Click on Settings
• Click on the 3-dot menu next to the address book
• Select Copy link
• Switch back to the DAVx⁵ app on your phone
• Paste the URL you've just copied in the field Base URL
User & Password • Provide your Nextcloud user name
• Provide your Nextcloud password
Contact group method • Select Groups are separate VCards
Create account • Click on Create account
Synchronise contacts • Navigate to the CardDAV tab
• Select Nextcloud's address books to be synced with the phone
Finalise setup • Make sure everything works
• Open your phone's contact management app and click on Settings ‣ Accounts
• Nextcloud's address books should show up here

iOS

Instructions Description
Sync contacts • Open the Settings application
• Select Contacts ‣ Accounts ‣ Add Account
• Select Other as account type
• Select Add CardDAV account
• Provide the address of your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Provide your Nextcloud username
• Provide your Nextcloud password
• Select Next
Finalise setup • Make sure everything works
• Open your phone's address book
• Your Nextcloud contacts should show up here

Users need a VPN access

All users must be connected to the server via VPN to access contacts on the Nextcloud.


What does Nextcloud run on

Calendars

Install the Calendar app from the Nextcloud App Store to import, create and synchronise calendars via the web interface.

Step-by-step guide

Instructions Description
Log in • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
Install Calender app • Click on the profile picture in the top right corner
• Click on +Apps
• Search for Calendar
• Click on Download and enable

Instructions Description
Transfer calendars • Export your calendars from devices & cloud services in the iCalendar format (.ics)
• Transfer all .ics files to your computer
Sign in • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
Import calendars • Select the Calendar app in the top bar
• Open the left sidebar
• Click on Calendar settings
• Click on Import calendar
• Upload the .ics files stored on your computer

Instructions Description
Sign in • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
Create events • Select the Calendar app in the top bar
• Open the left sidebar
• Click on + New event

Nextcloud's Calendar app makes sure that your calendars remain synchronised across all connected Windows, macOS or Linux (Ubuntu) devices.

Windows

Instructions Description
Copy URL • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Calendar app in the top bar
• Open the left sidebar
• Click on Calendar settings
• Click on Copy iOS/macOS CalDAV address
Add account • Launch the Windows Calendar app
• Select Settings ‣ Manage accounts ‣ Add account ‣ iCloud
• At this stage, provide random credentials
• These settings will be adjusted later on
• Click on Sign in
• Click on Done
Paste URL • Select the newly created account
• Click on Change settings ‣ Change mailbox sync settings
• Select Advanced mailbox settings
• Paste the URL copied previously in the Calendar server (CalDAV) field
• Click on Done
Connect without two-factor authentification • Enter your Nextcloud username and password
• Select an account name
• Click Save
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "Windows Calendars" in the App name field
• Hit Create new app password
• In Windows, go back to the Advanced mailbox settings menu
• Enter your Nextcloud username
• Enter the app password (not your Nextcloud password)
• Select an account name
• Click Save

macOS

Instructions Description
Connect without two-factor authentication • Select System Preferences ‣ Internet Accounts ‣ Add Other Account ‣ CalDAV Account
• Select Account Type Manual
• Provide your Nextcloud username
• Provide your Nextcloud password
• Provide your server address, e.g. https://nextcloud.gofoss.duckdns.org
• Click on Sign In
• Select the Calendars application
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "macOS Calendars" in the App name field
• Hit Create new app password
• On the macOS device, select System Preferences ‣ Internet Accounts ‣ Add Other Account ‣ CalDAV Account
• Select Account Type Manual
• Provide your Nextcloud username
• Provide the previously generated App Password (not your Nextcloud password)
• Provide your server address, e.g. https://nextcloud.gofoss.duckdns.org
• Click on Sign In
• Select the Calendars application

Linux (Ubuntu)

Instructions Description
Copy URL • Sign into your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Calendar app in the top bar
• Open the left sidebar
• Click on Calendar settings
• Click on Copy iOS/macOS CalDAV address
Install Thunderbird For detailed instructions on how to install Thunderbird, refer to the previous chapter on email clients
Connect without two-factor authentication • Open Thunderbird
• Navigate to Menu ‣ New ‣ Calendar
• Select On the Network
• Click Next
• Username: Provide your Nextcloud username
• Location: Paste the previously copied URL
• Offline support: Check the box
• Click on Find Calendars
• Password: Provide your Nextcloud password
• Calendar Type: Select CalDAV (don't select iCalendar!)
• Properties: Provide the calendar's name & color, enable reminders, associate an email address to manage invitations, etc.
• Click on Subscribe
Connect with two-factor authentication • Sign into your Nextcloud Web Interface
• Click on the profile picture in the top right corner
• Navigate to Settings ‣ Menu ‣ Personal ‣ Security
• Enter "Thunderbird Calendars" in the App name field
• Hit Create new app password
• Open Thunderbird
• Navigate to Menu ‣ New ‣ Calendar
• Select On the Network
• Click Next
• Username: Provide your Nextcloud username
• Location: Paste the previously copied URL
• Offline support: Check the box
• Click on Find Calendars
• Password: Provide the previously generated App Password (not your Nextcloud password)
• Calendar Type: Select CalDAV (don't select iCalendar!)
• Properties: Provide the calendar's name & color, enable reminders, associate an email address to manage invitations, etc.
• Click on Subscribe
Finalise the setup Make sure everything works. Nextcloud's calendar should show up in the Calendar tab.

Nextcloud's Calendar app makes sure that your calendars remain synchronised across all connected Android or iOS devices.

Android

Instructions Description
Install DAVx⁵ DAVx⁵ natively integrates with your device's calendar, contact & task apps to keep them synchronised with Nextcloud
• Install DAVx⁵ from F-Droid
• Alternatively, install the app from Aurora Store or Google's Play Store
Launch DAVx⁵ • Open the DAVx⁵ app
• Disable battery optimisation when prompted
Create new account • Tap on the + sign to create a new account
• Select Login with URL and user name
Base URL • Sign into the Nextcloud web interface
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Calendar app in the top bar
• Open the left sidebar
• Click on Calendar Settings
• Click on Copy iOS/macOS CalDAV address
• Switch back to the DAVx⁵ app on your phone
• Paste the URL you've just copied in the field Base URL)
User & Password • Provide your Nextcloud user name
• Provide your Nextcloud password
Contact group method • Select Groups are separate VCards
Create account • Click on Create account
Synchronise calendars • Navigate to the CalDAV tab
• Select Nextcloud's calendars to be synced with the phone
• Click on the Sync calendar button
Configure calendar app • Install and open the Fossify Calendar app
• If you use another calendar app, the following instructions might slightly change
• Open the app and click on Settings
• Make sure the option CalDAV sync is enabled
• Click on Manage synced calendars
• Nextcloud's calendars should show up here
• Select Nextcloud's calendars and click on OK

iOS

Instructions Description
Sync calendars • Open the Settings application
• Select Calendar ‣ Accounts ‣ Add Account
• Select Other as account type
• Select Add CalDAV account
• Provide the address of your Nextcloud server
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Provide your Nextcloud username
• Provide your Nextcloud password
• Select Next
Finalise setup • Make sure everything works
• Open your phone's calendar application
• Your Nextcloud calendars should show up here

Users need a VPN access

All users must be connected to the server via VPN to access calendars on the Nextcloud.


What is Nextcloud used for

Photos

Install the Memories app from the Nextcloud App Store to manage and sync photos across devices.

Step-by-step guide

Instructions Description
Install Memories • Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net (adjust accordingly)
• Click on the profile picture in the top right corner
• Click on +Apps
• Search for Memories
• Click on Download and enable
Generate metadata • Log into the server with the admin account
• In our example that's gofossadmin, adjust accordingly
• Run sudo -u www-data /usr/bin/php /var/www/nextcloud/occ memories:index
Define photo directory • Sign into your Nextcloud web interface
• E.g. https://nextcloud.gofoss.duckdns.org (adjust accordingly)
• Select the Memories app in the top bar
• Set the directory containing your photos
• Photos from this directory & its subdirectories will be displayed in the timeline

Users need a VPN access

All users must be connected to the server via VPN to access photos on the Nextcloud.


Is Nextcloud free vs paid

Upgrades

Nextcloud's upgrade process is mainly manual and things can go wrong. Don't take any chances, back up your data! Read on below for more detailed instructions.

Step-by-step guide

Instructions Description
Data backup • Sync all your files and folders to a device
• Back up your data
Database backup • Back up Nextcloud's database using MySQL dump
• Alternatively, create server backups: Nextcloud's MySQL database is usually stored in /var/lib/mysql
Configuration backup • Back up Nextcloud's configuration files
• Directly log into the server with the admin account
• In our example that's gofossadmin, adjust accordingly
• Run the following commands:
cd /var/www/nextcloud
sudo tar -xfv ~/nextcloud-config-backup.tar.gz config/

Instructions Description
Disable 3rd party apps • Disable all 3rd party apps
Launch updater • Directly log into the server with the admin account
• In our example that's gofossadmin, adjust accordingly
• Run the following commands:
cd /var/www/nextcloud
sudo -u www-data php updater/updater.phar --no-interaction
Run post-upgrade routine • Once the updater is finished, run the following commands:
cd /var/www/nextcloud
sudo -u www-data php occ upgrade

• Browse to https://nextcloud.gofoss.duckdns.org/ (adjust accordingly)
• Log in with the super admin account
• In our example that's nextcloudadmin@gofoss.net, adjust accordingly
• Click on Settings ‣ Overview
• Check the Nextcloud version
Enable 3rd party apps • Enable 3rd party apps again


Does Nextcloud have unlimited storage

Support

For further details, refer to Nextcloud's server manual, user manual or community.