Nextcloud, Your Private All-In-One 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;
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/
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.
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 Glassicon in the top bar to search forPreview 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/"
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.
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 Calendar | Manage your events. | |
| Nextcloud Contacts | Manage your contacts. | |
| Nextcloud Audio Player | Stream your music. | |
| Nextcloud Photos & Memories | Organize your photos. | |
| Nextcloud Talk | Chat and organise video & voice calls. | |
| Nextcloud Keeweb | Manage your passwords. | |
| Nextcloud Ownpad | Collaborate on text documents. | |
| Nextcloud Bookmarks | Manage your bookmarks. |
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 |
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: |
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.
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.
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.
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.
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 |
Support¶
For further details, refer to Nextcloud's server manual, user manual or community.