Installing and testing Nextcloud

Slashdot it! Delicious Share on Facebook Tweet! Digg!
©Sergey Nivens,

©Sergey Nivens,

Next Up

Leading ownCloud developers, including the project founder Frank Karlitschek, became dissatisfied with the direction of the project, so they started Nextcloud, a fork of the code and a new company. The goal is to create a better balance among the company, clients, and users. We take a look at how Nextcloud is faring.

The free cloud storage software ownCloud has blossomed over the past years into a serious competitor for commercial services like Dropbox and Google Drive. Users wanting to take responsibility for storing their own data can enjoy convenient and frequent synchronization between computers and mobile devices by using a small server fitted with an ownCloud package. NAS device users often find it easy to install ownCloud packages in the official, and sometimes also unofficial, package sources of their system.

However, the ownCloud success story met with a serious setback at the end of last April. The ownCloud founder Frank Karlitschek [1] and a number of the original developers all left the project to pursue development of an ownCloud fork, which they call Nextcloud [2]. Jos Poortvliet, who was previously the community manager for ownCloud and is now responsible for communication for Nextcloud, refers to the undertaking as a "re-start." According to Karlitschek and Poortvliet, the new start was prompted by dissatisfaction arising out of structural problems and various business decisions occurring within the ownCloud organization.


To carry out this endeavor, Nextcloud is cooperating with Spreed.ME [3], a company that sells a computer named Spreedbox [4], which has a pre-installed video conferencing solution that combines a WebRTC server with ownCloud. Karlitschek and Niels Mache lead the new organization. Before joining Nextcloud, Mache was responsible for Spreed.ME. He was also a co-founder of Red Hat Germany. The goal of the new project is to expand the web application significantly beyond its core functionality and integrate something like the WebRTC server from Spreed and its accompanying application. Additionally, the project officially wants to maintain and support frequently used ownCoud applications, like the calendar and contact administration. They also have plans to cooperate with LibreOffice collaborative editing of office documents in the browser.

The current state of Nextcloud 9.0.50 is not very different from the most recent version of ownCloud (see the "Next- vs. ownCloud" box). Frequently, you can use the directions for installing ownCloud when installing Nextcloud. For my tests, Nextcloud shows what it can do on a system with an Ubuntu server 16.04 with Apache and MariaDB, which was previously known as MySQL. Port forwarding from the router makes it possible to access the home server through the Internet. A free SSL certificate from Let's Encrypt [5] protects the privacy of the user data as it traverses the Internet.

Next- vs. ownCloud

The current version of Nextcloud is still largely based on ownCloud 9. A write-only function is one example of the improvements that have already been been built into the fork. Write-only capability lets anonymous users upload data into the cloud, even though they themselves do not have access to files and directories that exist there. Likewise new is the log function that captures events such as a file release, update, or login. The developers also report that they have hardened the software to withstand attacks, and various bugs have been fixed.


Before beginning installation of Nextcloud, update the system package sources and install all available updates for the distribution (Listing 1); then, it is time to install the Apache web server and MariaDB, plus all of the Apache and PHP extensions that are needed for the service (Listing 2). Afterward, you should activate the Apache module mod_rewrite for readable URLs and mod_headers for the SSL connection. Next, you should start the web server and let it cycle through one time (Listing 3). Theoretically, SQLite would suffice, but MySQL/MariaDB is recommended for a larger installation when more than two or three users will have access.

Listing 1

Update Your System!

$ sudo apt update
$ sudo apt full-upgrade

Listing 2

Preinstall Packages

$ sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-json php-mysql php-curl php-intl php-mcrypt php-imagick php-xml php-zip php-mbstring

Listing 3

(Re)Start Apache

$ sudo a2enmod rewrite
$ sudo a2enmod headers
$ sudo service apache2 restart

The MariaDB database server, based on the MySQL project, requires a little bit of extra work (Listing 4) involving setting a root password (not to be confused with the root password for the Linux system). The mysql_secure_installation script makes for a secure installation. It requires that you enter the current SQL root password. In the example, the password after running the first command would be secret , although it can be changed easily in the installation script. As a rule, all of the other questions can be answered with Y .

Listing 4

Setting up MariaDB

$ sudo mysql -u root
MariaDB [(none)]> update mysql.user set password=password(,secret') where user='root';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
$ sudo mysql_secure_installation
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): secret
Change the root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Now all that is missing from Nextcloud is a database to organize the data in the cloud. To create a database, you log in again on the MariaDB server and then use Listing 5, together with suitable rights and settings, to set up the database.

Listing 5

Set up Nextcloud Database

$ sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE nextcloud;
MariaDB [(none)]> CREATE USER ,nextcloud'@'localhost' IDENTIFIED BY ,secret';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO ,nextcloud'@'localhost';
MariaDB [(none)]> exit;

Buy this article as PDF

Express-Checkout as PDF

Pages: 7

Price $0.99
(incl. VAT)

Buy Ubuntu User

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Perfect setup and installation of ownCloud 9

    ownCloud makes it possible to operate a private cloud on an intranet of almost any size. All you need is a standard LAMP environment, which comes with almost every Linux server.

  • Pydio is a free cloud solution

    Most cloud solutions for small networks are based on ownCloud or, less frequently, Seafile. Pydio is the third open source product trying to gain a foothold as a cloud solution.

  • Container Management with Docker

    Docker is an economical alternative to conventional virtualization. Because each Docker containers share the underlying operating system, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient.

  • Convenient private cloud with Seafile

    After the Prism and Tempora revelations, the writing's on the wall: Your data stored on public clouds isn't safe from the clutches of security agencies. Help can come only from a self-administered solution – yet Seafile provides a simple and ingenious approach.

  • KDE and the Cloud: ownCloud

    A KDE project, the ownCloud initiative is a web storage app that is developed by the KDE community.