- 1 Situation
- 2 Nextcloud Server Setup
- 3 Nextcloud Client Setup
- 4 Applications
- 5 External links
Today, computer work is not limited to a single machine. People have the urgent need to share their data over various computers, ie. desktop computers, laptops, mobile phones and such. For that a so called cloud-solution is very helpful.
Many people use tools or sites like Dropbox, OneDrive, Google Drive, Facebook, twitter etcetera. These solutions however are not good for your privacy and you lose control over your own data.
openSUSE believes it is important to protect your privacy and security and the solution for that is Free software. Something which protects both your content and is trust-worthy (source is available and can be modified).
Nextcloud is the next generation Enterprise File Sync & Share that was started by ownCloud inventor Frank Karlitschek to empower users to take back control over their data and communication. It runs on your computer, in your home network or on your web space with minimal requirements. First and foremost it allows you to store files on it and access it from everywhere you have access to the web. It is compatible with most platforms (Win/Mac/Linux/most mobile phones) without requiring you to install anything.
But there are more features: Nextcloud provides you with a media player, calendaring and contact management and with a desktop client you can automate your file backups.
If you want to test Nextcloud, you can check the demo instance at Nextcloud Demo Page
Nextcloud Server Setup
There are several options to easily set up and integrate Nextcloud with openSUSE distributions.
Install the Nextcloud package
The easiest option is to install Nextcloud package from OBS repositories. There are packages available for openSUSE Leap 15.0, 42.3 and Tumbleweed. You should be an administrator, so you can install Nextloud on your server. This will install a basic Nextcloud installation using mariaDB. It is highly recommended you configure mariaDB for use with Nextcloud over SQLite. SQLite will work but it will not work efficiently.
Set up and configure LAMP Stack
Ensure that the LAMP Stack is properly installed and configured. Follow the instructions on that page before proceeding.
Configure MariaDB for Nextcloud
Nextcloud will need to have a MariaDB user. Log into MariaDB
mysql -u root -p
Enter your MariaDB password
Create the Nextcloud database. Enter the line exactly as displayed, including the semicolon.
create database nextcloud;
Create the Nextcloud user with a password of your choice
create user nextclouduser@localhost identified by 'some-password-here';
Grant the needed privileges of nextclouduser to the database nextcloud with the password of your choice.
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'some-password-here';
Exit the database configuration application.
zypper install nextcloud
- Navigate to the Nextcloud web portal
- Open http://localhost/nextcloud to install your instance.
- Create an admin account with a username an password of your choice
- Select the Storage & database drop down
- The data folder is set to the default path.
- Below Configure Database, Select MySQL/MariaDB
- Enter the MariaDB user for Nextcloud
- Database User - nextclouduser
- Database User Password (for nextclouduser)
- Database name - nextcloud
- Hostname (such as localhost)
Get Started With Nextcloud
That's it. You have Nextcloud set up for a local or home network use. You will be able to use Nextcloud unencrypted.
Install from Source
First of all, let's install the required and recommended modules for a typical Nextcloud installation, using Apache and MariaDB.
zypper in apache2 mariadb apache2-mod_php7 php7-gd php7-json php7-fpm php7-mysql php7-curl php7-intl php7-mcrypt php7-zip php7-mbstring php7-zlib php7-openssl php7-fileinfo php7-pcntl php7-posix
Create Database (optional since it'll create eveything automatically)
Next step, create a database. First of all start the service.
systemctl start mysql.service systemctl enable mysql.service
The root password is empty by default. That means that you can press enter and you can use your root user. That's not safe at all. So you can set a password using the command:
mysqladmin -u root password newpass
Where newpass is the password you want.
Now you set the root password, create the database.
mysql -u root -p
you'll be asked for your root password
CREATE DATABASE nextcloudb; GRANT ALL ON nextcloudb.* TO ncuser@localhost IDENTIFIED BY 'dbpass';
Database user: ncuser Database name: nextcloudb Database user password: dbpass
You can change the above information accordingly.
Now you should edit the php.ini file.
change the values
post_max_size = 50G upload_max_filesize = 25G max_file_uploads = 200 max_input_time = 3600 max_execution_time = 3600 session.gc_maxlifetime = 3600 memory_limit = 512M
You should enable some modules. Some might be already enabled.
a2enmod php7 a2enmod rewrite a2enmod headers a2enmod env a2enmod dir a2enmod mime
Now start the apache service.
systemctl start apache2.service systemctl enable apache2.service
Before the installation, create the data folder and give the right permissions (preferably outside the server directory for security reasons). I created a directory in the /mnt directory. You can mount a USB disk, add it to fstab and save your data there. The commands are:
mkdir /mnt/nextcloud_data chmod -R 0770 /mnt/nextcloud_data chown wwwrun /mnt/nextcloud_data
Now download Nextcloud (find the latest version at install web page). Then unzip and move the folder to the server directory.
wget https://download.nextcloud.com/server/releases/nextcloud-12.0.4.zip unzip nextcloud-12.0.4.zip cp -r nextcloud /srv/www/htdocs chown -R wwwrun /srv/www/htdocs/nextcloud/
Make sure that everything is OK and then delete the folder nextcloud and nextcloud-12.0.4.zip from the root (user) directory.
Now open your browser to the server IP/nextcloud
Set your administrator username and password.
Your data directory is: /mnt/nextcloud_data
Regarding database, use the following.
Database user: ncuser
Database name: nextcloudb
Database user password: dbpass
Wait until it ends the installation.
For more information, please refer to Nextcloud documentation page.
Nextcloud Client Setup
Nextcloud has clients for all operating systems, ditributions and mobile-tablets. You can find everything at installation page.
Desktop Environment Intergration
1. Insert your server address, username and password at online accounts (usermenu).
2. Open Nautilus and connect to server by clicking on the bookmark on the left panel.
Alternatevly, you can install Nautilus extension.
zypper in nautilus-extension-nextcloud nextcloud-client
A global accounts setting is coming in Plasma 5. In older versions of the KDE Plasma, you can access your files via WebDAV. For that, find the WebDAV link in the Nextloud Files app in the web interface by clicking the gear in the bottom-left:
You can then enter this address in the address bar in Dolphin (shortcut is CTRL-L, just like in web browsers. Clicking after the current location also gets you a text input field). Replace https with webdav and you can get to your files!
NOTE: KMail has 'external cloud storage' support, which includes WebDAV. Unfortunately, this does not work very well with Nextloud as it doesn't generate links which can be shared: the links will need your user credentials.
Alternatevly, you can install Dolphin extension.
zypper in nextcloud-client-dolphin nextcloud-client
If you have MATE
zypper in caja-extension-nextcloud nextcloud-client
If you have Cinnamon
zypper in nemo-extension-nextcloud nextcloud-client
Install Android App
Install Apple App
You can install the application from iTunes.
Nextcloud ships with some basic applications installed. Nextcloud is community product, so there are many users who created some awesome applications for Nextloud. You can check the Application site (like appstore), and download the application matched with your Nextcloud version. Installation is pretty simple. Decompress the file and upload it in the apps folder. Finally, login and enable the application you just uploaded.