Many years ago I already had look at OwnCloud, which was first released in 2010 and claimed to offer an alternative to commercial services like DropBox or Google. The idea was good, only the implementation and the security was lacking at the beginning, which had kept me back from permanent use.
For exchanging files I later discovered Seafile as an alternative. For addresses and appointments I used Baïkal to synchronize the data between my Android devices and different computers with CalDAV and CardDAV. Added to this is Roundcube as a webmail client with an extension for using the Baïkal address book via CardDAV.
Although this constellation basically worked, there were some drawbacks: a browser-based calendar does not exist at all and Baïkal has no longer being actively developed for some time – the latest version is from August 2016 (see release page at Github).
In the yeart 2016 the founder of OwnCloud, Frank Karlitschek, introduced a fork called “Nextcloud”, along with a newly formed company for corporate customer support. By now, Nextcloud has matured for nearly a year and a half and I have looked at what the current state is. The following report has been done over a longer period of time – originally I started with Nextcloud 12, but then the new version 13 was released before I finished my text.
Setting up the server
Although Nextcloud is based on PHP, only Linux is supported as server environment. Also the use of Apache or NGINX with PHP under Windows is not possible. The further requirements are documented in the detailed instructions. However clients are offered for several systems, specifically Windows, macOS, Linux, Android and iOS.
It is recommended to use a separate (sub-)domain and not in a subdirectory. The installation is quite unspectacular. After the latest version had been copied to the respective directory of the web server, only the start page in the browser had to be called and a user name and password had to be entered for to the administrative login. Afterwards Nextcloud is already usable, since for the database SQLite is used for which no special installation is necessary.
Changing from SQLite to MySQL/MariaDB
SQLite is not a stand-alone database system, it’s just a library that lets applications use databases in the form of individual files. This makes the creation of a database easier because the necessary files are generated automatically when needed and you do not need a database server. On the other hand it is problematic for larger environments. The more sensible option to use Nextcloud with multiple users is therefore MySQL/MariaDB.
The intended method for using MySQL/MariaDB is to migrate the existing SQLite database to a new database in MySQL/MariaDB according to the Nextcloud documentation. That worked for me as well without problems. After the migration the old SQLite database files in the data directory can be deleted.
First impressions of Nextcloud
The following screenshots have been created with a slightly customized installation of version 13. The original interface does not differ significantly. After the first logon, the setup wizard will be displayed, which also contains links to the various clients (the screenshot shows the German interface, but of English and many other languages are supported as well):
If necessary, you can open this assistant later at any time via the item “Sync Clients” in the personal settings. After closing the wizard, the regular interface with the file manager appears:
At the top you will find the installed “apps” as icons. Additional apps can be installed via the administration.
Without additional extensions, Nextcloud already has a file manager, address book, and calendar. All elements can be shared with other Nextcloud users (including federated servers) as well as publicly accessible links – with write access if desired.
File access is in principle also possible via WebDAV – however, the Nextcloud client is more useful here, as it provides automatic synchronization of files with a local folder and on smartphones also the automatic upload of pictures and videos taken with the camera.
For addressbook and calendar you can use CardDAV and CalDAV, which works fine on the desktop, for example with Thunderbird with CardBook and Lightning. For Android I recommend DAVDroid (also available on F-Droid). One can also use shared calendars and address books with other Nextcloud users, e.g. to plan appointments. The integration of public calendars that are offered as an ICS file, such as holiday lists or similar, is possible.
The topic of “security” is taken very seriously in Nextcloud, which is also documented on the Nextcloud website. Security updates can be installed through the web interface, and there is an integrity check after installation and for updates to ensure that there are no unwanted changes in the program code. At https://scan.nextcloud.com you can check your own Nextcloud installation for security issues that are externally visible, such as an outdated version or insecure server settings.
Clients are offered for Windows, macOS, Linux, Android and iOS. The variants for desktop systems focus on file synchronization, while mobile clients only allow access to individual files.
The mobile client for Android also supports the automatic upload of photos and videos taken with the camera. You can use different folders for photos and videos and also custom rules. I could not test the iOS myself, but here there is a comparable range of features. In the reviews of the Nextcloud app for Android you will find many critical voices that complain about the faulty auto upload feature. With the version 3.1.0, which I used, I did not experience such problems anymore. Since Nextcloud uses WebDAV for the transfer, you can use other programs, such as FolderSync, for this task if one of the Nextcloud clients is not sufficient.
Extending features with apps
An important point in Nextcloud is the extensibility with additional features through “apps”. Therefore in addition to file storage, calendar and address book there is also a video conferencing solution in the browser with “Talk” and office in the browser with “Collabora” or “Onlyoffice”. The installation of apps is quite convenient via the administrative settings in the web interface.
If there are updates available for Nextcloud itself or individual apps you will receive a notification.
Office in the browser
Similar to Google Documents, Nextcloud also offers the ability to edit Office documents (text, spreadsheets, presentations) directly in the browser with “Collabora” or “Onlyoffice”. The special thing about this is that several people can work simultaneously on one document and can see the actions of the others “live”.
It is also not necessary to save the document explicitly since every change is transferred to the server during the input and stored there. If necessary, you can always use older versions of the document in the file management of Nextcloud at any time.
Notes on the setup using Docker on your own server can be found here:
Collabora or Onlyoffice?
Collabora is based on “LibreOffice Online”. In fact LibreOffice runs on the server while the browser is only used to display the interface. This ensures high compatibility with existing documents, especially in Open Document format, but also requires a lot of communication between server and client. Also, the screen display is not always optimal at high pixel densities when the server generates only an unscaled representation as a bitmap. In addition only a part of the functions of LibreOffice can be used in the browser. After having frequent connection issues as well I considered “Onlyoffice” as an alternative and stuck with it.
Onlyoffice moves much more of the functionality to the browser and uses the server mainly for data exchange with other users working on the same document. As a result fewer resources are required on the server side and the display in the browser is always “native”, so that the scaled resolution of 4K screens is also used. Onlyoffice is also open source like Collabora. The sources are available at Github.
Functionally, the editors of Onlyoffice (as of Server 5.1 CE and app version 1.3.0 for Nextcloud) are quite comparable to desktop applications and definitely a serious alternative to Google Docs. The focus of Onlyoffice is on the compatibility with Microsoft Office, even if you can generally open LibreOffice files as well. However if you want to edit documents, a conversion to the OOXML format is absolutely necessary, which Onlyoffice does automatically after displaying a confirmation request. But since LibreOffice can also read OOXML, that’s not really a big problem – especially as all users involved can work directly in the browser anyway, if necessary.
Overall, the current implementation of the interface in OnlyOffice seems much more mature than Collabora and it now also offers the ability to share documents as public links for reading or editing. Just keep in mind that you have to expect some deviations in the formatting when using LibreOffice on the desktop to edit these documents.
By the end of 2018 Nextcloud and Onlyoffice announced a partnership. Meanwhile the desktop version of Onlyoffice also supports accessing Nextcloud including the collaborative features. See more in my article about this.
Administration and user management
The administration mainly takes place in the browser, but there are some tasks that require the command line tool “occ”.
Users can be assigned to groups and will only see other people included in the same groups. As a result Nextcloud is also suitable for providing services to several separate groups of people at the same time.
A big strength of Nextcloud is the ability to share information with others. You can share files, folders, calendars or address books with other Nextcloud users, but also as public links, similar to Dropbox or Google Drive. Depending on the type of shared file and the required application, it is also possible to directly view or modify the shared file it in the browser – such as office documents with Onlyoffice, PDF files or image galleries. Calendars can also be made available for public read access, even embedded in a website.
With the “Talk” app you can do video conferencing directly in the browser, even with guests. The technical basis for this is WebRTC.
For the synchronization of files Nextcloud uses only the WebDAV protocol so far. This is perfectly sufficient for a smaller number of file and has always worked reliably with me.
However this can be problematic if you are either dealing with many files (several thousand) or very large files that are changed more frequently, since block level matching as in Dropbox or Seafile, is not used. Changes cause always the while files to be transferred again. That works well, but sometimes takes a long time. For me that’s not a problem, but if you want to keep containers of virtual drives in this way, you might want to use another solution.
Currently I use Nextcloud on my server for myself and more than 10 other users with Linux, Windows, macOS, Android and iOS. Often more than 3-4 people are connected at the same time. So far, there were no serious problems and also the update from version 12 to version 13 worked well. Minor problems had been resolved very quickly and you get the impression that the team members of the project have a great interest in developing a good solution.
In April 2018 it was announced that the German federal administration will use Nextcloud for the file exchange in the context of their “federal cloud”, as Golem had reported (sorry, only available in German) – for me also a confirmation that Nextcloud has become a serious solution.
Update 2020-09-25: beware of the “Onlyoffice Community Server”!
A while ago the team of Nextcloud decided to build their own “Community Server” for Onlyoffice based on the AGPL version of the Onlyoffice document server.
It seems that this version is not very reliable and tends to lose data since changes are not getting written back to the files stored in Nextcloud.
When you consider using OnlyOffice I strongly recommend to only use the official Docker image or a dedicated server!